Skip to content

Commit bef1ad4

Browse files
authored
V0.3.0 (#53)
* initial code skeleton with travis, docker, and codecov * Basicfunc (#10) * wrote basic class for observational data * added code and unit tests for basis components * ported code for assembling forcing covariance to repo * implemented tests for interpolation matrix * implemented parallel version of interpolation matrix * added model discrepancy constant factor to class * updated forcing covariance to be consistent with parallelization * modified coordinates to extract full degree of freedom information for computations * changed interpolation calculation to projection for generality * reordered arguments to interpolation matrix * fixed bugs in forcing covariance implementaiton * added unit test for forcing covariance solve * changes to assembly and added multiplication to forcing covariance class * parallelized solves to form forcing covariance * modified data and discrepancy classes to handle parallel solves * minor tweak to forcing covariance to determine local ownership * reworked solving routines * tweaks to init file and setup file * expanded readme file * refactored ObsData and ModelDiscrepancy to a single class with external parameters * refactored interpolation matrix parallelization * various fixes, implementation of solver routines * modified solving routines and fixed some unit tests * reorganized tests to move common test cases to a set of shared functions * added test for solve_posterior_covariance * added parallel test for posterior solves * finished testing of intial solving routines * modified travis file and added makefile to run mpi tests * added additional covariance function derivatives and reworked some unit tests in parallel * fixed an issue with parallelization and cleaned up implementation * initial implementation of estimation pieces * reworked estimation routines to cache the prior mean and covariance to improve performance * commented out parallel solves test that is hanging * commented out more solving tests * added back in the parallel test * debugging test that is hanging * commented out tests for debugging travis * uncommenting for debugging purposes * continue debugging * more debugging * more debugging changes * added additional solving unit test * solving unit tests * data unit tests * interpolation matrix tests * added forcing covariance tests * added back all unit tests * added assemble function and tests * added generating process solvers * commented out solve tests for debugging * added back in new unit tests * added back in another unit test * additional unit test * rewrote posterior covariance solve to avoid explicitly inverting any matrices and added in a test * continuing additional unit tests * all unit tests are back in the code * still have a hanging test, commenting out again * removed explicit parallel tests * removed all tests except solving * added utility solves * added data tests * new combination of unit tests * forcing covariance unit tests * estimation unit tests * all unit tests back in * putting in assertions to figure out where it hangs * putting in assertions in parallel * move up assertion to see where it hangs * move up assertion again * move up assertion further * dialing in location of problem * more checks on where it hangs * multiple checks in new tests * attempting to use fixtures to avoid problems * more fixtures added to test suite * replaced all helpers with fixtures and have solves working * refactoring unit tests to use fixtures * finished refactor of tests to use fixtures * improved forcing covariance computational efficiency * minor changes to readme * fixed unit test for rewritten forcing covariance computation * improved docstrings for ObsData class * refactored interpolation matrix to externalize covariance solve * added prediction solves and unit tests * moved solves to LinearSolver class * refactored MAP routines into linear solver and added priors * added docstrings for assembly, covariance functions, and estimation functions * added example script of Poisson demo * added docstrings for linear solver class * initial commit of sphinx documentation * filled out documentation files and renamed covariance functions for consistency * added requirements file for testing and for building documentation * fixed assemble function to match updated firedrake interface * fixed import for Poisson example * tweaks to readme * modified docker file to install and run test suite straight away * fixed bug in poisson example, tweaked params, added comments * added firedrake to mock imports list * adding all packages to mock list * set up mocking to allow import of stat-fem * added ufl to mock list * added mpi to mock list * removed firedrake from requirements as it breaks installation procedures * cleaned up conf file * added yaml file to configure readthedocs build * added badges to readme and trying to fix coverage reports * trying to fix coverage reports * removing coverage from mpi tests again * cleaned up travis file and added update * Travisbuild (#18) * trying to do a native firedrake install on travis * modified travis script * fixed install command * fixed waiting command * increased waiting time for firedrake install * configuring build to avoid problems * trying to look at install log * print log if failure * changed script for debugging * print contents of include directory * deactivating venv * more tweaking install process * checking python version * looking for base python installation * trying a minimal image * fixed install, now try to run tests * fixed typo in travis file * fixed issue with garbage collection during tests (#21) * revised readme * removed imports in interpolation matrix * fixed string method in interpolation matrix * set up placeholder for unassembled Forcing Covariance matrix * cleaned up a bit of code * removed unneeded imports * removed imports from solving utilities * removed unused imports from observational data class * added more details to assertion statements * updated dockerfile to use devel for merge * corrected unit test to match string formatting change * Feature/docs (#30) * reworked docs and added installation page, started on overview and tutorial * expanded overview in docs finished first version of the overview page * updated tutorial in documentation * updated example and created files for tutorial * corrected typesetting in docs page * incremented version for merge into devel * Fix/docker (#32) * reworked docs and added installation page, started on overview and tutorial * expanded overview in docs finished first version of the overview page * updated tutorial in documentation * updated example and created files for tutorial * corrected typesetting in docs page * incremented version for merge into devel * fixed dockerfile * Feature/meanscaling (#36) * added flags for mean scaling to LinearSolver * modified solvers to pass scaling argument * changed params in tests * fixed error in log posterior computations * added tests for scaling factor options * incremented version number to start next release * fixes poisson example to use the mean scaling feature * fixed error in linear solver test * Feature/petsc (#37) * added flags for mean scaling to LinearSolver * modified solvers to pass scaling argument * changed params in tests * fixed error in log posterior computations * added tests for scaling factor options * incremented version number to start next release * fixes poisson example to use the mean scaling feature * fixed error in linear solver test * re-worked linear solver and utils to use firedrake LinearSolver class * added kwarg options to linear solver class * modified estimation to pass kwargs to solver and minimize * changed matrix check to base class * increment version for merge * Feature/solverdocs (#42) * moved parallelism text to documentation * improved docstrings for assemble and estimation functions * minor corrections to docs to enable sphinx build * added docstrings for interpolation matrix * added docstring details for PETSc options to linear solver * added docstrings to solving utils * added docstrings to solving routines * fixed issue with change in function name * increment version for merge * fixed unused function in estimation tests * fixed some renamed functions in linear solver tests * updated stat-fem reference and rewrote installation instructions on the readme (#45) * Fix setup.py and assembly (#50) * fixed setup.py file to correct license problem due to upstream change in setuptools * deprecated firedrake assembly from stat-fem * bumped prerelease version number * Firedrake '21 Talk (#52) * added firedrake conference talk to documentation * bumped prerelease version number * fixing bug in documentation build by upgrading sphinx version * fixed warning in talk docs by updating code highlighting * updated version number for new release
1 parent 1a48da8 commit bef1ad4

17 files changed

+580
-88
lines changed

.readthedocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ python:
99
version: 3.7
1010
install:
1111
- requirements: requirements.txt
12+
- requirements: docs/requirements.txt
1213
- method: setuptools
1314
path: .

README.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,20 @@ challenging problems in data-driven numerical analysis.
1717

1818
## Installation
1919

20-
### Installing Firedrake
21-
22-
`stat-fem` requires a working Firedrake installation. The easiest way to obtain Firedrake is to
23-
follow the installation instructions on the [firedrake homepage](https://www.firedrakeproject.org).
24-
2520
### Installing stat-fem
2621

27-
Once you have installed Firedrake, activate the virtual environment that was created as part of
28-
the installation process. Within the running virtual environment, switch to the main `stat-fem`
29-
directory and proceed with the installation by entering:
22+
`stat-fem` requires a working Firedrake installation. The easiest way
23+
to obtain Firedrake is to use the installation script provided by the
24+
Firedrake project on the [firedrake homepage](https://www.firedrakeproject.org).
3025

3126
```bash
32-
$ pip install -r requirements.txt
33-
$ python setup.py install
27+
curl -O https://raw.githubusercontent.com/firedrakeproject/firedrake/master/scripts/firedrake-install
28+
python3 firedrake-install --install git+https://github.com/alan-turing-institute/stat-fem#egg=stat-fem
3429
```
3530

36-
This will use `pip` to install any missing dependencies (notably Scipy) and install the `stat-fem`
37-
package within the Firedrake virtual environment.
31+
This will install Firedrake and install the `stat-fem` library inside the
32+
Firedrake virtual environment. If this does not work, details on manual
33+
installation are provided in the [documentation](https://stat-fem.readthedocs.io/en/latest/intro/installation.html).
3834

3935
### Using a Docker Container
4036

@@ -67,8 +63,11 @@ Any bugs or issues should be filed in the issue tracker on the main Github page.
6763

6864
## References
6965

70-
[1] Mark Girolami, Alastair Gregory, Ge Yin, and Fehmi Cirak. The Statistical Finite Element
71-
Method. 2019. URL: http://arxiv.org/abs/1905.06391, arXiv:1905.06391.
66+
[1] Mark Girolami, Eky Febrianto, Ge Yin, and Fehmi Cirak. The
67+
statistical finite element method (statFEM) for coherent synthesis
68+
of observation data and model predictions. *Computer Methods in
69+
Applied Mechanics and Engineering*, Volume 375, 2021, 113533,
70+
https://doi.org/10.1016/j.cma.2020.113533.
7271

7372
[2] Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini,
7473
Andrew T. T. Mcrae, Gheorghe-Teodor Bercea, Graham R. Markall, and Paul H. J. Kelly.

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
# You can specify multiple suffix as a list of string:
7676
#
7777
# source_suffix = ['.rst', '.md']
78-
source_suffix = '.rst'
78+
source_suffix = ['.rst']
7979

8080
# The master toctree document.
8181
master_doc = 'index'

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ multi-node and multi-core systems.
3333
intro/installation
3434
intro/tutorial
3535
intro/parallelism
36+
intro/firedrake21_talk
3637

3738
Details about the ``stat-fem`` implementation can be found on the
3839
following pages:

0 commit comments

Comments
 (0)