Closed nichollsh closed 9 months ago
A note on performance...
The model runtime varies significantly depending on the parameters you choose. For reference, the example case in tests/
took 6.39 hours to complete on an Intel Xeon 6240R CPU. In my tests, the worst-performing case took 29 hours to complete since it evolved for several 100 Myr before converging.
This PR contains some significant changes and some minor changes.
Major changes
spider.py
, the SPIDER subprocess is now called via a wrapper function_try_spider()
which attempts to run the interior model. If SPIDER fails, PROTEUS will detect this (instead of just crashing) and will attempt to run SPIDER again with an tolerance and step-size. This is repeated up to 7 times, re-adjusting the tolerances and step each time. Closes #61.tools/GridPROTEUS.py
. The model can now be reliably run for a grid of parameters, with the status of each grid point being tracked by a 'status file' that is updated within each output folder. The status of a grid can be analysed withtools/GridSummarise.py
. There's also a successor to this calledGridPROTEUS2.py
but it is not complete and is considered unsafe to use at the moment.F_atm
) is small, and that the global melt fraction (phi_global
) is unchanging in time.Minor changes
cpl_global.py
to be much more efficient in terms of file I/O, which comes with a significant performance benefit as the simulations progress, potentially saving days of CPU time. Closes #65.cpl_interior_cmesh.py
). Removed some old plotting scripts which are redundant and/or unsupported.tools/
for processing the model outputs and debugging the code.tests/
for an Earth-like case with an initial 100 bar pure-steam atmosphere.