This repository is a scientific computing library (CEA). Follow these rules:
- Do NOT modify
data/thermo.inpordata/trans.inpunless explicitly instructed. - Numerical correctness is paramount; preserve bitwise results and scientific behavior.
- Avoid algorithmic changes unless explicitly requested.
- Prefer clarity over cleverness or micro-optimizations.
- Keep changes small and focused; avoid drive-by formatting or whitespace churn.
- In Fortran source files, keep lines within the default free-form GNU limit (target
<= 132characters) so CI builds that do not pass-ffree-line-length-nonedo not fail. - Maintain backward compatibility for the legacy user base.
- If numerical behavior might change, call it out and add validation or tests when possible.
- Respect layer boundaries: Fortran core in
source/, C bindings insource/bind/c/, Python bindings insource/bind/python/. - If the public-facing Python API in
source/bind/python/CEA.pyxchanges, update the corresponding type-hinting files insource/bind/python/cea/(for example.pyistubs). - Run minimal validation for touched areas:
- Core/CMake/Fortran/C changes: run relevant
ctesttargets from the build directory. - Python binding changes: run
make py-rebuildthenpytest source/bind/python/tests. - Documentation-only changes: check referenced commands/paths against
README.mdandCONTRIBUTING.md.
- Core/CMake/Fortran/C changes: run relevant
- Prefer established workflows:
- Configure/build with
cmake --preset devandcmake --build build-devwhen appropriate. - Use focused tests first, then broader test runs when numerical behavior may be affected.
- Configure/build with