cantera/interfaces/cython/cantera/mixture.pyx

44 lines
1.3 KiB
Cython

cdef class Mixture:
def __cinit__(self, phases):
self.mix = new CxxMultiPhase()
self._phases = []
cdef _SolutionBase phase
for phase,moles in phases:
self.mix.addPhase(phase.thermo, moles)
self._phases.append(phase)
self.mix.init()
if self._phases:
self.pressure = self._phases[0].P
self.temperature = self._phases[0].T
def __dealloc__(self):
del self.mix
def phase(self, n):
return self._phases[n]
def equilibrate(self, XY, solver=1, int estimateEquil=0, double err=1e-9,
int maxsteps=1000,
int maxiter=200, int loglevel=0, printlevel=0):
XY = XY.upper()
vcs_equilibrate(deref(self.mix), stringify(XY).c_str(),
estimateEquil, printlevel, solver, err,
maxsteps, maxiter, loglevel)
property nSpecies:
def __get__(self):
return self.mix.nSpecies()
property temperature:
def __get__(self):
return self.mix.temperature()
def __set__(self, T):
self.mix.setTemperature(T)
property pressure:
def __get__(self):
return self.mix.pressure()
def __set__(self, P):
self.mix.setPressure(P)