Skip to content

26.10.16

Latest

Choose a tag to compare

@timlichtenberg timlichtenberg released this 16 Oct 06:19
e6c872f

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_super solves 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_radio is 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_viscosity of 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 grid refuses 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 accretion module 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] or correlate_ratios = true adds correlated errors, and patience stops 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), and T_cmb_node, the temperature at the core-mantle boundary node beside T_cmb of the bottom mantle cell (#895).
  • The environment variable PROTEUS_OUTPUT_PATH sets the root of the output folders; without it, runs are written to <proteus>/output as 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.stall sets the limit (d12cde5).
  • params.out.dt_write_rel starts 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, botorch and gpytorch are no longer part of the default install. Install them with pip install "fwl-proteus[inference]" to use proteus infer; without them, proteus infer stops with that command (#783).

  • bash install.sh installs into a conda environment of its own (proteus, or the one that --conda-env names), 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.sh and proteus install-all also 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 in pyproject.toml (#1002).

  • proteus doctor reports 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 --force to bring an existing VULCAN clone to 26.10.14; bash install.sh stops with this command, and with the fix command of any other module that is still below its minimum version, and proteus start stops 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_name that the MUSCLES and solar registries do not list resolves to the Named stellar spectra (#968).

  • Julia 1.13 is the default; install.sh and proteus doctor warn on Julia 1.11, which is deprecated (#910).

  • tools/get_petsc.sh downloads PETSc from Zenodo with a SHA-256 check and the DataverseNL copy as a fallback (#965).

  • proteus get interiordata, proteus install and proteus update keep data files that are already present; proteus get interiordata --clean fetches 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/ and input/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.toml keeps its atmosphere to the 5% melt stop, and input/minimal_quick.toml runs 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_global stay clear of the curves (#996).
  • plot_global, plot_fluxes_global and 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-mpl by tools/make_docs_figures.py from 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, and CITATION.cff lists its 29 authors (#1012).

For contributors

  • proteus-mpl>=1.3.0 is in the docs and develop extras (#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 gives init_stage; building the Aragog solver logs the ODE integrator in use (#983).