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.