Throw for PT being a two-phase state (or close to)

Signed-off-by: Ian Bell <ian.h.bell@gmail.com>
This commit is contained in:
Ian Bell
2014-12-02 10:44:00 -05:00
parent bd28f0829e
commit 8407dc172f

View File

@@ -1368,14 +1368,14 @@ void HelmholtzEOSMixtureBackend::T_phase_determination_pure_or_pseudopure(int ot
if (other == iP)
{
if (value > HEOS.SatL->p()*(100*DBL_EPSILON + 1)){
if (value > HEOS.SatL->p()*(1e-6 + 1)){
this->_phase = iphase_liquid; _Q = -1000; return;
}
else if (value < HEOS.SatV->p()*(1 - 100*DBL_EPSILON)){
else if (value < HEOS.SatV->p()*(1 - 1e-6)){
this->_phase = iphase_gas; _Q = 1000; return;
}
else{
throw ValueError(format("subcrit T, funny p"));
throw ValueError(format("Saturation pressure [%g Pa] corresponding to T [%g K] is within 1e-4 %% of given p [%Lg Pa]", HEOS.SatL->p(), _T, value));
}
}