mirror of
https://github.com/CoolProp/CoolProp.git
synced 2026-04-23 03:00:17 -04:00
* Add refrigerant mixture models (Bell-JPCRD-2022/2023) and update R-1234yf EOS
Pure fluid:
- Replace Richter-JCED-2011 with Lemmon-Akasaka 2022 (Int. J. Thermophys. 43:119)
as EOS[0] for R-1234yf; retain Richter as EOS[1]
- Ttriple updated from 220.0 K to 121.6 K; pc=3384400 Pa; rhoc=4180 mol/m3
- All 16 Table 7 check values pass to 5+ significant figures
- ASHRAE enthalpy reference state correct: h_L(0C)=200 kJ/kg
- Saturation consistent from 150 K to 360 K (L/V pressure equality)
- SUPERANCILLARY omitted pending fastchebpure fix; CoolProp uses the
Table 2 ancillary equations (pS, rhoL, rhoV) as initial guesses
Mixture departure functions (8 new, type=Exponential):
- Bell-JPCRD-2022: R1234yf-R134a, R1234yf-R1234ze(E), R134a-R1234ze(E)
- Bell-JPCRD-2023: R32-R1234yf, R32-R1234ze(E), R1234yf-R152a,
R125-R1234yf, R1234ze(E)-R227ea
Binary pair parameters (5 updated, 3 new):
- Updated R1234yf/R134a, R32/R1234yf, R32/R1234ze(E),
R125/R1234yf, R1234yf/R152a (replacing Akasaka-FPE-2013
and Bell-JCED-2016 interim models with final fits)
- Added R1234yf/R1234ze(E), R134a/R1234ze(E), R1234ze(E)/R227ea
BibTeX entries added: Bell-JPCRD-2022, Bell-JPCRD-2023, Lemmon-IJT-2022
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add C++ check value tests for Lemmon-IJT-2022 and Bell-JPCRD-2022/2023
- Table 7 from Lemmon & Akasaka (2022): 6 state points for R1234yf
covering ideal-gas, gas, compressed liquid, and near-critical
- Fixed-point constants: Tc, pc, rhoc, Ttriple
- Table XI from Bell (2022): alphar check values for three R1234yf-based
binary pairs (R1234yf/R1234zeE, R1234yf/R134a, R134a/R1234zeE)
- Table XIII from Bell (2023): alphar check values for five mixture pairs
(R32/R1234yf, R32/R1234zeE, R125/R1234yf, R1234yf/R152a, R1234zeE/R227ea)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add mixture departure functions and binary pair parameters
Bell-JPCRD-2022 (DOI 10.1063/5.0083545):
- 3 new departure functions: R1234yf-R134a, R1234yf-R1234ze(E), R134a-R1234ze(E)
- 3 new/updated binary pairs
Bell-JPCRD-2023 (DOI 10.1063/5.0124188):
- 5 new departure functions: R32-R1234yf, R32-R1234ze(E), R1234yf-R152a,
R125-R1234yf, R1234ze(E)-R227ea
- 5 new/updated binary pairs (supersedes Bell-JCED-2016 interim models)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: add superancillary equations to R1234yf EOS
Builds Chebyshev superancillary for R1234yf covering the full
saturation curve from Ttriple (121.6 K) to near-critical (66
intervals). Also adds missing 'description' fields to the ANCILLARIES
block (required by the teqp ancillary loader).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(mixtures): correct betaT ordering for R1234zeE pairs; add inverted-order tests
The Bell-JPCRD-2022 JSON entries for R1234yf+R1234zeE and R134a+R1234zeE
had CAS1=R1234zeE (alphabetically first), causing no swap on load. When
the mixture was constructed with the other component first CoolProp's
MixtureParameters swap logic inverted betaT a second time, yielding the
wrong reducing temperature.
Fix: swap CAS1/CAS2 so that CAS1 is alphabetically later for both pairs,
triggering a swap-on-load that pre-inverts betaT at full double precision.
The swap-on-use then recovers the exact paper value with no rounding error.
The original paper betaT/betaV values are restored in the JSON.
Also enable DmolarT_INPUTS on mixture backends in DHSU_T_flash so the
alphar check-value tests can call update(DmolarT_INPUTS, ...) on a mixture
AbstractState without throwing.
Test updates:
- Bell-JPCRD-2022 Table XI check values for R1234yf-containing pairs
updated to the final Lemmon-IJT-2022 EOS (pre-pub EOS used in paper
differs by ~0.4%); tolerance tightened from 1e-6 to 1e-10 throughout.
- Three new inverted-component-order sections check the same tabulated
alphar values as the forward-order tests, verifying that the GERG
reducing function symmetry (swap components + reciprocal beta = same
result) is preserved by the CAS-ordering fix.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(tests): clarify that R1234yf EOS change drives the Table XI value updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore: bump fastchebpure pin to 2026.04.18 for R1234yf superancillary data
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(tests): specify phase in mixture DmolarT tests; revert FlashRoutines workaround
Mixture tests that call update(DmolarT_INPUTS, ...) must call specify_phase()
first so DHSU_T_flash uses the imposed-phase path rather than hitting the
NotImplementedError. Reverts the iDmolar special-case added to the mixture
else-branch of DHSU_T_flash.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>