EarthSciML builds Earth science models as data. A model component (chemistry,
transport, emissions, meteorology, ...) is written once as an
EarthSciAST .esm document, and
the same document can be validated, coupled, discretized, differentiated, and
run from Julia, Python, Rust, TypeScript, or Go.
| Repository | What it is | Packages | Tests |
|---|---|---|---|
| EarthSciAST | The .esm format: an abstract syntax tree for Earth science models, with libraries to parse, validate, edit, couple, flatten, and simulate it. Docs |
||
| EarthSciModels | The model components themselves, as .esm files with inline tests. Docs |
||
| EarthSciDiscretizations | The standard library of grids, finite-difference and finite-volume rules, and regridding, as .esm files. Docs |
||
| EarthSciIntegrator | Time stepping for .esm models: explicit, implicit, IMEX, and split schemes with discrete adjoints, in Julia and Rust. |
||
| EarthSciASTDiff | Analytical sparse Jacobians of .esm models, by symbolic differentiation of the AST, in Julia, Python, and Rust. |
||
| EarthSciIO | Data providers: download, cache, and read input data onto the model's native grid, in Julia, Python, and Rust. |