99 lines
2.3 KiB
YAML
Executable File
99 lines
2.3 KiB
YAML
Executable File
# Firedrake + icepack conda environment
|
|
#
|
|
# This provides all the compiled/native dependencies (PETSc, MPI, compilers,
|
|
# etc.) from conda-forge so that no system packages are needed beyond conda
|
|
# itself. Firedrake's own Python packages are then pip-installed on top.
|
|
#
|
|
# Usage:
|
|
# conda env create -f environment.yml
|
|
# conda activate firedrake
|
|
# bash setup.sh
|
|
#
|
|
# Tested on: Linux x86_64, macOS ARM64 (Apple Silicon)
|
|
|
|
name: firedrake
|
|
channels:
|
|
- conda-forge
|
|
- nodefaults
|
|
|
|
dependencies:
|
|
# ── Python ──
|
|
- python >=3.11,<3.13
|
|
|
|
# ── Compilers (needed at runtime for Firedrake JIT) ──
|
|
# The `compilers` metapackage provides gcc/gfortran on Linux and
|
|
# clang/gfortran on macOS, all targeting the conda env's sysroot.
|
|
- compilers
|
|
- cmake
|
|
- make
|
|
|
|
# ── MPI ──
|
|
# mpich is more portable across platforms in conda-forge than openmpi.
|
|
# All MPI-linked packages below will be built against this same mpich.
|
|
- mpich
|
|
|
|
# ── PETSc ecosystem ──
|
|
# conda-forge PETSc includes: MUMPS, hypre, SuperLU, SuperLU_dist,
|
|
# METIS, ParMETIS, ScaLAPACK, SuiteSparse, pt-scotch.
|
|
- petsc =*=real*
|
|
- petsc4py
|
|
- slepc
|
|
- slepc4py
|
|
|
|
# ── HDF5 with MPI support ──
|
|
- hdf5 =*=mpi_mpich_*
|
|
- h5py =*=mpi_mpich_*
|
|
|
|
# ── Linear algebra ──
|
|
- libopenblas
|
|
- libblas =*=*openblas*
|
|
- liblapack =*=*openblas*
|
|
- scalapack
|
|
|
|
# ── Other compiled libs Firedrake needs ──
|
|
- patchelf # [linux]
|
|
- libspatialindex
|
|
- gmsh
|
|
|
|
# ── Core Python dependencies ──
|
|
- numpy
|
|
- scipy
|
|
- cython
|
|
- mpi4py
|
|
- sympy
|
|
- cachetools
|
|
- packaging
|
|
- decorator
|
|
- requests
|
|
- setuptools
|
|
- pip
|
|
- wheel
|
|
- meson
|
|
- meson-python
|
|
- pkgconfig
|
|
- scikit-build-core
|
|
- ninja
|
|
- pybind11
|
|
- hatchling
|
|
- flit-core
|
|
|
|
# ── islpy / loopy code generation stack ──
|
|
- islpy
|
|
|
|
# ── Visualization (optional but useful) ──
|
|
- matplotlib
|
|
|
|
# ── Pip-installed packages ──
|
|
# These are the Firedrake-specific packages that are NOT on conda-forge.
|
|
# They're installed in the setup script, listed here for documentation.
|
|
# - pip:
|
|
# - fenics-ufl (from git, Firedrake-compatible version)
|
|
# - firedrake-fiat (Firedrake's FIAT fork)
|
|
# - FInAT
|
|
# - loopy (latest, for code generation)
|
|
# - tsfc
|
|
# - pyop2
|
|
# - libsupermesh
|
|
# - firedrake
|
|
# - icepack
|