Installation
DOLFINx can be installed using various packages managers, run using containers, or built manually from source.
Binaries
See the README.md for recommendations and instructions.
Source
Installation of DOLFINx requires installation of the C++ core. Most users will also want the Python interface.
Dependencies
C++
Required
C++ compiler (supporting the C++20 standard)
Basix (C++ interface)
CMake [build dependency]
HDF5 (with MPI support enabled)
MPI (MPI-3 or later)
pkg-config [build dependency via CMake]
UFCx [
ufcx.h, provided by FFCx Python package or FFCx UFCx CMake install atffcx/cmake/*]
From ParMETIS, KaHIP or PT-SCOTCH, ParMETIS is recommended.
Optional
ADIOS2 (additional parallel IO support)
SLEPc (eigenvalue problems)
SuperLU_DIST [2] (linear problems with
dolfinx::la::MatrixCSR).
Optional for demos
FFCx
PETSc and FFCx are optional but recommended.
Python interface
Requirements for the Python interface. Please see python/pyproject.toml for
precise specification. Below we use the pypi package names.
Build system requirements
Python
DOLFINx C++ interface and all requirements
nanobind (static linking)
petsc4py (recommended, optional)
Required runtime dependencies
Optional runtime dependencies
petsc4py (linear and non-linear problems, recommended)
numba (custom kernels and assemblers)
pyamg + scipy (serial linear problems)
Optional for demos
gmsh
networkx
numba
matplotlib
petsc4py
pyamg
pyvista
scipy
slepc4py
Building and installing
C++
The C++ library is built using CMake. Create a build directory in
cpp/, e.g. mkdir -p build/ and in the build run directory:
cmake ../
make install
To set the installation prefix:
cmake -DCMAKE_INSTALL_PREFIX=<my-install-path> ../
make install
Python
After installation of the C++ interface, from the python/ directory
the Python interface can be installed using:
python -m scikit_build_core.build requires | python -c "import sys, json; print(' '.join(json.load(sys.stdin)))" | xargs pip install
pip install --check-build-dependencies --no-build-isolation .
Footnotes