[Python/Thermo] Add setter for PureFluid.X in the two-phase region
This commit is contained in:
parent
c7e79e64b4
commit
eafcc1d991
2 changed files with 26 additions and 1 deletions
|
|
@ -26,6 +26,22 @@ class TestPureFluid(utilities.CanteraTest):
|
|||
self.assertNear(self.water.T, 500)
|
||||
self.assertNear(self.water.X, 0.8)
|
||||
|
||||
def test_set_X(self):
|
||||
self.water.TX = 500, 0.0
|
||||
p = self.water.P
|
||||
self.water.X = 0.8
|
||||
self.assertNear(self.water.P, p)
|
||||
self.assertNear(self.water.T, 500)
|
||||
self.assertNear(self.water.X, 0.8)
|
||||
|
||||
self.water.TP = 650, 101325
|
||||
with self.assertRaises(Exception):
|
||||
self.water.X = 0.1
|
||||
|
||||
self.water.TP = 300, 101325
|
||||
with self.assertRaises(Exception):
|
||||
self.water.X = 0.3
|
||||
|
||||
def test_set_minmax(self):
|
||||
self.water.TP = self.water.min_temp, 101325
|
||||
self.assertNear(self.water.T, self.water.min_temp)
|
||||
|
|
|
|||
|
|
@ -1170,9 +1170,18 @@ cdef class PureFluid(ThermoPhase):
|
|||
or a fluid beyond its critical point.
|
||||
"""
|
||||
property X:
|
||||
"""Vapor fraction (quality)."""
|
||||
"""
|
||||
Get/Set vapor fraction (quality). Can be set only when in the two-phase
|
||||
region.
|
||||
"""
|
||||
def __get__(self):
|
||||
return self.thermo.vaporFraction()
|
||||
def __set__(self, X):
|
||||
if (self.P >= self.critical_pressure or
|
||||
abs(self.P-self.P_sat)/self.P > 1e-4):
|
||||
raise ValueError('Cannot set vapor quality outside the'
|
||||
'two-phase region')
|
||||
self.thermo.setState_Psat(self.P, X)
|
||||
|
||||
property TX:
|
||||
"""Get/Set the temperature and vapor fraction of a two-phase state."""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue