From 77637ecf084a5d835f83a07b0a2b35625af5c385 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sun, 1 May 2016 16:31:23 -0600 Subject: [PATCH] Fix PT inputs along critical isobar and critical isotherm; closes #1034 --- .../Helmholtz/HelmholtzEOSMixtureBackend.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp b/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp index a0cce00999..f37a4fb177 100644 --- a/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp +++ b/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp @@ -1636,6 +1636,18 @@ void HelmholtzEOSMixtureBackend::T_phase_determination_pure_or_pseudopure(int ot else{ _phase = iphase_supercritical_gas; break; } + case iP: + { + if (std::abs(_p - _crit.p) < 10*DBL_EPSILON){ + _phase = iphase_critical_point; break; + } + else if (_p > _crit.p){ + _phase = iphase_supercritical_liquid; break; + } + else{ + _phase = iphase_supercritical_gas; break; + } + } default: throw ValueError(format("T=Tcrit; invalid input for other to T_phase_determination_pure_or_pseudopure")); }