A 2D, two-phase, immiscible reservoir simulator using TPFA (two-point flux approximation). Documentation.
- small (all physics fit in
core.py's 300 lines of code, <2% of the code of JutulDarcy) - equipped with an adjoint model (verified against finite differences)
- capable (two-phase, compressibility, BHP control) for a toy model (uniform grid, immiscible, isothermal)
- python (easy to demo in a web browser via Colab or WASM)
- fast (comparable to JutulDarcy at equal accuracy on 2D two-phase cases, but no waiting on JIT startup)
- reliable (reproduces the numbers of the Matlab code (2007) from NTNU/Sintef by Jørg E. Aarnes, Tore Gimse, and Knut–Andreas Lie)
- tested and documented
The examples double as regression tests. Each has a page in the documentation.
Please let me know (or make a PR) if you use this in your work, and I will add it to this list.
TODO
Get uv and do uv sync,
after which you can run the tests with uv run pytest (no further args),
and linting with uv run ruff check.

