Skip to content

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
The above has been tested with 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
The above has been tested with both python/3.13 as well as python/3.12.

Running Jobs

Firedrake 2026.4.1

job_firedrake_multigrid.sh
#!/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
The above has been tested with python/3.14, python/3.13, python/3.12 and python/3.11.

Firedrake 2025.4.2

job_firedrake_multigrid.sh
#!/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
The above has been tested with both 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 petsc module and always available.
  • netgen: We provide precompiled wheels for ngsPETSc and netgen_mesher.
  • PyTorch: We provide precompiled wheels for torch.
  • Jax: We provide precompiled wheels for jax.
  • VTK: The module vtk/9.4.2 is compatible with python/3.14, python/3.13, python/3.12 and python/3.11.