Cantera
2.1.2
|
Class Reactor is a general-purpose class for stirred reactors. More...
#include <Reactor.h>
Public Member Functions | |
virtual int | type () const |
Return a constant indicating the type of this Reactor. More... | |
template<class G > | |
void | insert (G &contents) |
Insert something into the reactor. More... | |
void | setKineticsMgr (Kinetics &kin) |
void | disableChemistry () |
Disable changes in reactor composition due to chemical reactions. More... | |
void | enableChemistry () |
Enable changes in reactor composition due to chemical reactions. More... | |
void | setEnergy (int eflag=1) |
Set the energy equation on or off. More... | |
bool | energyEnabled () const |
Returns true if solution of the energy equation is enabled. More... | |
virtual size_t | neq () |
Number of equations (state variables) for this reactor. More... | |
virtual void | getInitialConditions (doublereal t0, size_t leny, doublereal *y) |
Called by ReactorNet to get the initial conditions. More... | |
virtual void | initialize (doublereal t0=0.0) |
Initialize the reactor. More... | |
virtual void | evalEqs (doublereal t, doublereal *y, doublereal *ydot, doublereal *params) |
virtual void | updateState (doublereal *y) |
Set the state of the reactor to correspond to the state vector y. More... | |
virtual size_t | nSensParams () |
Number of sensitivity parameters associated with this reactor (including walls) More... | |
virtual void | addSensitivityReaction (size_t rxn) |
Add a sensitivity parameter associated with the reaction number rxn (in the homogeneous phase). More... | |
std::vector< std::pair< void *, int > > | getSensitivityOrder () const |
Return a vector specifying the ordering of objects to use when determining sensitivity parameter indices. More... | |
virtual size_t | componentIndex (const std::string &nm) const |
Return the index in the solution vector for this reactor of the component named nm. More... | |
Public Member Functions inherited from ReactorBase | |
ReactorBase (const std::string &name="(none)") | |
std::string | name () const |
Return the name of this reactor. More... | |
void | setName (const std::string &name) |
Set the name of this reactor. More... | |
void | restoreState () |
Set the state of the Phase object associated with this reactor to the reactor's current state. More... | |
thermo_t & | contents () |
return a reference to the contents. More... | |
const thermo_t & | contents () const |
doublereal | residenceTime () |
Return the residence time (s) of the contents of this reactor, based on the outlet mass flow rates and the mass of the reactor contents. More... | |
int | error (const std::string &msg) const |
ReactorNet & | network () |
The ReactorNet that this reactor belongs to. More... | |
void | setNetwork (ReactorNet *net) |
Set the ReactorNet that this reactor belongs to. More... | |
void | setInitialVolume (doublereal vol) |
Set the initial reactor volume. More... | |
virtual void | setThermoMgr (thermo_t &thermo) |
Specify the mixture contained in the reactor. More... | |
void | addInlet (FlowDevice &inlet) |
Connect an inlet FlowDevice to this reactor. More... | |
void | addOutlet (FlowDevice &outlet) |
Connect an outlet FlowDevice to this reactor. More... | |
FlowDevice & | inlet (size_t n=0) |
Return a reference to the n-th inlet FlowDevice connected to this reactor. More... | |
FlowDevice & | outlet (size_t n=0) |
Return a reference to the n-th outlet FlowDevice connected to this reactor. More... | |
size_t | nInlets () |
Return the number of inlet FlowDevice objects connected to this reactor. More... | |
size_t | nOutlets () |
Return the number of outlet FlowDevice objects connected to this reactor. More... | |
size_t | nWalls () |
Return the number of Wall objects connected to this reactor. More... | |
void | addWall (Wall &w, int lr) |
Insert a Wall between this reactor and another reactor. More... | |
Wall & | wall (size_t n) |
Return a reference to the n-th Wall connected to this reactor. More... | |
virtual void | start () |
doublereal | volume () const |
Returns the current volume (m^3) of the reactor. More... | |
doublereal | density () const |
Returns the current density (kg/m^3) of the reactor's contents. More... | |
doublereal | temperature () const |
Returns the current temperature (K) of the reactor's contents. More... | |
doublereal | enthalpy_mass () const |
Returns the current enthalpy (J/kg) of the reactor's contents. More... | |
doublereal | intEnergy_mass () const |
Returns the current internal energy (J/kg) of the reactor's contents. More... | |
doublereal | pressure () const |
Returns the current pressure (Pa) of the reactor. More... | |
doublereal | mass () const |
Returns the mass (kg) of the reactor's contents. More... | |
const doublereal * | massFractions () const |
Return the vector of species mass fractions. More... | |
doublereal | massFraction (size_t k) const |
Return the mass fraction of the k-th species. More... | |
Protected Attributes | |
Kinetics * | m_kin |
Pointer to the homogeneous Kinetics object that handles the reactions. More... | |
doublereal | m_vdot |
Tolerance on the temperature. More... | |
doublereal | m_Q |
doublereal | m_mass |
total mass More... | |
vector_fp | m_work |
vector_fp | m_sdot |
vector_fp | m_wdot |
Species net molar production rates. More... | |
vector_fp | m_uk |
Species molar internal energies. More... | |
bool | m_chem |
bool | m_energy |
size_t | m_nv |
size_t | m_nsens |
std::vector< size_t > | m_pnum |
std::vector< size_t > | m_nsens_wall |
vector_fp | m_mult_save |
Protected Attributes inherited from ReactorBase | |
size_t | m_nsp |
Number of homogeneous species in the mixture. More... | |
thermo_t * | m_thermo |
doublereal | m_vol |
doublereal | m_vol0 |
bool | m_init |
size_t | m_nInlets |
size_t | m_nOutlets |
bool | m_open |
doublereal | m_enthalpy |
doublereal | m_intEnergy |
doublereal | m_pressure |
vector_fp | m_state |
std::vector< FlowDevice * > | m_inlet |
std::vector< FlowDevice * > | m_outlet |
std::vector< Wall * > | m_wall |
vector_int | m_lr |
size_t | m_nwalls |
std::string | m_name |
double | m_rho0 |
ReactorNet * | m_net |
The ReactorNet that this reactor is part of. More... | |
Class Reactor is a general-purpose class for stirred reactors.
The reactor may have an arbitrary number of inlets and outlets, each of which may be connected to a "flow device" such as a mass flow controller, a pressure regulator, etc. Additional reactors may be connected to the other end of the flow device, allowing construction of arbitrary reactor networks.
The reactor class integrates the same governing equations no matter what type of reactor is simulated. The differences among reactor types are completely specified by the attached flow devices and the time-dependent user-specified boundary conditions.
If an instance of class Reactor is used directly, it will simulate an adiabatic, constant volume reactor with gas-phase chemistry but no surface chemistry. Other reactor types may be simulated by deriving a class from Reactor. This method allows specifying the following in terms of the instantaneous reactor state:
|
inlinevirtual |
Return a constant indicating the type of this Reactor.
Reimplemented from ReactorBase.
Reimplemented in ConstPressureReactor, IdealGasConstPressureReactor, IdealGasReactor, and FlowReactor.
|
inline |
Insert something into the reactor.
The 'something' must belong to a class that is a subclass of both ThermoPhase and Kinetics.
Definition at line 54 of file Reactor.h.
References ReactorBase::setThermoMgr().
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Number of equations (state variables) for this reactor.
Definition at line 93 of file Reactor.h.
Referenced by ReactorNet::initialize().
|
virtual |
Called by ReactorNet to get the initial conditions.
[in] | t0 | Time at which initial conditions are determined |
[in] | leny | Length of y (unused) |
[out] | y | state vector representing the initial state of the reactor |
Reimplemented in IdealGasConstPressureReactor, ConstPressureReactor, IdealGasReactor, and FlowReactor.
Definition at line 29 of file Reactor.cpp.
References Phase::density(), Phase::getMassFractions(), ThermoPhase::intEnergy_mass(), Reactor::m_mass, ReactorBase::m_nsp, Phase::nSpecies(), and Phase::restoreState().
|
virtual |
Initialize the reactor.
Called automatically by ReactorNet::initialize.
Reimplemented from ReactorBase.
Reimplemented in IdealGasConstPressureReactor, ConstPressureReactor, IdealGasReactor, and FlowReactor.
Definition at line 64 of file Reactor.cpp.
References ThermoPhase::enthalpy_mass(), ThermoPhase::intEnergy_mass(), Reactor::m_kin, ReactorBase::m_nsp, Reactor::m_wdot, ThermoPhase::pressure(), Phase::restoreState(), and Kinetics::thermo().
|
virtual |
Evaluate the reactor governing equations. Called by ReactorNet::eval.
[in] | t | time. |
[in] | y | solution vector, length neq() |
[out] | ydot | rate of change of solution vector, length neq() |
[in] | params | sensitivity parameter vector, length ReactorNet::nparams() |
Reimplemented in IdealGasConstPressureReactor, IdealGasReactor, ConstPressureReactor, and FlowReactor.
Definition at line 179 of file Reactor.cpp.
References AssertFinite, DATA_PTR, ThermoPhase::enthalpy_mass(), Kinetics::getNetProductionRates(), Cantera::int2str(), Kinetics::kineticsSpeciesIndex(), Reactor::m_kin, Reactor::m_mass, ReactorBase::m_nsp, Reactor::m_vdot, Reactor::m_wdot, Phase::massFractions(), Phase::molecularWeights(), Kinetics::multiplier(), Phase::nSpecies(), ThermoPhase::pressure(), Phase::restoreState(), Kinetics::setMultiplier(), Phase::setTemperature(), SurfPhase::siteDensity(), Phase::size(), and Kinetics::surfacePhaseIndex().
|
virtual |
Set the state of the reactor to correspond to the state vector y.
Reimplemented in IdealGasConstPressureReactor, IdealGasReactor, ConstPressureReactor, and FlowReactor.
Definition at line 117 of file Reactor.cpp.
References AssertFinite, ThermoPhase::cv_mass(), ThermoPhase::enthalpy_mass(), Cantera::fp2str(), Cantera::int2str(), ThermoPhase::intEnergy_mass(), Reactor::m_mass, ReactorBase::m_nsp, Phase::nSpecies(), ThermoPhase::pressure(), Phase::saveState(), Phase::setDensity(), Phase::setMassFractions_NoNorm(), Phase::setState_TR(), and ReactorBase::temperature().
|
virtual |
Number of sensitivity parameters associated with this reactor (including walls)
Definition at line 102 of file Reactor.cpp.
References Cantera::npos.
Referenced by FlowReactor::evalEqs(), and ReactorNet::initialize().
|
virtual |
Add a sensitivity parameter associated with the reaction number rxn (in the homogeneous phase).
Definition at line 326 of file Reactor.cpp.
References Cantera::int2str(), Reactor::m_kin, ReactorBase::name(), ReactorBase::network(), Kinetics::nReactions(), Kinetics::reactionString(), and ReactorNet::registerSensitivityReaction().
std::vector< std::pair< void *, int > > getSensitivityOrder | ( | ) | const |
Return a vector specifying the ordering of objects to use when determining sensitivity parameter indices.
Used to construct ReactorNet::m_sensOrder.
Definition at line 338 of file Reactor.cpp.
Referenced by ReactorNet::initialize().
|
virtual |
Return the index in the solution vector for this reactor of the component named nm.
Possible values for nm are "m", "V", "T", the name of a homogeneous phase species, or the name of a surface species.
Reimplemented in FlowReactor, IdealGasConstPressureReactor, ConstPressureReactor, and IdealGasReactor.
Definition at line 350 of file Reactor.cpp.
References ReactorBase::m_nsp, Cantera::npos, Phase::nSpecies(), and Phase::speciesIndex().
|
protected |
Pointer to the homogeneous Kinetics object that handles the reactions.
Definition at line 149 of file Reactor.h.
Referenced by Reactor::addSensitivityReaction(), FlowReactor::evalEqs(), ConstPressureReactor::evalEqs(), Reactor::evalEqs(), ConstPressureReactor::initialize(), and Reactor::initialize().
|
protected |
Tolerance on the temperature.
Definition at line 152 of file Reactor.h.
Referenced by Reactor::evalEqs().
|
protected |
total mass
Definition at line 153 of file Reactor.h.
Referenced by ConstPressureReactor::evalEqs(), Reactor::evalEqs(), Reactor::getInitialConditions(), ConstPressureReactor::updateState(), and Reactor::updateState().
|
protected |
Species net molar production rates.
Definition at line 156 of file Reactor.h.
Referenced by ConstPressureReactor::evalEqs(), Reactor::evalEqs(), ConstPressureReactor::initialize(), and Reactor::initialize().