PROTEUS code architecture
Overview
PROTEUS is organised as a collection of modular scientific components, located as
directories inside src/proteus/. Each module handles one physical domain of a
coupled planetary evolution simulation:
interior/: interior structure and energeticsatmos_clim/: atmospheric climate and radiationatmos_chem/: atmospheric chemistryescape/: atmospheric escapeoutgas/: volatile outgassingorbit/: orbital evolution and tidesstar/: stellar evolution
Most modules follow a common pattern: a wrapper.py defining the interface, a
common.py with shared helpers, and one file per backend implementation (for
example, aragog.py, spider.py, and dummy.py inside interior/).
The central orchestrator, proteus.py,
couples these modules together and advances the simulation, with modules
exchanging information at each timestep.
Architecture diagram
The diagram below gives a high-level view of the PROTEUS code architecture. Click
any module to jump to its source on the main branch,
or any loop block to jump to the relevant section of proteus.py.