cantera/interfaces/cython/cantera/_cantera.pxd

469 lines
16 KiB
Cython

from libcpp.vector cimport vector
from libcpp.string cimport string
from libcpp cimport bool as cbool
from cpython cimport bool as pybool
import numpy as np
cimport numpy as np
cdef extern from "cantera/base/xml.h" namespace "Cantera":
cdef cppclass XML_Node:
XML_Node* findByName(string)
XML_Node* findID(string)
int nChildren()
cdef extern from "cantera/base/ctml.h" namespace "ctml":
XML_Node getCtmlTree(string) except +
cdef extern from "cantera/base/global.h" namespace "Cantera":
cdef void CxxAddDirectory "Cantera::addDirectory" (string)
cdef extern from "cantera/thermo/mix_defs.h":
cdef int thermo_type_ideal_gas "Cantera::cIdealGas"
cdef int thermo_type_surf "Cantera::cSurf"
cdef int thermo_type_edge "Cantera::cEdge"
cdef int kinetics_type_gas "Cantera::cGasKinetics"
cdef int kinetics_type_interface "Cantera::cInterfaceKinetics"
cdef int kinetics_type_edge "Cantera::cEdgeKinetics"
cdef extern from "funcWrapper.h":
ctypedef double (*callback_wrapper)(double, void*, void**)
cdef int translate_exception()
cdef cppclass CxxFunc1 "Func1Py":
CxxFunc1(callback_wrapper, void*)
double eval(double) except +translate_exception
cdef extern from "cantera/thermo/ThermoPhase.h" namespace "Cantera":
cdef cppclass CxxThermoPhase "Cantera::ThermoPhase":
CxxThermoPhase()
# miscellaneous
int eosType()
string report(cbool) except +
string name()
void setName(string)
double minTemp() except +
double maxTemp() except +
double refPressure() except +
cbool getElementPotentials(double*) except +
# basic thermodynamic properties
double temperature() except +
double pressure() except +
double density() except +
double molarDensity() except +
double molarVolume() except +
double isothermalCompressibility() except +
double thermalExpansionCoeff() except +
double electricPotential() except +
void setElectricPotential(double) except +
# element properties
size_t nElements()
size_t elementIndex(string)
string elementName(size_t) except +
# species properties
size_t nSpecies()
size_t speciesIndex(string)
string speciesName(size_t) except +
double nAtoms(size_t, size_t) except +
void getAtoms(size_t, double*) except +
double molecularWeight(size_t) except +
double meanMolecularWeight()
# composition
void setMassFractionsByName(string) except +
double massFraction(size_t) except +
double massFraction(string) except +
void setMoleFractionsByName(string) except +
void getMoleFractions(double*) except +
double moleFraction(size_t) except +
double moleFraction(string) except +
double concentration(size_t) except +
# state setters
void setState_TR(double, double) except +
void setState_TP(double, double) except +
void setState_HP(double, double) except +
void setState_UV(double, double) except +
void setState_SP(double, double) except +
# molar thermodynamic properties:
double enthalpy_mole() except +
double intEnergy_mole() except +
double entropy_mole() except +
double gibbs_mole() except +
double cp_mole() except +
double cv_mole() except +
# specific (mass) properties:
double enthalpy_mass() except +
double intEnergy_mass() except +
double entropy_mass() except +
double gibbs_mass() except +
double cp_mass() except +
double cv_mass() except +
# 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"
cdef extern from "cantera/thermo/SurfPhase.h":
cdef cppclass CxxSurfPhase "Cantera::SurfPhase":
CxxSurfPhase()
double siteDensity()
void setSiteDensity(double)
void setCoverages(double*) except +
void getCoverages(double*) except +
cdef extern from "cantera/kinetics/Kinetics.h" namespace "Cantera":
cdef cppclass CxxKinetics "Cantera::Kinetics":
CxxKinetics()
int type()
int nTotalSpecies()
int nReactions()
int nPhases()
int reactionPhaseIndex()
int kineticsSpeciesIndex(int, int)
CxxThermoPhase& thermo(int)
cbool isReversible(int) except +
int reactionType(int) except +
string reactionString(int) except +
double reactantStoichCoeff(int, int) except +
double productStoichCoeff(int, int) except +
double multiplier(int)
void setMultiplier(int, double)
cdef extern from "cantera/kinetics/InterfaceKinetics.h":
cdef cppclass CxxInterfaceKinetics "Cantera::InterfaceKinetics":
void advanceCoverages(double) except +
cdef extern from "cantera/transport/TransportFactory.h":
cdef string transportModelName "Cantera::TransportFactory::modelName" (int)
cdef extern from "cantera/transport/TransportBase.h" namespace "Cantera":
cdef cppclass CxxTransport "Cantera::Transport":
CxxTransport(CxxThermoPhase*)
int model()
double viscosity() except +
double thermalConductivity() except +
cdef extern from "cantera/transport/DustyGasTransport.h" namespace "Cantera":
cdef cppclass CxxDustyGasTransport "Cantera::DustyGasTransport":
void setPorosity(double) except +
void setTortuosity(double) except +
void setMeanPoreRadius(double) except +
void setMeanParticleDiameter(double) except +
void setPermeability(double) except +
cdef extern from "cantera/equil/MultiPhase.h" namespace "Cantera":
cdef cppclass CxxMultiPhase "Cantera::MultiPhase":
CxxMultiPhase()
void addPhase(CxxThermoPhase*, double) except +
void init() except +
double nSpecies()
void setTemperature(double)
double temperature()
void setPressure(double)
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) except +
cdef extern from "cantera/zeroD/ReactorBase.h" namespace "Cantera":
cdef cppclass CxxWall "Cantera::Wall"
cdef cppclass CxxFlowDevice "Cantera::FlowDevice"
cdef cppclass CxxReactorBase "Cantera::ReactorBase":
CxxReactorBase()
void setThermoMgr(CxxThermoPhase&) except +
void restoreState() except +
double volume()
string name()
void setName(string)
void setInitialVolume(double)
cdef extern from "cantera/zeroD/Reactor.h":
cdef cppclass CxxReactor "Cantera::Reactor" (CxxReactorBase):
CxxReactor()
void setKineticsMgr(CxxKinetics&)
void setEnergy(int)
cbool energyEnabled()
void addSensitivityReaction(size_t) except +
string sensParamID(int)
size_t nSensParams()
cdef extern from "cantera/zeroD/FlowReactor.h":
cdef cppclass CxxFlowReactor "Cantera::FlowReactor" (CxxReactor):
CxxFlowReactor()
void setMassFlowRate(double) except +
double speed()
double distance()
cdef extern from "cantera/zeroD/Wall.h":
cdef cppclass CxxWall "Cantera::Wall":
CxxWall()
cbool install(CxxReactorBase&, CxxReactorBase&)
void setExpansionRateCoeff(double)
double getExpansionRateCoeff()
double area()
void setArea(double)
double getArea()
void setHeatTransferCoeff(double)
double getHeatTransferCoeff()
void setEmissivity(double) except +
double getEmissivity()
void setVelocity(CxxFunc1*)
void setHeatFlux(CxxFunc1*)
void setKinetics(CxxKinetics*, CxxKinetics*)
void setCoverages(int, double*)
void syncCoverages(int)
double vdot(double)
double Q(double)
void addSensitivityReaction(int, size_t) except +
string sensitivityParamID(int, size_t)
size_t nSensParams(int)
cdef extern from "cantera/zeroD/flowControllers.h":
cdef cppclass CxxFlowDevice "Cantera::FlowDevice":
CxxFlowDevice()
double massFlowRate(double)
cbool install(CxxReactorBase&, CxxReactorBase&)
void setFunction(CxxFunc1*)
void setParameters(int, double*)
cdef cppclass CxxMassFlowController "Cantera::MassFlowController" (CxxFlowDevice):
CxxMassFlowController()
cdef cppclass CxxValve "Cantera::Valve" (CxxFlowDevice):
CxxValve()
cdef cppclass CxxPressureController "Cantera::PressureController" (CxxFlowDevice):
CxxPressureController()
void setMaster(CxxFlowDevice*)
cdef extern from "cantera/zeroD/ReactorNet.h":
cdef cppclass CxxReactorNet "Cantera::ReactorNet":
CxxReactorNet()
void addReactor(CxxReactorBase*)
void advance(double) except +
double step(double) except +
double time()
void setInitialTime(double)
void setTolerances(double, double)
double rtol()
double atol()
void setMaxTimeStep(double)
cbool verbose()
void setVerbose(cbool)
size_t neq()
void setSensitivityTolerances(double, double)
double rtolSensitivity()
double atolSensitivity()
double sensitivity(size_t, size_t) except +
double sensitivity(string&, size_t, int) except +
size_t nparams()
cdef extern from "cantera/thermo/ThermoFactory.h" namespace "Cantera":
cdef CxxThermoPhase* newPhase(string, string) except +
cdef CxxThermoPhase* newPhase(XML_Node&) except +
cdef extern from "cantera/kinetics/KineticsFactory.h" namespace "Cantera":
cdef CxxKinetics* newKineticsMgr(XML_Node&, vector[CxxThermoPhase*]) except +
cdef extern from "cantera/transport/TransportFactory.h" namespace "Cantera":
cdef CxxTransport* newDefaultTransportMgr(CxxThermoPhase*) except +
cdef CxxTransport* newTransportMgr(string, CxxThermoPhase*) except +
cdef extern from "cantera/zeroD/ReactorFactory.h" namespace "Cantera":
cdef CxxReactorBase* newReactor(string) except +
cdef extern from "cantera/oneD/Domain1D.h":
cdef cppclass CxxDomain1D "Cantera::Domain1D":
int nPoints()
void setupGrid(size_t, double)
cdef extern from "cantera/oneD/Inlet1D.h":
cdef cppclass CxxBdry1D "Cantera::Bdry1D":
void setTemperature(double)
cdef cppclass CxxInlet1D "Cantera::Inlet1D":
CxxInlet1D()
cdef cppclass CxxOutlet1D "Cantera::Outlet1D":
CxxOutlet1D()
cdef cppclass CxxOutletRes1D "Cantera::OutletRes1D":
CxxOutletRes1D()
cdef cppclass CxxSymm1D "Cantera::Symm1D":
CxxSymm1D()
cdef cppclass CxxSurf1D "Cantera::Surf1D":
CxxSurf1D()
cdef cppclass CxxReactingSurf1D "Cantera::ReactingSurf1D":
CxxRreactingSurf1D()
void setKineticsMgr(CxxInterfaceKinetics*)
cdef extern from "cantera/oneD/StFlow.h":
cdef cppclass CxxStFlow "Cantera::StFlow":
CxxStFlow(CxxIdealGasPhase*, int, int)
void setKinetics(CxxKinetics&)
cdef cppclass CxxFreeFlame "Cantera::FreeFlame":
CxxFreeFlame(CxxIdealGasPhase*, int, int)
cdef cppclass CxxAxiStagnFlow "Cantera::AxiStagnFlow":
CxxAxiStagnFlow(CxxIdealGasPhase*, int, int)
cdef extern from "cantera/oneD/Sim1D.h":
cdef cppclass CxxSim1D "Cantera::Sim1D":
CxxSim1D(vector[CxxDomain1D*]&)
cdef extern from "wrappers.h":
# ThermoPhase composition
cdef void thermo_getMassFractions(CxxThermoPhase*, double*) except +
cdef void thermo_setMassFractions(CxxThermoPhase*, double*) except +
cdef void thermo_getMoleFractions(CxxThermoPhase*, double*) except +
cdef void thermo_setMoleFractions(CxxThermoPhase*, double*) except +
cdef void thermo_getConcentrations(CxxThermoPhase*, double*) except +
cdef void thermo_setConcentrations(CxxThermoPhase*, double*) except +
# ThermoPhase partial molar properties
cdef void thermo_getChemPotentials(CxxThermoPhase*, double*) except +
cdef void thermo_getElectrochemPotentials(CxxThermoPhase*, double*) except +
cdef void thermo_getPartialMolarEnthalpies(CxxThermoPhase*, double*) except +
cdef void thermo_getPartialMolarEntropies(CxxThermoPhase*, double*) except +
cdef void thermo_getPartialMolarIntEnergies(CxxThermoPhase*, double*) except +
cdef void thermo_getPartialMolarCp(CxxThermoPhase*, double*) except +
cdef void thermo_getPartialMolarVolumes(CxxThermoPhase*, double*) except +
# ThermoPhase partial non-dimensional properties
void thermo_getEnthalpy_RT(CxxThermoPhase*, double*) except +
void thermo_getEntropy_R(CxxThermoPhase*, double*) except +
void thermo_getIntEnergy_RT(CxxThermoPhase*, double*) except +
void thermo_getGibbs_RT(CxxThermoPhase*, double*) except +
void thermo_getCp_R(CxxThermoPhase*, double*) except +
# other ThermoPhase methods
cdef void thermo_getMolecularWeights(CxxThermoPhase*, double*) except +
# Kinetics per-reaction properties
cdef void kin_getFwdRatesOfProgress(CxxKinetics*, double*) except +
cdef void kin_getRevRatesOfProgress(CxxKinetics*, double*) except +
cdef void kin_getNetRatesOfProgress(CxxKinetics*, double*) except +
cdef void kin_getEquilibriumConstants(CxxKinetics*, double*) except +
cdef void kin_getActivationEnergies(CxxKinetics*, double*) except +
cdef void kin_getFwdRateConstants(CxxKinetics*, double*) except +
cdef void kin_getRevRateConstants(CxxKinetics*, double*) except +
cdef void kin_getDeltaEnthalpy(CxxKinetics*, double*) except +
cdef void kin_getDeltaGibbs(CxxKinetics*, double*) except +
cdef void kin_getDeltaEntropy(CxxKinetics*, double*) except +
cdef void kin_getDeltaSSEnthalpy(CxxKinetics*, double*) except +
cdef void kin_getDeltaSSGibbs(CxxKinetics*, double*) except +
cdef void kin_getDeltaSSEntropy(CxxKinetics*, double*) except +
# Kinetics per-species properties
cdef void kin_getCreationRates(CxxKinetics*, double*) except +
cdef void kin_getDestructionRates(CxxKinetics*, double*) except +
cdef void kin_getNetProductionRates(CxxKinetics*, double*) except +
# Transport properties
cdef void tran_getMixDiffCoeffs(CxxTransport*, double*) except +
cdef void tran_getMixDiffCoeffsMass(CxxTransport*, double*) except +
cdef void tran_getMixDiffCoeffsMole(CxxTransport*, double*) except +
cdef void tran_getThermalDiffCoeffs(CxxTransport*, double*) except +
cdef void tran_getMultiDiffCoeffs(CxxTransport*, size_t, double*) except +
cdef void tran_getBinaryDiffCoeffs(CxxTransport*, size_t, double*) except +
cdef string stringify(x)
cdef class _SolutionBase:
cdef CxxThermoPhase* thermo
cdef CxxKinetics* kinetics
cdef CxxTransport* transport
cdef int thermoBasis
cdef np.ndarray _selectedSpecies
cdef object parent
cdef class Mixture:
cdef CxxMultiPhase* mix
cdef list _phases
cdef class Kinetics(_SolutionBase):
pass
cdef class Func1:
cdef CxxFunc1* func
cdef object callable
cdef object exception
cdef class ReactorBase:
cdef CxxReactorBase* rbase
cdef object _thermo
cdef list _inlets
cdef list _outlets
cdef list _walls
cdef class Reactor(ReactorBase):
cdef CxxReactor* reactor
cdef object _kinetics
cdef class WallSurface:
cdef CxxWall* cxxwall
cdef object wall
cdef int side
cdef Kinetics _kinetics
cdef class Wall:
cdef CxxWall* wall
cdef WallSurface leftSurface
cdef WallSurface rightSurface
cdef object _velocityFunc
cdef object _heatFluxFunc
cdef str name
cdef class FlowDevice:
cdef CxxFlowDevice* dev
cdef Func1 _rateFunc
cdef str name