Repository navigation
Physics and numerics since 26.07.14
Effect sizes and validation runs are in the linked PRs.
Defaults that change the result of an unchanged config
| Key | 26.07.14 | This release | PR |
|---|---|---|---|
outgas.fO2_shift_IW |
4.0 | 2.0 | #984 |
params.dt.minimum |
1e4 yr | 100 yr | #992 |
interior_energetics.rfront_loc |
0.5 | 0.4 | #918 |
interior_energetics.grain_size |
0.1 m | 1e-3 m | #849 |
interior_energetics.rtol, unset, with Aragog |
1e-10 | 1e-8 | #939 |
interior_energetics.aragog.separation_viscosity |
new | "mixture" |
#848 |
interior_energetics.aragog.phase_boundary_cap |
new | "rate" |
#939 |
interior_struct.zalmoxis.use_anderson |
false |
true |
#971 |
escape.hill_clamp |
new | true |
#809 |
escape.step_max_frac |
new | 0.25 | a309faf |
atmos_chem.vulcan.fix_surf |
false |
true |
#1003 |
atmos_chem.vulcan.dttry |
1e-6 s, fixed in the code | 1e-8 s | #1003 |
atmos_chem.vulcan.dt_min |
1e-8 s, fixed in the code | 1e-10 s | #1003 |
Set the old value in the config to keep the behaviour of 26.07.14. The escape step limit has no such value. The three Aragog step caps are off unless the config sets them (#850).
Corrections
- With Zalmoxis, the core mass is set once, when the initial stage ends, and then kept (#986).
- The Zalmoxis structure mass follows the mass that escape removed (#950).
- Escape takes no radii from an atmosphere solve that AGNI rejected (#809).
- The escape floor stays off a frozen mantle, and desiccation books the removed mass in
M_desiccated(#953). - Eccentric orbits use the orbit-averaged flux distance a(1 - e^2)^(1/4) for the bolometric and the XUV flux (#937).
- The synthetic eclipse depth is divided by the flux at the stellar surface (6f2fc47).
liquidus_supersolves the initial entropy on the interior P-S tables for every structure module (#898).- Two runs of one config agree on the constant-fugacity path: the CALLIOPE cold start is seeded (#958).
- A failed Aragog call restarts from its start state, and a skipped row no longer adds the energy of the call before to the cumulative columns (#979).
- SPIDER energetics with a PALEOS structure no longer stop on a false entropy check (#838).
- The mushy zone factor applies to the whole PALEOS family (#890).
F_radiois sampled at the end of the step (#987).- Helpfile columns that stayed at zero now hold values: SPIDER core and CMB columns, atmodeller mole columns, AGNI optical depths (#869, #853).
- The start of a run reads the petitRADTRANS version from the package metadata and does not import the package, so parallel runs that share one install do not start its build step at the same time (#896).
- The JANUS atmosphere snapshot is written from the column that JANUS solved (#800).
- The JAX interior solver uses the
separation_viscosityof the config, as the numpy solver does (#854). - With the dummy structure, the P-S tables and melting curves follow
mantle_eos, also for a PALEOS mantle (#938). - After a giant impact, the impact heat is measured from the entropy profile at the end of the step, and an impact never cools the mantle (#947). A step lands exactly on the impact time, and a run resumes across an impact (#951).
Resumed runs
A resumed Zalmoxis and Aragog run now equals the uninterrupted run (#987). The resume restores the structure of its snapshot (#946), the Aragog boundary state (#906), the coupling of the magma temperature to the atmosphere (#897), the right snapshot when file names are close (#872), and the crystallisation state (#784). The helpfile is written and read back exactly (26ffa1d). A helpfile without a column that a module reads stops the resume with HelpfileSchemaDriftError (c7cc431).
Configuration
- A config key that the schema does not define stops the run with the name of the key, for every command that loads a config; before, the key was dropped and the default was used (#799).
proteus gridrefuses a top-level key that is neither a grid setting nor a config field (#957).- The migration tool from config version 2.0 to 3.0 refuses a key that the 3.0 schema does not define, and lists the 2.0 keys that it leaves out (#956).
New options, off by default
- Volatile trapping in the solid mantle behind the freezing front,
outgas.trap_mode = "front"(#928). - Growth by giant impacts: the
accretionmodule with Morrigan, a replayed impact history or scaling laws, and a choice of atmospheric loss law (#789, #975). - Core evolution in Aragog,
core_bc = "core_module"(#980). - Tides and orbits with Obliqua, three orbit models, and prescribed orbital migration (#859, #937). The satellite settings moved to
[orbit.satellite]. - Rock vapour from LavAtmos,
outgas.vapourise = true; total mass is not conserved in this mode (#634). - Dissolved water in the Zalmoxis structure solve,
dry_mantle = false(#740). - AGNI aerosols, more vapour species, and a photosphere defined by optical depth (#921).
- A time window for the scaling of the stellar luminosity (#802).
- Observable uncertainties in
proteus infer:[sigma]per observable gives a chi-squared objective (in dex for log-compared observables and element ratios),[correlation]orcorrelate_ratios = trueadds correlated errors, andpatiencestops a study without improvement. The workers no longer choose the same point (#973). - The helpfile has the gravity at the photosphere,
g_obs, as an observable for inference (#762), andT_cmb_node, the temperature at the core-mantle boundary node besideT_cmbof the bottom mantle cell (#895). - The environment variable
PROTEUS_OUTPUT_PATHsets the root of the output folders; without it, runs are written to<proteus>/outputas before (#777).
Numerics and run time
- Zalmoxis structure solves run on the JAX path for unified PALEOS and wet mantles (#746), with Anderson acceleration (#971).
- At the CVODE step limit, the Aragog entropy solver relaxes the tolerance along a bounded ramp (b3eee32).
- A run whose atmosphere does not converge for 150 iterations in a row stops;
params.stop.stallsets the limit (d12cde5). params.out.dt_write_relstarts a snapshot write on its own (#775).
Module versions
| Module | 26.07.14 | This release |
|---|---|---|
fwl-aragog |
26.07.04 | 26.10.10 |
fwl-zalmoxis |
26.07.03 | 26.09.21 |
fwl-calliope |
26.06.01 | 26.10.05 |
fwl-zephyrus |
25.03.11 | 26.10.10 |
fwl-mors |
26.01.02 | 26.10.6 |
fwl-janus |
24.11.05 | 26.10.15 |
fwl-io |
not required | 26.10.7.1 |
Python 3.12 is required (3.11 is no longer supported). The optional VULCAN module needs fwl-vulcan 26.10.14 or later (#1003).
Installation and data
-
torch,botorchandgpytorchare no longer part of the default install. Install them withpip install "fwl-proteus[inference]"to useproteus infer; without them,proteus inferstops with that command (#783). -
bash install.shinstalls into a conda environment of its own (proteus, or the one that--conda-envnames), adds Julia 1.13 beside the default of the user, and sets the PROTEUS variables in that environment. It writes no shell start file (#994). -
bash install.shandproteus install-allalso set up Morrigan, VULCAN, atmodeller and Obliqua, in a step after the check that PROTEUS imports. A module that fails gives a warning with the command to repeat, and the install goes on. atmodeller is cloned at the commit pinned inpyproject.toml(#1002). -
proteus doctorreports these four modules and gives the setup command for one that is missing (#1002). -
New module clones start at the release tag of their minimum version, and a module folder that is already there stays as it is (#989). After an update, run
bash tools/get_vulcan.sh --forceto bring an existing VULCAN clone to 26.10.14;bash install.shstops with this command, and with the fix command of any other module that is still below its minimum version, andproteus startstops the same way when a config runs VULCAN (#1008). -
A pixi environment is available next to conda (#861).
-
All reference data is fetched through fwl-io, with each Zenodo record pinned and DataverseNL as the fallback mirror. A run with missing tables stops before it starts (#919, #960).
-
The PALEOS unified EOS tables are pinned to v1.3.0 (#882).
-
The exoplanet and mass-radius data, the Seager 2007 and Zeng 2019 tables, the AGNI aerosol refractive indices and version 2 of the Named stellar spectra come through fwl-io (#782, #964, #974, #967). A
star_namethat the MUSCLES and solar registries do not list resolves to the Named stellar spectra (#968). -
Julia 1.13 is the default;
install.shandproteus doctorwarn on Julia 1.11, which is deprecated (#910). -
tools/get_petsc.shdownloads PETSc from Zenodo with a SHA-256 check and the DataverseNL copy as a fallback (#965). -
proteus get interiordata,proteus installandproteus updatekeep data files that are already present;proteus get interiordata --cleanfetches the melting curves again (#1007). -
tools/get_thermoenginelite.sh, which the vapourisation tutorial needs, finds the GSL library in the conda environment, through Homebrew or in the system folders, stops with the install commands when there is none, and stops when the build fails; the optional-modules page lists GSL (#1010). -
The default install resolves the Apache-2.0 release of aragog (#889).
-
The install pages give the same Miniforge commands for macOS and Linux, clone over HTTPS, and give the command of the official Julia installer; the pixi route is marked as experimental (#997).
Tutorials
- The Venus tutorial stops at 3 Myr and the Earth and Moon tutorial at 0.8 Myr (#995).
- The CHILI configs in
input/chili/intercomp/andinput/tutorials/chili_grid/stop at 5% melt by mass or after 1 Gyr, with the energy-balance, escape and wall-clock stops off, as the runs submitted to the intercomparison (#1011). input/minimal.tomlkeeps its atmosphere to the 5% melt stop, andinput/minimal_quick.tomlruns the same modules with a grey atmosphere in place of AGNI (#991). The Earth tutorial runs from a clean checkout with no manual data steps (#761).- The labels and legends of
plot_globalstay clear of the curves (#996). plot_global,plot_fluxes_globaland the orbit plots take their neutral colours from the active matplotlib style (#988), and the atmosphere chemistry plot draws AGNI aerosols in the colour and name of their gas (#985).- The quick start, Earth analogue, Earth and Moon and parameter grid pages give the numbers and figures of runs of this release (#997).
- The figures of these pages follow the PROTEUS visual language: each is a pair for the light and the dark colour scheme of the site, drawn with
proteus-mplbytools/make_docs_figures.pyfrom the output folder of a run (#997). - The CHILI intercomparison page gives the results of runs of this release next to the intercomparison data. Its 11 figures are pairs for the light and the dark scheme too, drawn by the same tool (#1000). It shows the runs as they were on 16 October 2026 (#1011).
- The module schematic and the architecture diagram of the docs have labels as text, and the links of the architecture diagram name their target in the code, which the docs deploy turns into the current line (#976).
Paper
- The JOSS paper in
paper/is revised for the resubmission, andCITATION.cfflists its 29 authors (#1012).
For contributors
proteus-mpl>=1.3.0is in thedocsanddevelopextras (#997).- A CI job runs the commands of the install page on Ubuntu, on a pull request that changes the install path (#997).
- That job ends with
tools/check_further_modules.py, which checks that the four further modules are usable (#1002). - The macOS unit tests of the PR checks run on 2 workers, and a failed test fails that job (#1001).
- On macOS runners whose Command Line Tools are newer than the default Xcode, CI links SOCRATES and AGNI with the linker of the Command Line Tools (#1009).
- With
PROTEUS_TIMING=1, a run logs the seconds of each init step in one[INIT_TIMING]line, and the[IT_TIMING]line of each iteration givesinit_stage; building the Aragog solver logs the ODE integrator in use (#983).