Skip to content

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:

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.