Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyaneos

A python port of M-ANEOS.

DOI

Version 1 — the oracle-validated port. Every supported EOS path is bit-identical (np.array_equal) to the Fortran, not tolerance-matched: the 257-test legacy suite is checked against the frozen src/ oracle, and the Thomas-Fermi path against the src-lpphpp oracle (see "Two oracles" below). Supported: EOS types 0/1/3/4, type 5 (LPP/HPP), type -2 (ideal gas), the JWL form, Saha and Thomas-Fermi electronics. The explicit list of what is not ported (all behind clean errors, none reached by a fixture) is docs/code/unported-features.md.

⚠️ The EOS models in this repository are NOT production material models

Everything under examples/ is a test fixture or proof of concept for validating the code — uncalibrated scaffolds, capability demos, and even a deliberately-broken deck or two. Do not use them for science. Use the separately-published, individually-validated production material models.

  • src: original M-ANEOS fortran source from https://github.com/isale-code/M-ANEOS
  • docs: folder contains detailed description of ANEOS modules and known issues.
  • src-lpphpp: corrections to fortran source
  • pyaneos: python port

Two oracles (both reproduced bit-for-bit): oracle/build.sh builds the canonical oracle from the frozen src/; oracle/build_lpphpp.sh builds a second oracle from src-lpphpp used only for Thomas-Fermi, because frozen src/'s ANTOMF crashes on the 2nd+ call (a missing-SAVE bug). src-lpphpp differs from src only by that fix plus the LPP/HPP extension files.

Extensions beyond original ANEOS — see the user guide:

  • lpp/hpp/liquid triple point (2- and 3-solid chains; V47/V48 Gibbs offsets; pyaneos + fortran src-lpphpp, cross-validated bit-identical; calibrated examples: sio2-2026, sio2-2026-3solid, sio2-2026-3solid-v2 — the D1-D5 liquid-structure transition + physical liquid cv — h2o-2026-2solid/-3solid)
  • negative-slope melt curves (water topology: V24 > 1 or -rholiq with the liquid denser than the solid)
  • NOTENSION keyword: equilibrium tables with the solid-vapor (sublimation) region tabulated in place of the tension region
  • Thomas-Fermi electronic EOS (ANTOMF/ANSMFT) ported (V33 != 0; pyaneos/thomas_fermi.py), validated bit-identical against the src-lpphpp oracle
  • corrections: fresh-Clapeyron mixed-phase heat capacity at the lpp/hpp boundary (hpp_corrected), Thomas-Fermi SAVE-statement fix (src-lpphpp)

Reporting bugs & discrepancies

Bit-identity to the original Fortran ANEOS is this project's correctness standard, so any bug — a crash, a wrong number, or a pyaneos result that differs from the Fortran — is valuable. Please report it to Sarah T. Stewart (contact via her web page). Include the ANEOS.INPUT and the (T, ρ) or table cell where you see the difference.

License

MIT (see LICENSE) — same license as the upstream M-ANEOS Fortran (isale-code/M-ANEOS), whose copyright notice is retained. The example material datasets that are not vendored here (copies of external public repositories) are listed with their sources in examples/README.md.

Citation

If you use pyaneos, please cite it (see CITATION.cff and the badge above). The concept DOI below always resolves to the latest version:

Stewart, S. T. (2026). pyaneos: an oracle-validated Python port of M-ANEOS (Version 1.0) [Software]. Zenodo. https://doi.org/10.5281/zenodo.20736271

Please also cite the original ANEOS / M-ANEOS that pyaneos ports: Thompson & Lauson (1972), the Melosh (2007) and Stewart (2019) extensions, and the M-ANEOS software (https://github.com/isale-code/M-ANEOS).

Port and testing harness by Claude Code (Fable 5 and Opus 4.8, 1M context).

S. T. Stewart, Developer

6/16/2026

About

A python port of M-ANEOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages