5.1 KiB
Local ExoPlaSim project
This repository preserves the complete ExoPlaSim upstream Git history and tracked source tree. It adds SBDART and local setup scripts. The upstream README remains unchanged.
The private project repository is ssh://git@git.openfu.com:11622/udo/exoplasim.git. The working copy is /root/src/exoplasim on udo-aiworker. The PHP workbench guide is docs/web-ui.md.
Sources
| Component | Upstream | Imported commit |
|---|---|---|
| ExoPlaSim | https://github.com/alphaparrot/ExoPlaSim | 5f8dff4aaa8d6cd8813e6e0cf21c49883cbfb7ff |
| SBDART | https://github.com/paulricchiazzi/SBDART | 722ba0e1f69dc1b856efdc654dc47c909f69aec5 |
ExoPlaSim is an extension of PlaSim. Do not attribute it to NASA or imply NASA endorsement. Retain the authors' notices and the component licenses. The root LICENSE.TXT contains GPL v2. SBDART retains its own auxiliary/sbdart/LICENSE.
The import includes all tracked ExoPlaSim files, not only its Python package. This includes PlaSim, PUMA, SAM, CAT, LSG, glacier code, utilities, notebooks, manuals, and bundled scientific tables. The SBDART vendor directory includes all files tracked by its pinned upstream commit. It includes documents, examples, reference outputs, and RunRT utilities.
The imported pyproject.toml reports version 3.4.2. The legacy setup.py reports 3.4.0. The install uses pyproject.toml.
The Python API documentation source is in docs/. Original PlaSim manuals are in exoplasim/plasim/doc/. The upstream tutorial is exoplasim/exoplasim_tutorial.ipynb. SBDART documents are in auxiliary/sbdart/Documents/. See docs/local-sbdart.md for its local commands.
Optional petitRADTRANS support remains upstream code only. This setup does not install petitRADTRANS or its external opacity databases. Custom planetary inputs and external scientific datasets are not part of this import. RunRT contains upstream pickle files. Do not load untrusted pickle files.
Setup
The tested platform uses Linux x86-64, Python 3.14.4, GNU Fortran 15.2.0, and OpenMPI from Ubuntu packages. requirements-local.lock pins the tested Python environment. Each selected release was more than three days old on the setup date.
- Change to the project directory.
- Run
timeout 600 scripts/setup-local --systemto install system packages and the Python environment. - On a host with system packages already installed, run
timeout 420 scripts/setup-localinstead. - Run
timeout 300 .venv/bin/python scripts/exoplasim-smoke.py. - Run
timeout 150 scripts/sbdart-smoke.
--system requires root and changes host packages. Without that option, the script only changes the working copy. The editable install uses this full source tree. First model creation configures compilers and builds the model and NumPy Fortran extensions.
To retain Python packages for an offline reinstall, run:
timeout 180 .venv/bin/pip download --only-binary=:all: -r requirements-local.lock -d wheelhouse
The setup script uses wheelhouse/ if present. Keep the complete wheel set. System packages still require an existing local installation or an apt mirror.
Acceptance and limits
The ExoPlaSim smoke test builds a serial T21 model with ten layers. It requests 1,440 timesteps and invokes one API year. This is a startup test, not climate equilibrium. The script checks postprocessed surface temperatures for finite values and broad physical limits. It saves the model configuration, diagnostic files, NPZ output, and acceptance.json in a unique directory below tmp/.
A 96-step attempt did not produce enough output for the upstream postprocessor. The setup therefore uses 1,440 steps. It does not alter upstream postprocessing behavior.
SBDART runs a separate atmosphere case at 0.55 micrometers. This tests source compilation and numeric output. It does not establish scientific accuracy or an integrated ExoPlaSim-to-SBDART pipeline. No such pipeline ships in the imported ExoPlaSim tree.
MPI libraries are installed, but acceptance currently covers serial ExoPlaSim only. The optional RunRT GUI and the other bundled model families have not received runtime acceptance. Their complete source and documentation are available.
Build products, environments, and experiment outputs are ignored. ExoPlaSim compilation rewrites the tracked exoplasim/plasim/run/most_plasim_run template. Review this generated difference before a commit. Do not commit it as a source fix.
The local project now modifies exoplasim/configure.sh and exoplasim/plasim/src/legmod.f90. The changes add build modes and measured transform optimizations. See docs/build-modes.md and docs/performance.md for current behavior and numerical limits.
The checked build remains the default. Run timeout 300 .venv/bin/python scripts/exoplasim-smoke.py --recompile after source or compiler-setting changes. Existing cached executables do not rebuild automatically.
The exoplasim-upstream-import tag preserves the baseline for offline comparisons. Test harnesses and numerical acceptance commands are in docs/transform-tests.md. No Actions, deployment hooks, or recurring jobs are enabled.