Downloading dolfin-adjoint

Docker images (all platforms)

Docker allows us to build and ship consistent high-performance dolfin-adjoint installations with FEniCS for almost any platform. To get started, follow these 2 steps:

  1. Install Docker. Mac and Windows users should install the Docker Toolbox (this is a simple one-click install) and Linux users should follow these instructions.

  2. Install the FEniCS Docker script:

    curl -s | bash

If running on Mac or Windows, make sure you run this and other commands inside the Docker Quickstart Terminal.

Stable version:

Once both Docker and the FEniCS Docker script have been installed, you can easily start a FEniCS session with dolfin-adjoint by running the following command:

fenicsproject run

A Jupyter notebook instance with a user defined name (here myproject) can be started with:

fenicsproject notebook myproject
fenicsproject start myproject

The FEniCS Docker script can also be used to create persistent sessions:

fenicsproject create myproject
fenicsproject start myproject

Development version:

The development version of dolfin-adjoint and FEniCS is available with:

fenicsproject run

To update the development container, run:

fenicsproject pull

To see all the options run:

fenicsproject help

For more details and tips on how to work with FEniCS and Docker, see our FEniCS Docker page.

Conda package (Mac/Linux)

For people who have an Anaconda distribution installed, you can install dolfin-adjoint and all its dependencies with:

conda install -c conda-forge dolfin-adjoint=2017.2.0

From source

The latest stable release of dolfin-adjoint and libadjoint is version 2017.1 which is compatible with FEniCS 2017.1. Download links:

  • libadjoint:
git clone -b libadjoint-2017.2.0
  • dolfin-adjoint:
git clone -b dolfin-adjoint-2017.2.0

The development version is available with the following command:

git clone
git clone

As dolfin-adjoint is a pure Python module, once its dependencies are installed the development version can be used without system-wide installation via

export PYTHONPATH=<path to dolfin-adjoint>:$PYTHONPATH

libadjoint needs to be compiled with:

cd libadjoint
mkdir build; cd build
cmake -DCMAKE_INSTALL_PREFIX=<install directory> ..
make install

Contributions (such as handling new features of FEniCS, or new test cases or examples) are very welcome.


Mandatory dependencies:

Optional dependencies:

Older versions

An older version compatible with FEniCS 1.6 can be downloaded with:

git clone -b dolfin-adjoint-2017.1.0
git clone -b libadjoint-2017.1.0