dolfinx
dolfinx copied to clipboard
Next generation FEniCS problem solving environment
DOLFINx
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
Documentation can be viewed at:
- https://docs.fenicsproject.org/dolfinx/main/cpp/
- https://docs.fenicsproject.org/dolfinx/main/python/
Installation
From source
C++ core
To build and install the C++ core, in the cpp/ directory, run::
mkdir build
cd build
cmake ..
make install
Python interface
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.
Binary
Operating System Recommendations
- Mac OS: use conda.
- Linux: use apt (Ubuntu/Debian), docker or conda. See also Spack.
- Windows: use docker, or install Microsoft's WSL2 and use Ubuntu.
conda
Conda is the recommended install method for Mac OS users. Linux users may also use it.
To install the latest stable release of the Python interface, with pyvista support for visualisation, using conda:
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.
Spack
Spack 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.
Ubuntu packages
The Ubuntu PPA contains binary packages of the FEniCSx components for Ubuntu.
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.
Debian packages
DOLFINx has been included with various
versions
of Debian. Install with apt-get install fenicsx.
Docker images
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
Contributing
Information about how to contribute to DOLFINx can be found here.
License
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/.
Contact
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://fenicsproject-slack-invite.herokuapp.com/ to sign up)
For bug reports visit:
https://github.com/FEniCS/dolfinx