[Python] Added access to equilibrium solvers for Solution and Mixture
This commit is contained in:
parent
bcbdd25101
commit
0fd5ab0127
3 changed files with 22 additions and 2 deletions
|
|
@ -182,6 +182,12 @@ cdef extern from "cantera/equil/MultiPhase.h" namespace "Cantera":
|
||||||
void setPressure(double)
|
void setPressure(double)
|
||||||
double pressure()
|
double pressure()
|
||||||
|
|
||||||
|
cdef extern from "cantera/equil/equil.h" namespace "Cantera":
|
||||||
|
int equilibrate(CxxThermoPhase&, char*, int, double, int, int, int) except +
|
||||||
|
|
||||||
|
cdef extern from "cantera/equil/vcs_MultiPhaseEquil.h" namespace "Cantera":
|
||||||
|
int vcs_equilibrate(CxxMultiPhase&, char*, int, int, int, double, int, int, int)
|
||||||
|
|
||||||
cdef extern from "cantera/numerics/Func1.h":
|
cdef extern from "cantera/numerics/Func1.h":
|
||||||
cdef cppclass CxxFunc1 "Cantera::Func1":
|
cdef cppclass CxxFunc1 "Cantera::Func1":
|
||||||
CxxFunc1()
|
CxxFunc1()
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ cdef class Mixture:
|
||||||
|
|
||||||
self.mix.init()
|
self.mix.init()
|
||||||
if self._phases:
|
if self._phases:
|
||||||
self.pressure = self._phases[0].pressure
|
self.pressure = self._phases[0].P
|
||||||
self.temperature = self._phases[0].temperature
|
self.temperature = self._phases[0].T
|
||||||
|
|
||||||
def __dealloc__(self):
|
def __dealloc__(self):
|
||||||
del self.mix
|
del self.mix
|
||||||
|
|
@ -19,6 +19,14 @@ cdef class Mixture:
|
||||||
def phase(self, n):
|
def phase(self, n):
|
||||||
return self._phases[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:
|
property nSpecies:
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return self.mix.nSpecies()
|
return self.mix.nSpecies()
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,12 @@ cdef class ThermoPhase(_SolutionBase):
|
||||||
else:
|
else:
|
||||||
return 1.0
|
return 1.0
|
||||||
|
|
||||||
|
def equilibrate(self, XY, int solver=-1, double rtol=1e-9,
|
||||||
|
int maxsteps=1000, int maxiter=100, int loglevel=0):
|
||||||
|
XY = XY.upper()
|
||||||
|
equilibrate(deref(self.thermo), stringify(XY).c_str(),
|
||||||
|
solver, rtol, maxsteps, maxiter, loglevel)
|
||||||
|
|
||||||
####### Composition, species, and elements ########
|
####### Composition, species, and elements ########
|
||||||
|
|
||||||
property nElements:
|
property nElements:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue