Initial commit
This commit is contained in:
98
environment.yml
Executable file
98
environment.yml
Executable file
@@ -0,0 +1,98 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user