fdvar documentation¶
fdvar is a Python library for parallel-in-time 4DVar data assimilation using
the Firedrake finite element library and the
PETSc/TAO optimisation library.
fdvar uses Firedrake and Pyadjoint’s automatic
differentiation capabilities to automate the construction of the 4DVar system and
it’s derivatives, and provides a variety of preconditioners for solving the
optimisation problem using TAO.
Features¶
Automatic construction of derivatives from forward model.
Automatic construction of solvers from reduced functional.
Time-parallel preconditioners.
Access to range of composable optimisation and linear solvers via PETSc/TAO.
Works with any PDE expressable using the Unified Form Language.
Installation¶
Install Firedrake using the instructions here
Install
fdvarinto the Firedrake virtual environment. There are two installation options:Coming soon … Pypi release compatible with the latest Firedrake release.
Cloning the github repository:
git clone https://github.com/firedrakeproject/fdvar.gitpip install './fdvar'
We recommend using the excellent implicit Runge-Kutta library Irksome for timestepping. You can either:
follow the instructions on the Irksome website, or
use the
demosoptional dependency in the pip install step above:pip install './fdvar[demos]'.
Getting Started¶
To get started with Firedrake check out the introductory demos.
The best place to get started with
fdvaris the Demos.A complete listing of the
fdvarlibrary can be found in theAPI documentation.
Demos¶
A Python script is generated for each demo and is linked at the bottom of the demo.
Getting in touch¶
Please get in touch with any questions related to fdvar by raising an issue on the GitHub repository.
For more general Firedrake queries please see the Firedrake contact page
Contributors¶
fdvar has been developed by:
Josh Hope-Collins (Department of Mathematics, Imperial College London)
David A. Ham (Department of Mathematics, Imperial College London)
Jemima M. Tabeart (Department of Mathematics and Computer Science, TU Eindhoven)
Contents: