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 a pre-compiled version from OSF and configures PETSC_DIR and PETSC_ARCH automatically.

Fedora / RHEL

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

The script detects Apple Silicon vs Intel and uses Homebrew's MPI. If you encounter issues, see Troubleshooting: PETSc on Apple Silicon.

Multi-phase tidal heating (LovePy)

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

bash tools/get_lovepy.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.