Skip to content

Installation: optional modules

Install PROTEUS first

Please follow the quick installation guide or manual installation guide before installing optional modules.

SPIDER and PETSc

SPIDER is a C-based interior thermal evolution solver. It requires PETSc (a numerical computing library) and a C compiler. Most configurations use Aragog instead, which is written in Python/JAX and needs no additional compiled dependencies.

Warning

PETSc requires Python <= 3.12. Make sure your conda environment uses Python 3.12.

bash tools/get_petsc.sh
bash tools/get_spider.sh

The PETSc script downloads the PETSc 3.19.0 source archive from Zenodo (or its DataverseNL mirror), checks its SHA-256, builds it and configures PETSC_DIR and PETSC_ARCH automatically.

Fedora / RHEL

If you encounter errors moving libraries, see Troubleshooting: PETSc on Fedora/RHEL.

The script uses the MPI on your PATH, for example Homebrew's Open MPI. If you encounter issues, see Troubleshooting: PETSc on Apple Silicon.

Solid-phase tidal heating (LovePy)

LovePy computes tidal dissipation for solid-phase planetary interiors. It is written in Julia.

bash tools/get_lovepy.sh

Multi-phase tidal response (Obliqua)

Obliqua computes the multi-phase tidal response of the planet from its interior structure and rheology. It is written in Julia.

bash tools/get_obliqua.sh

Synthetic observations (PetitRADTRANS)

PetitRADTRANS generates synthetic transmission and secondary eclipse spectra.

bash tools/get_prt.sh

Note

PetitRADTRANS downloads around 2 GB of opacity data on first use.

Alternative outgassing (atmodeller)

atmodeller is an optional alternative to CALLIOPE, selected with outgas.module = "atmodeller". It is not installed with PROTEUS by default; a standard run uses CALLIOPE.

pip install "fwl-proteus[atmodeller]"

License

atmodeller is distributed under the GPL-3.0 license; review its terms before installing.

Rock vapours (LavAtmos + ThermoEngineLite)

LavAtmos computes the thermodynamic vapourisation equilibrium of silicate melt, adding rock-vapour species to the atmosphere. It is optional, selected with outgas.vapourise = true, and is not installed with PROTEUS by default.

LavAtmos needs ThermoEngineLite for melt thermodynamics and the FastChem chemistry solver already installed alongside AGNI (FC_DIR; see Install AGNI and FastChem if that variable is not set).

bash tools/get_thermoenginelite.sh
bash tools/get_lavatmos.sh

ThermoEngineLite build requirements

ThermoEngineLite compiles a C++/Python extension and requires clang and pip on PATH. Compilation takes around 20 minutes.

get_lavatmos.sh clones the checkout but does not export an environment variable for you. Export the printed path and add it to your shell rc file:

export LAVA_DIR='<path-to-LavAtmos>/'

See input/tutorials/tutorial_vapourise.toml for an example configuration.

Parameter inference (Bayesian optimisation)

proteus infer runs the Bayesian-optimisation scheme, which is built on PyTorch, BoTorch and GPyTorch. Those three are a several-hundred-megabyte install that nothing else in PROTEUS uses, so a forward model or a proteus grid sweep does not need them:

pip install "fwl-proteus[inference]"

On Linux the default PyTorch wheel also pulls in the CUDA runtime packages. The scheme runs on CPU, so install PyTorch from its CPU index first if you do not want them:

pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install "fwl-proteus[inference]"

Without the extra, proteus infer stops with a message naming the missing package; every other command is unaffected. See the inference guide for how to configure a run.

Atmospheric chemistry (VULCAN)

VULCAN is an optional atmospheric-photochemistry backend, selected with atmos_chem.module = "vulcan". It is not required for a standard PROTEUS run. Install it from PyPI:

pip install "fwl-proteus[vulcan]"

For local development, install as an editable checkout instead:

bash tools/get_vulcan.sh

License

VULCAN is distributed under the GPL-3.0 license; review its terms before installing.

Protoplanet accretion (Morrigan)

Morrigan is an optional giant-impact accretion module, selected with accretion.module = "morrigan". It evolves a system of planetary embryos through orbital crossings and collisions and returns the impact history that the coupled run replays. It is not required for a standard PROTEUS run. Install it from PyPI:

pip install "fwl-proteus[morrigan]"

For local development, install as an editable checkout instead:

bash tools/get_morrigan.sh

An accretion run needs an interior module that can re-melt the mantle after an impact. Aragog is the production choice; SPIDER is refused at configuration load because it has no re-melt path.

Two accretion modules need no installation at all. accretion.module = "dummy" builds an impact history from scaling laws, and accretion.module = "timeline" replays one from a file, which is how a published or externally computed impact history drives a run. Both apply the same impact physics as the dynamical model.