.. DOLFINx installation docs Installation ============ DOLFINx can be installed using various packages managers, run using containers, or built manually from source. `Spack `_ is the recommended installation tool for high performance computers Spack ----- See `README.md `_ for instructions. Docker ------ A nightly Docker container is provided at https://hub.docker.com/r/dolfinx/dolfinx. The `Dockerfile `_ provides a definitive build recipe. See `README.md `_ for instructions. Versioned Docker images will be provided in the future. Debian/Ubuntu packages ---------------------- The Debian/Ubuntu package is ``fenics-dolfinx``. The Ubuntu PPA is at https://launchpad.net/~fenics-packages/+archive/ubuntu/fenics and Debian packages are at https://packages.debian.org/search?keywords=python3%2Ddolfinx. Conda ----- *Under development* pip --- *Under development* Source ------ Installation of DOLFINx requires installation of the C++ core. Most users will also want the Python interface. Dependencies ^^^^^^^^^^^^ C++ core ******** .. rubric:: Required - C++ compiler (supporting the C++17 standard) - `Boost `_, with the following compiled Boost components - timer - `CMake `_ [build dependency] - `xtensor `_ - `pkg-config `_ - `Basix `_ - UFCx [``ufcx.h``, provided by FFCx] - MPI - HDF5 (with MPI support enabled) - `PETSc `_ [1]_ - At least one of ParMETIS [2]_, KaHIP or PT-SCOTCH [2]_ From ParMETIS, KaHIP or PT-SCOTCH, ParMETIS is recommended. .. rubric:: Optional - `ADIOS2 `_ (additional parallel IO support) - `SLEPc `_ (eigenvalue computations) Python interface **************** Below are additional requirements for the Python interface. .. rubric:: Required - Python - FFCx, UFL and Basix (http://github.com/FEniCS/). - pybind11 (https://github.com/pybind/pybind11) - NumPy (http://www.numpy.org) - mpi4py - petsc4py .. rubric:: Suggested - pyvista (for plotting) - Numba - slepc4py Building and installing ^^^^^^^^^^^^^^^^^^^^^^^ C++ core ******** The C++ core 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= ../ make install Python ****** After installation of the C++ core, from the ``python/`` directory the Python interface can be installed using:: pip install . .. rubric:: Footnotes .. [1] Its is recommended to configure with ParMETIS, PT-SCOTCH, MUMPS and Hypre using the ``--download-parmetis --download-ptscotch --download-suitesparse --download-mumps --download-hypre`` .. [2] PETSc can download and configure and build these libraries.