DOLFINx is the computational environment of FEniCSx and implements the FEniCS Problem Solving Environment in C++ and Python.
DOLFINx is a new version of DOLFIN and is being actively developed.
Documentation can be viewed at:
- https://docs.fenicsproject.org/dolfinx/main/cpp/
- https://docs.fenicsproject.org/dolfinx/main/python/
To build and install the C++ core, in the cpp/
directory, run::
mkdir build
cd build
cmake ..
make install
To install the Python interface, first install the C++ core, and then
in the python/
directory run::
pip install .
(you may need to use pip3
, depending on your system).
For detailed instructions, see https://docs.fenicsproject.org/dolfinx/main/python/installation.
Spack automates the installation from source and is recommended for building DOLFINx on HPC systems. To build the most recent release using Spack (assuming a bash-compatible shell):
git clone https://github.com/spack/spack.git
. ./spack/share/spack/setup-env.sh
spack env create fenicsx-env
spack env activate fenicsx-env
spack add py-fenics-dolfinx cflags="-O3" fflags="-O3"
spack install
See the Spack documentation for comprehensive instructions.
Recommendations
- macOS: conda.
- Linux: apt (Ubuntu/Debian), docker or conda. See also Spack.
- Windows: docker, or install WSL2 and use Ubuntu.
To install the latest stable release of the Python interface, with pyvista support for visualisation, using conda:
conda create -n fenicsx-env
conda activate fenicsx-env
conda install -c conda-forge fenics-dolfinx mpich pyvista
conda is distributed with Anaconda and Miniconda. The conda recipe is hosted on conda-forge.
Name | Downloads | Version | Platforms |
---|---|---|---|
Note Windows packages are not available. This is due to some DOLFINx dependencies not supporting Windows.
The Ubuntu PPA contains binary packages of the FEniCSx components. To install:
add-apt-repository ppa:fenics-packages/fenics
apt update
apt install fenicsx
When a version of DOLFINx is released we aim to provide a build for the latest stable version of Ubuntu. All other versions are provided on a best-effort basis.
DOLFINx is included
with various
versions
of Debian. Install with apt-get install fenicsx
.
A Docker image with the latest stable release of DOLFINx:
docker run -ti dolfinx/dolfinx:stable
To switch between real and complex builds of DOLFINx/PETSc.
source /usr/local/bin/dolfinx-complex-mode
source /usr/local/bin/dolfinx-real-mode
A Jupyter Lab environment with the latest stable release of DOLFINx:
docker run --init -ti -p 8888:8888 dolfinx/lab:stable # Access at http://localhost:8888
A Docker image with DOLFINx built nightly:
docker run -ti dolfinx/dolfinx:nightly
A development image with all of the dependencies required to build the latest stable release of the FEniCSx components:
docker run -ti dolfinx/dev-env:stable
A development image with all of the dependencies required
to build the main
branch of the FEniCSx components:
docker run -ti dolfinx/dev-env:nightly
All Docker images support arm64 and amd64 architectures.
For a full list of tags, including versioned images, see https://hub.docker.com/u/dolfinx
Information about how to contribute to DOLFINx can be found here.
DOLFINx is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
DOLFINx is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with DOLFINx. If not, see http://www.gnu.org/licenses/.
For questions about using DOLFINx, visit the FEniCS Discourse page:
https://fenicsproject.discourse.group/
or use the FEniCS Slack channel:
https://fenicsproject.slack.com/
(use https://join.slack.com/t/fenicsproject/shared_invite/zt-1lraknsp1-6_3Js5kueDIyWgF192d3nA to sign up)
For bug reports visit: