A library for high-level algorithmic differentiation, principally for models written using FEniCS or Firedrake.
License: GNU Lesser General Public License v3.0
Python 100.00%
tlm_adjoint's Introduction
To use tlm_adjoint add the 'python' subdirectory to the Python search path. The
library is used via, e.g., the Python code
FEniCS backend:
from fenics import *
from tlm_adjoint_fenics import *
Firedrake backend:
from firedrake import *
from tlm_adjoint_firedrake import *
NumPy backend:
import numpy as np
from tlm_adjoint_numpy import *
tlm_adjoint is currently targeting FEniCS 2019.1.0, and the Firedrake Git
master branch.
Together with the backend libraries, tlm_adjoint requires
NumPy
mpi4py and petsc4py (FEniCS or Firedrake backends)
tlm_adjoint optionally requires
PyPNG, for generation of block Jacobian dependency structure images
SciPy, for gradient-based optimization and interpolation equations
h5py, with the 'mpio' driver for parallel calculations, for HDF5 storage
slepc4py, for eigendecomposition functionality
License: GNU LGPL version 3