Skip to content

proteus.config._struct

The attrs-based schema for the [interior_struct] and [interior_struct.zalmoxis] TOML blocks. All knobs documented in the Zalmoxis coupling how-to map back to fields on the classes below.

Struct

Planetary structure (mass, radius).

Attributes:

Name Type Description
core_frac float

Fraction of the planet's interior radius corresponding to the core.

module str

Module for solving the planet's interior structure. Choices: 'dummy', 'spider', 'zalmoxis'.

zalmoxis Zalmoxis or None

Zalmoxis parameters if module is 'zalmoxis'.

core_frac_mode str

How core_frac is interpreted. 'radius': fraction of planet radius. 'mass': fraction of total planet mass. Only 'radius' is supported when module = 'spider'. The zalmoxis module always interprets core_frac as a mass fraction and ignores this flag (a warning is emitted at runtime if 'radius' is set with module = 'zalmoxis').

core_density float or str

Density of the planet's core [kg m-3]. Set to 'self' for self-consistent calculation by Zalmoxis (requires module = 'zalmoxis').

core_heatcap float or str

Specific heat capacity of the planet's core [J kg-1 K-1]. Set to 'self' for self-consistent calculation by Zalmoxis (requires module = 'zalmoxis').

Zalmoxis

Parameters for Zalmoxis module.

Attributes:

Name Type Description
core_eos str

EOS for the core layer. Format: ":". Tabulated: "PALEOS:iron" (default), "Seager2007:iron". Analytic: "Analytic:iron", "Analytic:MgFeSiO3", etc.

mantle_eos str

EOS for the mantle layer. Format: ":". Tabulated: "PALEOS:MgSiO3" (default), "PALEOS-2phase:MgSiO3", "Seager2007:MgSiO3", "WolfBower2018:MgSiO3". Analytic: "Analytic:MgSiO3", "Analytic:MgFeSiO3", etc.

ice_layer_eos str or None

EOS for the ice/water layer (3-layer model). 'none' for 2-layer model (core + mantle only). Tabulated: "PALEOS:H2O", "Seager2007:H2O". Analytic: "Analytic:H2O".

mushy_zone_factor float

Cryoscopic depression factor controlling the width of the mushy zone (partially molten region) in the PALEOS unified EOS. Defines the solidus as T_sol = T_liq * mushy_zone_factor. 1.0 = sharp phase boundary (no mushy zone). 0.8 = solidus at 80% of the liquidus temperature, roughly matching the Stixrude+2014 cryoscopic depression for MgSiO3. Must be in [0.7, 1.0]. Only applies to PALEOS unified EOS; ignored for WolfBower2018 and RTPress100TPa (which use explicit melting curve files). This factor is applied consistently across Zalmoxis (density interpolation), SPIDER (phase boundaries), and the VolatileProfile phi-blending.

mantle_mass_fraction float

Fraction of the planet's interior mass corresponding to the mantle. Required for 3-layer models (with ice layer) and for T-dependent 2-layer models (WolfBower2018, RTPress100TPa) where it partitions mass between core and mantle layers.

num_levels int

Number of Zalmoxis radius layers.

solver_tol_outer float

Relative tolerance for mass convergence (outer loop).

solver_tol_inner float

Relative tolerance for density convergence (inner loop).

solver_max_iter_outer int

Max iterations for mass convergence (outer loop).

solver_max_iter_inner int

Max iterations for density convergence (inner loop).

lookup_nP int

Number of pressure points in SPIDER P-S tables generated from PALEOS.

lookup_nS int

Number of entropy points in SPIDER P-S tables generated from PALEOS.