tlm_adjoint is a library for high-level algorithmic differentiation, primarily for use with FEniCS (https://fenicsproject.org) or Firedrake (https://firedrakeproject.org). The library can be installed via e.g. pip install . run in the tlm_adjoint root directory. 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. tlm_adjoint requires: All backends: NumPy SymPy FEniCS or Firedrake backends: UFL mpi4py petsc4py FEniCS backend: DOLFIN FFC Firedrake backend: Firedrake tlm_adjoint optionally uses SciPy, for gradient-based optimization and interpolation equations h5py, with the 'mpio' driver for parallel calculations, for HDF5 storage petsc4py and slepc4py, for eigendecomposition functionality H-Revolve, for H-Revolve checkpointing schedules more-itertools Numba License: GNU LGPL version 3
EdiGlacUQ/tlm_adjoint
A library for high-level algorithmic differentiation, primarily for use with FEniCS or Firedrake
PythonLGPL-3.0