Cantera
3.1.0a1
|
Class IdealGasReactor is a class for stirred reactors that is specifically optimized for ideal gases. More...
#include <IdealGasReactor.h>
Class IdealGasReactor is a class for stirred reactors that is specifically optimized for ideal gases.
In this formulation, temperature replaces the total internal energy as a state variable.
Definition at line 20 of file IdealGasReactor.h.
Public Member Functions | |
string | type () const override |
String indicating the reactor model implemented. More... | |
void | setThermoMgr (ThermoPhase &thermo) override |
Specify the mixture contained in the reactor. More... | |
void | getState (double *y) override |
Get the the current state of the reactor. More... | |
void | initialize (double t0=0.0) override |
Initialize the reactor. More... | |
void | eval (double t, double *LHS, double *RHS) override |
Evaluate the reactor governing equations. More... | |
void | updateState (double *y) override |
Set the state of the reactor to correspond to the state vector y. More... | |
size_t | componentIndex (const string &nm) const override |
Return the index in the solution vector for this reactor of the component named nm. More... | |
string | componentName (size_t k) override |
Return the name of the solution component with index i. More... | |
Public Member Functions inherited from Reactor | |
string | type () const override |
String indicating the reactor model implemented. More... | |
virtual bool | isOde () const |
Indicate whether the governing equations for this reactor type are a system of ODEs or DAEs. More... | |
virtual bool | timeIsIndependent () const |
Indicates whether the governing equations for this reactor are functions of time or a spatial variable. More... | |
template<class G > | |
void | insert (G &contents) |
Insert something into the reactor. More... | |
void | insert (shared_ptr< Solution > sol) |
void | setKineticsMgr (Kinetics &kin) override |
Specify chemical kinetics governing the reactor. More... | |
void | setChemistry (bool cflag=true) override |
Enable or disable changes in reactor composition due to chemical reactions. More... | |
bool | chemistryEnabled () const |
Returns true if changes in the reactor composition due to chemical reactions are enabled. More... | |
void | setEnergy (int eflag=1) override |
Set the energy equation on or off. More... | |
bool | energyEnabled () const |
Returns true if solution of the energy equation is enabled. More... | |
size_t | neq () |
Number of equations (state variables) for this reactor. More... | |
virtual void | getStateDae (double *y, double *ydot) |
Get the current state and derivative vector of the reactor for a DAE solver. More... | |
void | initialize (double t0=0.0) override |
Initialize the reactor. More... | |
virtual void | evalDae (double t, double *y, double *ydot, double *residual) |
Evaluate the reactor governing equations. More... | |
virtual void | getConstraints (double *constraints) |
Given a vector of length neq(), mark which variables should be considered algebraic constraints. More... | |
void | syncState () override |
Set the state of the reactor to correspond to the state of the associated ThermoPhase object. More... | |
virtual size_t | nSensParams () const |
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... | |
virtual void | addSensitivitySpeciesEnthalpy (size_t k) |
Add a sensitivity parameter associated with the enthalpy formation of species k (in the homogeneous phase) More... | |
void | setAdvanceLimits (const double *limits) |
Set absolute step size limits during advance. More... | |
bool | hasAdvanceLimits () const |
Check whether Reactor object uses advance limits. More... | |
bool | getAdvanceLimits (double *limits) const |
Retrieve absolute step size limits during advance. More... | |
void | setAdvanceLimit (const string &nm, const double limit) |
Set individual step size limit for component name nm More... | |
virtual Eigen::SparseMatrix< double > | jacobian () |
Calculate the Jacobian of a specific Reactor specialization. More... | |
Eigen::SparseMatrix< double > | finiteDifferenceJacobian () |
Calculate the reactor-specific Jacobian using a finite difference method. More... | |
virtual void | setDerivativeSettings (AnyMap &settings) |
Use this to set the kinetics objects derivative settings. More... | |
virtual void | applySensitivity (double *params) |
Set reaction rate multipliers based on the sensitivity variables in params. More... | |
virtual void | resetSensitivity (double *params) |
Reset the reaction rate multipliers. More... | |
virtual bool | preconditionerSupported () const |
Return a false if preconditioning is not supported or true otherwise. More... | |
Public Member Functions inherited from ReactorBase | |
ReactorBase (const string &name="(none)") | |
ReactorBase (const ReactorBase &)=delete | |
ReactorBase & | operator= (const ReactorBase &)=delete |
string | name () const |
Return the name of this reactor. More... | |
void | setName (const 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... | |
ThermoPhase & | contents () |
return a reference to the contents. More... | |
const ThermoPhase & | contents () const |
double | 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... | |
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 (double vol) |
Set the initial reactor volume. By default, the volume is 1.0 m^3. 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 (WallBase &w, int lr) |
Insert a Wall between this reactor and another reactor. More... | |
WallBase & | wall (size_t n) |
Return a reference to the n-th Wall connected to this reactor. More... | |
virtual void | addSurface (ReactorSurface *surf) |
ReactorSurface * | surface (size_t n) |
Return a reference to the n-th ReactorSurface connected to this reactor. More... | |
virtual size_t | nSurfs () |
Return the number of surfaces in a reactor. More... | |
double | volume () const |
Returns the current volume (m^3) of the reactor. More... | |
double | density () const |
Returns the current density (kg/m^3) of the reactor's contents. More... | |
double | temperature () const |
Returns the current temperature (K) of the reactor's contents. More... | |
double | enthalpy_mass () const |
Returns the current enthalpy (J/kg) of the reactor's contents. More... | |
double | intEnergy_mass () const |
Returns the current internal energy (J/kg) of the reactor's contents. More... | |
double | pressure () const |
Returns the current pressure (Pa) of the reactor. More... | |
double | mass () const |
Returns the mass (kg) of the reactor's contents. More... | |
const double * | massFractions () const |
Return the vector of species mass fractions. More... | |
double | massFraction (size_t k) const |
Return the mass fraction of the k-th species. More... | |
Protected Attributes | |
vector< double > | m_uk |
Species molar internal energies. More... | |
Protected Attributes inherited from Reactor | |
Kinetics * | m_kin = nullptr |
Pointer to the homogeneous Kinetics object that handles the reactions. More... | |
double | m_vdot = 0.0 |
net rate of volume change from moving walls [m^3/s] More... | |
double | m_Qdot = 0.0 |
net heat transfer into the reactor, through walls [W] More... | |
double | m_mass = 0.0 |
total mass More... | |
vector< double > | m_work |
vector< double > | m_sdot |
Production rates of gas phase species on surfaces [kmol/s]. More... | |
vector< double > | m_wdot |
Species net molar production rates. More... | |
vector< double > | m_uk |
Species molar internal energies. More... | |
bool | m_chem = false |
bool | m_energy = true |
size_t | m_nv = 0 |
size_t | m_nv_surf |
vector< double > | m_advancelimits |
!< Number of variables associated with reactor surfaces More... | |
vector< SensitivityParameter > | m_sensParams |
vector< Eigen::Triplet< double > > | m_jac_trips |
Vector of triplets representing the jacobian. More... | |
Protected Attributes inherited from ReactorBase | |
size_t | m_nsp = 0 |
Number of homogeneous species in the mixture. More... | |
ThermoPhase * | m_thermo = nullptr |
double | m_vol = 1.0 |
Current volume of the reactor [m^3]. More... | |
double | m_enthalpy = 0.0 |
Current specific enthalpy of the reactor [J/kg]. More... | |
double | m_intEnergy = 0.0 |
Current internal energy of the reactor [J/kg]. More... | |
double | m_pressure = 0.0 |
Current pressure in the reactor [Pa]. More... | |
vector< double > | m_state |
vector< FlowDevice * > | m_inlet |
vector< FlowDevice * > | m_outlet |
vector< WallBase * > | m_wall |
vector< ReactorSurface * > | m_surfaces |
vector< int > | m_lr |
Vector of length nWalls(), indicating whether this reactor is on the left (0) or right (1) of each wall. More... | |
string | m_name |
ReactorNet * | m_net = nullptr |
The ReactorNet that this reactor is part of. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Reactor | |
virtual size_t | speciesIndex (const string &nm) const |
Return the index in the solution vector for this reactor of the species named nm, in either the homogeneous phase or a surface phase, relative to the start of the species terms. More... | |
virtual void | evalWalls (double t) |
Evaluate terms related to Walls. More... | |
virtual void | evalSurfaces (double *LHS, double *RHS, double *sdot) |
Evaluate terms related to surface reactions. More... | |
virtual void | evalSurfaces (double *RHS, double *sdot) |
virtual void | updateSurfaceState (double *y) |
Update the state of SurfPhase objects attached to this reactor. More... | |
virtual void | updateConnected (bool updatePressure) |
Update the state information needed by connected reactors, flow devices, and reactor walls. More... | |
virtual void | getSurfaceInitialConditions (double *y) |
Get initial conditions for SurfPhase objects attached to this reactor. More... | |
|
inlineoverridevirtual |
String indicating the reactor model implemented.
Usually corresponds to the name of the derived class.
Reimplemented from ReactorBase.
Definition at line 25 of file IdealGasReactor.h.
|
overridevirtual |
Specify the mixture contained in the reactor.
Note that a pointer to this substance is stored, and as the integration proceeds, the state of the substance is modified.
Reimplemented from ReactorBase.
Definition at line 16 of file IdealGasReactor.cpp.
|
overridevirtual |
Get the the current state of the reactor.
[out] | y | state vector representing the initial state of the reactor |
Reimplemented from Reactor.
Definition at line 27 of file IdealGasReactor.cpp.
|
overridevirtual |
Initialize the reactor.
Called automatically by ReactorNet::initialize.
Reimplemented from ReactorBase.
Definition at line 53 of file IdealGasReactor.cpp.
|
overridevirtual |
Evaluate the reactor governing equations.
Called by ReactorNet::eval.
[in] | t | time. |
[out] | LHS | pointer to start of vector of left-hand side coefficients for governing equations, length m_nv, default values 1 |
[out] | RHS | pointer to start of vector of right-hand side coefficients for governing equations, length m_nv, default values 0 |
Reimplemented from Reactor.
Definition at line 72 of file IdealGasReactor.cpp.
|
overridevirtual |
Set the state of the reactor to correspond to the state vector y.
Reimplemented from Reactor.
Definition at line 59 of file IdealGasReactor.cpp.
|
overridevirtual |
Return the index in the solution vector for this reactor of the component named nm.
Possible values for nm are "mass", "volume", "temperature", the name of a homogeneous phase species, or the name of a surface species.
Reimplemented from Reactor.
Definition at line 138 of file IdealGasReactor.cpp.
|
overridevirtual |
Return the name of the solution component with index i.
Reimplemented from Reactor.
Definition at line 154 of file IdealGasReactor.cpp.
|
protected |
Species molar internal energies.
Definition at line 47 of file IdealGasReactor.h.