Firedrake/en
Firedrake is an automated system for the solution of partial differential equations using the finite element method (FEM).
Note
Every release of Firedrake requires a specific version of PETSc, several other modules, and Python wheels.
Installation¶
Note
All modules must be loaded before creating and/or activating the Python virtualenv.
Firedrake 2026.4.1¶
module load StdEnv/2023 gcc/12.3 openmpi/4.1.5 python/3.14 mpi4py/4.1.0
module load vtk/9.4.2 symengine/0.14.0 libspatialindex/2.1.0 petsc/3.25.1
virtualenv venv-firedrake
source venv-firedrake/bin/activate
pip install -U pip
pip install --no-index msgpack tables==3.11.0 pytools==2026.1.1 immutabledict
pip install --no-index firedrake[check]==2026.4.1
python/3.14, python/3.13, python/3.12 and python/3.11.
Firedrake 2025.4.2¶
module load StdEnv/2023 gcc/12.3 openmpi/4.1.5 python/3.13 mpi4py/4.0.3 symengine/0.14.0 libspatialindex/1.9.3 petsc/3.23.4
virtualenv venv-firedrake
source venv-firedrake/bin/activate
pip install -U pip
pip install --no-index pytools==2025.2.2 immutabledict
pip install --no-index firedrake[check]==2025.4.2
python/3.13 as well as python/3.12.
Running Jobs¶
Firedrake 2026.4.1¶
job_firedrake_multigrid.sh
The above has been tested with #!/bin/bash
#SBATCH --time=0-00:15:00 # d-hh:mm:ss
#SBATCH --ntasks=2
#SBATCH --mem-per-cpu=4000M
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
# Load modules
module load StdEnv/2023 gcc/12.3 openmpi/4.1.5 python/3.14 mpi4py/4.1.0
module load vtk/9.4.2 symengine/0.14.0 libspatialindex/2.1.0 petsc/3.25.1
# activate virtualenv
source venv-firedrake/bin/activate
# run MPI job
# example from: https://firedrakeproject.org/demos/geometric_multigrid.py
srun python geometric_multigrid.py
python/3.14, python/3.13, python/3.12 and python/3.11.
Firedrake 2025.4.2¶
job_firedrake_multigrid.sh
The above has been tested with both #!/bin/bash
#SBATCH --time=0-00:15:00 # d-hh:mm:ss
#SBATCH --ntasks=2
#SBATCH --mem-per-cpu=4000M
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
# Load modules
module load StdEnv/2023 gcc/12.3 openmpi/4.1.5
module load python/3.13 mpi4py/4.0.3
module load symengine/0.14.0 libspatialindex/1.9.3 petsc/3.23.4
# activate virtualenv
source venv-firedrake/bin/activate
# run MPI job
# example from: https://firedrakeproject.org/demos/geometric_multigrid.py
srun python geometric_multigrid.py
python/3.13 as well as python/3.12.
Optional Dependencies¶
Firedrake has a number of optional dependencies that can be installed into the virtualenv:
- SLEPc and slepc4py are part of the
petscmodule and always available. - netgen: We provide precompiled wheels for
ngsPETScandnetgen_mesher. - PyTorch: We provide precompiled wheels for
torch. - Jax: We provide precompiled wheels for
jax. - VTK: The module
vtk/9.4.2is compatible withpython/3.14,python/3.13,python/3.12andpython/3.11.