Standards for EOS return values
- Dominant language
- Fortran
- Stars
- 249
- Forks
- 82
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 3
Description
I don't know precisely what this will look like, but I'd like to propose that we figure out some standards for what the EOS is allowed to return, and say that return values that violate those conditions must raise `ierr /= 0`. This would be the job of individual EOS's to enforce, not a blend-level enforcement.
A few standards that come to mind:
1. No EOS return quantity should be NaN.
2. No negative pressures.
3. No negative sound speeds.
4. No negative adiabatic indices.
Is there anything else we want to check? We can also make a module-level test that runs a few grids of (rho, T) at different compositions as an easy way of catching these...
Contributor guide
Research direction
Start by reviewing the individual EOS implementations and how they report return values through ierr. Define the allowed standards for quantities such as NaN values, pressures, sound speeds, and adiabatic indices, then consider a module-level test over rho, T, and composition grids to verify that violations are reported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fortran
- Domain
- hpc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100