Releases: FormingWorlds/PROTEUS
Version 25.10.15
This is the version of PROTEUS used to generate simulations for the CHILI Protocol (draft) and for my L 98-59 d paper (resubmission). It contains lots of other changes from the summer period, including support for tidal evolution, more complete structure calculations, ocean formation, and improvements to the user experience of the code.
What's Changed
- Ls/aragog update by @lsoucasse in #472
- Update CITATION.cff by @timlichtenberg in #474
- Ls/zenodo doc by @lsoucasse in #473
- Introduce auto-assign of new PRs by @timlichtenberg in #477
- Unify GridPROTEUS with BayesOpt parameter inference by @nichollsh in #476
- Tests for GridPROTEUS and BayesOpt inference schemes by @nichollsh in #480
- Orbital evolution of planet and its satellite by @nichollsh in #482
- Compatibility between Aragog and LovePy, plus new plot and tests by @nichollsh in #486
- Track ocean quantities in PROTEUS, as calculated by AGNI by @nichollsh in #489
- Improvements to BayesOpt by @nichollsh in #490
- Termination criterion for planet entering star's roche limit by @MarijnJ0 in #492
- Return total interior heat flux from Aragog wrapper by @nichollsh in #498
- Termination criterion for planet disintegration when it spins too fast by @MarijnJ0 in #501
- EOS bug fixed and Zalmoxis clean up by @flaviacris03 in #504
- Merge Br/inference by @Ben-Riegler in #512
- Provide "proteus update-all" by @HannoSpreeuw in #508
- Add config for GJ 9827 d, and new config option by @nichollsh in #518
- Add configs and scripts for CHILI Protocol paper by @nichollsh in #523
- Updated L98-59 parameters and other minor improvements by @nichollsh in #516
New Contributors
Full Changelog: 25.07.31...25.10.15
Version 25.07.31
Summary
Several new additions, including:
- Structure calculation via Zalmoxis
- Extensive updates to documentation
- Simplified User install method
- Includes JOSS submission manuscript
- Early BO inference version
- Aragog now default interior model
- Enable instellation as primary input parameter instead of orbit
- Pre-commit hook to avoid commits of large data files
What's Changed
- Integrating Zalmoxis by @flaviacris03 in #401
- Validate module versions by @nichollsh in #411
- fp/gravity by @flaviacris03 in #412
- Ls/aragog_reset by @lsoucasse in #410
- Add schematic to docs by @nichollsh in #429
- Ls/zenodo by @lsoucasse in #435
- Merge BO inference by @Ben-Riegler in #433
- Fixed docs display issue for _struct class by @flaviacris03 in #445
- Docs, pre-commit hook, and bug fixes by @nichollsh in #451
- Validate data files with MD5, check when they need updating/replacing by @nichollsh in #454
- Default config: aragog as default interior module, disable zalmoxis by @nichollsh in #460
- Rc/interior lookup tables by @rdc49 in #409
- Several updates to documentation by @timlichtenberg in #464
- fixing_instellation_bug by @rdc49 in #465
- Fixes 440 partially and 455 by @HannoSpreeuw in #456
- Uncollapse requirements and steps lists by @HannoSpreeuw in #467
- Move inference code into
src/folder and refactor by @nichollsh in #470 - Draft for method paper submission to Journal of Open Source Software (JOSS) by @timlichtenberg in #430
New Contributors
- @flaviacris03 made their first contribution in #401
- @Ben-Riegler made their first contribution in #433
- @rdc49 made their first contribution in #409
Full Changelog: 25.05.20...25.07.31
Version 25.05.20
Summary
Significant changes to the model, which include the introduction of escape and tidal heating. Features key support/improvements for the new Aragog interior model, designed to replace SPIDER. Re-worked VULCAN chemistry wrapper.
Documentation has been updated, and the source code is better commented. New configuration files are available in the input/ folder.
Test coverage has increased to 71%. Configuration files now use 'default' values defined in the source code.
Grid tooling now supports SLURM workload management. Documentation includes details on using PROTEUS on HPC clusters.
Pull requests
- Creating folder of PETSc by @planetmariana in #311
- Citation info by @nichollsh in #313
- Update plots and CLI responsiveness by @nichollsh in #316
- Restrict time-steps to be smaller than the predicted time until model termination by @nichollsh in #317
- Support for depth-dependent tidal heating by @nichollsh in #321
- Fix interior plot and update docs by @nichollsh in #323
- Add installation instructions for Snellius cluster. by @lsoucasse in #315
- Dummy tides inequality, convergence robustness, docs by @nichollsh in #326
- Support for physical tidal heating module 'lovepy' by @nichollsh in #329
- Fix os.cpu_count() function in grid_proteus.py for users with Python<3.13 by @EmmaPostolec in #333
- AGNI no-solve configuration and minor changes by @nichollsh in #334
- Enable/disable real gas EOS in AGNI by @nichollsh in #336
- Atmospheric escape time-step and other changes by @nichollsh in #337
- Updates to Julia packages by @nichollsh in #340
- Update snellius docs and modules. PROTEUS works. by @nichollsh in #341
- Support for H2S and NH3 outgassing by @nichollsh in #342
- Synthetic observables with PLATON by @nichollsh in #343
- Diagnostic parameters and minor changes by @nichollsh in #344
- Escaping composition set by user-selected reservoirs by @nichollsh in #346
- Ls/aragog adiabat by @lsoucasse in #349
- Rework configuration and docs for simplicity by @nichollsh in #352
- Adding melting curves as a key on toml file by @planetmariana in #357
- New config keys on toml file from aragog interior model by @planetmariana in #359
- Fix offline chemistry script. Other minor fixes to PROTEUS. New config options. by @nichollsh in #354
- Software test for running PROTEUS with AGNI atmosphere model by @nichollsh in #361
- Store Fxuv and use correct distance scaling by @nichollsh in #363
- Improvements to code test coverage by @nichollsh in #364
- Update documentation for Kapteyn cluster usage by @timlichtenberg in #368
- Integrate offline chemistry into main codebase by @nichollsh in #366
- Update the documentation to use condormaster on Kapteyn cluster by @EmmaPostolec in #351
- Provide MORS with correct reference age for rotation rate. by @nichollsh in #371
- Calculate synthetic observations based on offline chemistry output by @nichollsh in #377
- Documentation for Habrok cluster by @nichollsh in #381
- Generate slurm config from grid_proteus by @stefsmeets in #382
- Grid PROTEUS docs and fixes by @nichollsh in #383
- Archive data files from simulations by @nichollsh in #385
- Limit platon temperature range, and a mitigation for data-download failures by @nichollsh in #393
- Handle cases where elemental inventory is zero by @nichollsh in #397
- Respect minimum time requirement, add vars to config by @nichollsh in #400
- Update VULCAN wrapper with new Config object by @nichollsh in #402
- Fix 353 by @HannoSpreeuw in #403
- New plot to visualise planet evolution by @nichollsh in #406
- Event triggering to recompute outer boundary condition by @planetmariana in #408
Full changelog
v24.12.11
What's Changed
- Tidying some stuff by @nichollsh in #116
- Fixed installation instructions : underscore in the step 4 command by @EmmaPostolec in #117
- Switch documentation over to mkdocs by @stefsmeets in #121
- Rewrite AGNI interface with JuliaCall and other refactoring by @nichollsh in #123
- Change project slug in documentation by @stefsmeets in #124
- Set up pyproject.toml by @stefsmeets in #125
- Fix banner in readme by @stefsmeets in #129
- Set up automated tests via Github Actions by @stefsmeets in #128
- Escape by @EmmaPostolec in #132
- Atmos wrapper by @lsoucasse in #133
- Set up release workflow by @stefsmeets in #139
- Fix * imports by @stefsmeets in #138
- Merge escape2 branch to master by @EmmaPostolec in #140
- Refactor start_proteus.py and move config to toml by @stefsmeets in #142
- Add integration test for PROTEUS by @stefsmeets in #149
- Add linting config and fix linting issues by @stefsmeets in #146
- Add plots to CLI by @stefsmeets in #151
- Installation and logging updates by @nichollsh in #155
- Update CITATION.cff by @stefsmeets in #153
- Master -> main by @nichollsh in #159
- Janus wrapper by @lsoucasse in #150
- Remove submodules by @lsoucasse in #158
- Emission spectrum calculation and other minor changes by @nichollsh in #161
- Bugfix for plotting by @nichollsh in #164
- Fixes to environment in files and docs by @nichollsh in #170
- Outgassing handled by CALLIOPE and other minor additions by @nichollsh in #176
- High-resolution postprocessing and download data by @nichollsh in #179
- Fixes to dummy atmosphere and other minor changes by @nichollsh in #183
- Dummy interior model and further work on generalising submodules by @nichollsh in #185
- Dummy test by @lsoucasse in #188
- Time-averaged orbital distance and minor changes by @nichollsh in #191
- Plotting I/O improvements by @nichollsh in #195
- Remove SPIDER and PETSc submodules by @nichollsh in #197
- MacOS tests and standalone setup by @nichollsh in #198
- Dummy integration by @lsoucasse in #199
- Implement new config by @stefsmeets in #189
- Zephyrus by @lsoucasse in #181
- Config implementation by @stefsmeets in #203
- Generalised outgassing wrapper by @nichollsh in #211
- Comparison with population data, rework planetary vs interior mass/radius by @nichollsh in #214
- Do not test example configs by @stefsmeets in #219
- Generalise stellar wrapper, dummy star module by @nichollsh in #220
- Update documentation for config by @stefsmeets in #217
- Add validators to config by @stefsmeets in #223
- Add mass-radius curves to population plots by @nichollsh in #222
- Download spectral files as required by @nichollsh in #228
- Escape config by @lsoucasse in #225
- Support for arbitrary gases by @nichollsh in #229
- Star wrapper consistency by @lsoucasse in #230
- Fix grid_proteus.py by @nichollsh in #231
- Fix unit conversion in dummy star and add test by @nichollsh in #234
- Aragog constant by @lsoucasse in #235
- Read aragog output files and make interior plots by @nichollsh in #239
- Fix deprecation warnings from config update by @stefsmeets in #226
- Refactor and optimize data download by @stefsmeets in #244
- Atmosphere model wrapper by @nichollsh in #243
- Display information on module versions, remove PROTEUS.env by @nichollsh in #246
- Tests using physical simulations by @nichollsh in #247
- Add gas overlap option to config by @nichollsh in #249
- Update aragog wrapper with recent changes by @nichollsh in #254
- Implementation of Rxuv computation for escape by @EmmaPostolec in #227
- Add aragog as a package dependency. by @lsoucasse in #255
- Calculate and store orbital period by @nichollsh in #257
- Remove config compatibility code by @stefsmeets in #251
- Update README.md by @timlichtenberg in #260
- Update test data for new version of Mors/Spada. by @lsoucasse in #264
- Self-consistent mass and radius for interior modules by @nichollsh in #262
- Set interior structure by: total planet mass, radius by @nichollsh in #272
- Dummy tidal heating by @nichollsh in #275
- Ls/resume aragog by @lsoucasse in #279
- Pass radionuclide parameters from config by @nichollsh in #278
- Add cli doctor command by @stefsmeets in #274
- Pass tidal heating to Aragog and SPIDER by @nichollsh in #282
- Validate escape config by @nichollsh in #290
- Ls/structure aragog by @lsoucasse in #291
- Allow setting Hydrogen inventory relative to mantle mass by @nichollsh in #292
- Do not require internet access by @nichollsh in #294
- Update termination criteria by @nichollsh in #297
- Allow setting volatile abundances as both metallicity or concentration by @nichollsh in #298
- Add a section in documentation for installation on Kapteyn cluster by @EmmaPostolec in #299
- Update kapteyn cluster documentation webpage by @EmmaPostolec in #301
- Organize input folder by @EmmaPostolec in #300
- Neglect checking for CH4 molar abundance by @nichollsh in #304
- Set
p_obsfrom CFF, update postprocessing scripts by @nichollsh in #305 - Minor updates for the documentation of the Kapteyn cluster section by @EmmaPostolec in #307
- Minor update of escape.toml by @EmmaPostolec in #308
- Ls/aragog lookup by @lsoucasse in #306
- ls/proteus to pypi by @lsoucasse in #310
New Contributors
- @EmmaPostolec made their first contribution in #117
- @stefsmeets made their first contribution in #121
Full Changelog: v24.07.25...v24.12.11
Version 24.07.25
What's Changed
- Sulfur outgassing by @nichollsh in #102
- Stellar modelling updates by @lsoucasse in #108
- Integrate JANUS package by @lsoucasse in #109
- Detangling input/output variables by @nichollsh in #111
- Simulation can be resumed by @nichollsh in #112
- Calculates some observational quantities by @nichollsh in #114
- A dummy escape module by @nichollsh in #115
- Documentation updates
- Other minor changes
New Contributors
- @lsoucasse made their first contribution in #108
Full Changelog: v24.05.29...v24.07.25
Version 24.05.29
What's Changed
- Updates to AGNI interface by @nichollsh in #88
- Updates to default case and removed duplicate code by @nichollsh in #89
- Rewrite SolveVolatiles outgassing script and other minor changes by @nichollsh in #98
Full Changelog: v24.04.04...v24.05.29
Version 24.04.04
Summary
- Stability improvements. The model now uses a more robust time-stepping scheme, which should mean that it does not take unphysically large steps that lead to submodules becoming decoupled. There are also other safety-checks, such as re-running SPIDER steps if the attempted step size and tolerances were inappropriate. New convergence criteria have been implemented for steady-state cases which do not solidify before reaching global radiative equilibrium.
- Documentation updates. The ReadTheDocs files are now more coherent, with tables for outlining the parameters and fixes to the installation instructions. The submodule AEOLUS has been renamed to JANUS, to avoid confusion with other codes.
- Model output. Plots have been improved and tidied, and are now generally faster to create. The model now outputs its stdout to a log file as well as to the terminal. The GridPROTEUS tool now uses queueing and multiprocessing, such that PROTEUS can now be easily run many times in parallel across a parameter space.
- Clouds. The model now includes clouds, through JANUS, although they haven't been extensively tested and are disabled by default.
Merged pull requests
- Update my e-mail address by @djbower in #58
- Significant model stability improvements, plotting updates, and other changes by @nichollsh in #67
- Support for JANUS, logging, GridProteus, and stability improvements by @nichollsh in #78
- Clouds and minor fixes by @nichollsh in #79
- Plot updates. Import optimisations. Config updates. by @nichollsh in #85
Full Changelog: v23.11.15...v24.04.04
Version 23.11.15
This is the first release since Lichtenberg et al., 2021. Significant changes have been made to the model since then, so I will not make a direct comparison here.
The model is able to simulate the evolution of a magma ocean planet from a completely molten state to solidification. It accounts for energy transport through the interior (convection, conduction, settling, phase change), surface (conduction), and atmosphere (radiation, convection). The composition of the atmosphere is set by melt-vapour equilibrium with the magma ocean, requiring mass balance between equilibrium chemistry and solubility in the melt. Downwelling SW radiation from the star is calculated from stellar evolution tracks, and using time-resolved spectra. The model supports several volatiles at runtime, but includes tools for post-processing simulation results with robust photochemical kinetics. Output data are automatically plotted. The model's modular nature allows the submodules (e.g. AEOLUS) to be swapped for alternatives, such as AGNI.
This release has been able demonstrate that an Earth-like case with a pure-steam atmosphere cools within a few Myr, while Venus maintains a partially molten state thanks to a strong greenhouse effect. Highly irradiated planets (e.g. TRAPPIST-1b) are shown to maintain an almost entirely molten state as long as they maintain their atmospheres.
Submodules have been validated separately. This release does not include submodules explicitly, so they will need to be downloaded according to the documentation.
Module arrangement from Lichtenberg+ 2021 JGRP
Submodule versions from Lichtenberg et al. (2021, JGRP).