Added PureFluid to the new Python module

This commit is contained in:
Ray Speth 2012-09-06 19:57:20 +00:00
parent 2bd25f52b4
commit 622eed7b75
6 changed files with 84 additions and 0 deletions

View file

@ -1,4 +1,5 @@
from ._cantera import *
from .liquidvapor import *
import os as _os
addDirectory(_os.path.join(_os.path.dirname(__file__), 'data'))

View file

@ -34,6 +34,19 @@ cdef extern from "cantera/thermo/ThermoPhase.h" namespace "Cantera":
int nSpecies()
XML_Node& xml()
# PureFluid properties
double critTemperature() except +
double critPressure() except +
double critDensity() except +
double satTemperature(double P) except +
double satPressure(double T) except +
double vaporFraction() except +
void setState_Tsat(double T, double x) except +
void setState_Psat(double P, double x) except +
cdef extern from "cantera/thermo/IdealGasPhase.h":
cdef cppclass CxxIdealGasPhase "Cantera::IdealGasPhase"

View file

@ -0,0 +1,25 @@
from . import PureFluid
def Water():
return PureFluid('liquidvapor.xml','water')
def Nitrogen():
return PureFluid('liquidvapor.xml','nitrogen')
def Methane():
return PureFluid('liquidvapor.xml','methane')
def Hydrogen():
return PureFluid('liquidvapor.xml','hydrogen')
def Oxygen():
return PureFluid('liquidvapor.xml','oxygen')
def Hfc134a():
return PureFluid('liquidvapor.xml','hfc134a')
def CarbonDioxide():
return PureFluid('liquidvapor.xml','carbondioxide')
def Heptane():
return PureFluid('liquidvapor.xml','heptane')

View file

@ -1,4 +1,5 @@
from .test_thermo import *
from .test_purefluid import *
from .test_kinetics import *
from .test_transport import *
from .test_mixture import *

View file

@ -0,0 +1,20 @@
import cantera as ct
from . import utilities
class TestPureFluid(utilities.CanteraTest):
def setUp(self):
self.water = ct.Water()
def test_critProperties(self):
self.assertNear(self.water.critPressure, 22.089e6)
self.assertNear(self.water.critTemperature, 647.286)
self.assertNear(self.water.critDensity, 317.0)
def test_setState(self):
self.water._setState_Psat(101325, 0.5)
self.assertNear(self.water.pressure, 101325)
self.assertNear(self.water.vaporFraction, 0.5)
self.water._setState_Tsat(500, 0.8)
self.assertNear(self.water.temperature, 500)
self.assertNear(self.water.vaporFraction, 0.8)

View file

@ -36,3 +36,27 @@ cdef class InterfacePhase(ThermoPhase):
return self.surf.siteDensity()
def __set__(self, double value):
self.surf.setSiteDensity(value)
cdef class PureFluid(ThermoPhase):
property critTemperature:
def __get__(self):
return self.thermo.critTemperature()
property critPressure:
def __get__(self):
return self.thermo.critPressure()
property critDensity:
def __get__(self):
return self.thermo.critDensity()
property vaporFraction:
def __get__(self):
return self.thermo.vaporFraction()
def _setState_Psat(self, double P, double x):
self.thermo.setState_Psat(P, x)
def _setState_Tsat(self, double T, double x):
self.thermo.setState_Tsat(T, x)