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'). |
melting_dir |
str
|
Melting curve folder name in FWL_DATA, for the SPIDER structure module. |
eos_dir |
str
|
EOS folder name in FWL_DATA, for the SPIDER structure module. |
Zalmoxis
¶
Parameters for Zalmoxis module.
Attributes:
| Name | Type | Description |
|---|---|---|
core_eos |
str
|
EOS for the core layer. Format: " |
mantle_eos |
str
|
EOS for the mantle layer. Format: " |
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. |
outer_solver |
str
|
Outer mass-radius solver: 'newton' (recommended) or 'picard'. |
use_jax |
bool
|
Use the JAX backend for the structure solver. |
use_anderson |
bool
|
Anderson Type-II Picard acceleration on the density loop. |
newton_max_iter |
int
|
Maximum Newton iterations (outer_solver = 'newton'). |
newton_tol |
float
|
Newton convergence tolerance (outer_solver = 'newton'). |
newton_relative_tolerance |
float
|
Integrator relative tolerance for the Newton path. |
newton_absolute_tolerance |
float
|
Integrator absolute tolerance for the Newton path. |
update_dphi_abs |
float
|
Re-solve the structure when the global melt fraction changes by this absolute amount since the last solve. |
update_dtmagma_frac |
float
|
Re-solve the structure when T_magma changes by this fraction. |
update_dw_comp_abs |
float
|
Re-solve when the relative dissolved-volatile (H2O or H2) mantle mass fraction changes by this amount. |
update_interval |
float
|
Maximum time between structure updates [yr]; effectively disabled at the default. |
update_min_interval |
float
|
Minimum time between structure updates [yr]; prevents thrashing. |
update_stale_ceiling |
float
|
Time since the last successful re-solve after which a trigger refires [yr]; 0 disables. |
mesh_max_shift |
float
|
Maximum fractional radius shift per structure update. |
mesh_convergence_interval |
float
|
Convergence relaxation time after a mesh update [yr]. |
equilibrate_init |
bool
|
Equilibrate structure and composition before the main loop. |
equilibrate_max_iter |
int
|
Maximum equilibration iterations. |
equilibrate_tol |
float
|
Equilibration convergence tolerance. |
dry_mantle |
bool
|
Structure EOS assumes a dry mantle. Set False for melt-fraction-aware dissolved-volatile mixing in the mantle density (per-shell volatile profile); the dissolved mass then stays inside the interior mass target. |
global_miscibility |
bool
|
Enable the H2-silicate binodal-aware radial structure. True is rejected at config load: it requires the binodal handoff on the Zalmoxis side, which is not yet implemented. |
miscibility_max_iter |
int
|
Maximum miscibility iterations. |
miscibility_tol |
float
|
Miscibility convergence tolerance. |