Fix NASA Polynomial Tests and CConfig Integration by guptapratykshh · Pull Request #2705 · su2code/SU2
Proposed Changes
This PR implements the NASA 7-coefficient polynomial model for calculating specific heat capacity (Cp) and enthalpy in incompressible ideal gas flows. This is a standard format in thermochemistry that allows for temperature-dependent properties with high accuracy across two temperature ranges.
Added:
- New Fluid Model: Added CIncIdealGasNASA class implementing the standard NASA polynomial equations for Cp, H, and S.
- Robust Inversion: Implemented a Newton-Raphson solver to accurately recover Temperature from Enthalpy (T(h)) with machine precision.
- Config Integration: Updated CConfig to parse NASA coefficients (
NASA_POLYCOEFFS_LOW,NASA_POLYCOEFFS_HIGH) and temperature ranges (NASA_TEMP_LOW, etc.). - Comprehensive Testing: Added a dedicated unit test suite (
UnitTests/.../CIncIdealGasNASA_tests.cpp) verifying mathematical accuracy, smooth range transitions, and thermodynamic consistency.
Related Work
Resolves #2634 ("Cp should use NASA polynomials").
PR Checklist
- I am submitting my contribution to the develop branch.
- My contribution generates no new compiler warnings.
- My contribution is commented and consistent with SU2 style.
- I used the pre-commit hook to prevent dirty commits (User to verify).
- I have added a test case that demonstrates my contribution.
- I have updated appropriate documentation (Pending docs update).