Skip to content

Commit

Permalink
V0.3.0 (#53)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
edaub authored Nov 9, 2021
1 parent 1a48da8 commit bef1ad4
Show file tree
Hide file tree
Showing 17 changed files with 580 additions and 88 deletions.
1 change: 1 addition & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ python:
version: 3.7
install:
- requirements: requirements.txt
- requirements: docs/requirements.txt
- method: setuptools
path: .
27 changes: 13 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,20 @@ challenging problems in data-driven numerical analysis.

## Installation

### Installing Firedrake

`stat-fem` requires a working Firedrake installation. The easiest way to obtain Firedrake is to
follow the installation instructions on the [firedrake homepage](https://www.firedrakeproject.org).

### Installing stat-fem

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

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

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

### Using a Docker Container

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

## References

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

[2] Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini,
Andrew T. T. Mcrae, Gheorghe-Teodor Bercea, Graham R. Markall, and Paul H. J. Kelly.
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
source_suffix = ['.rst']

# The master toctree document.
master_doc = 'index'
Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ multi-node and multi-core systems.
intro/installation
intro/tutorial
intro/parallelism
intro/firedrake21_talk

Details about the ``stat-fem`` implementation can be found on the
following pages:
Expand Down
Loading

0 comments on commit bef1ad4

Please sign in to comment.