| Cantera 3.0.0

Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
IdealGasConstPressureReactor Class Reference
Zero-Dimensional Reactor Networks » Reactors

Class ConstPressureReactor is a class for constant-pressure reactors. More...

`#include <IdealGasConstPressureReactor.h>`

Inheritance diagram for IdealGasConstPressureReactor:
[legend]

## Detailed Description

Class ConstPressureReactor is a class for constant-pressure 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.

Definition at line 22 of file IdealGasConstPressureReactor.h.

## Public Member Functions
string | type () const override
| String indicating the reactor model implemented.
void | setThermoMgr (ThermoPhase &thermo) override
| Specify the mixture contained in the reactor.
void | getState (double *y) override
| Get the the current state of the reactor.
void | initialize (double t0=0.0) override
| Initialize the reactor.
void | eval (double t, double *LHS, double *RHS) override
| Evaluate the reactor governing equations.
void | updateState (double *y) override
| Set the state of the reactor to correspond to the state vector y.
size_t | componentIndex (const string &nm) const override
| Return the index in the solution vector for this reactor of the component named nm.
string | componentName (size_t k) override
| Return the name of the solution component with index i.
Public Member Functions inherited from Reactor
string | type () const override
| String indicating the reactor model implemented.
virtual bool | isOde () const
| Indicate whether the governing equations for this reactor type are a system of ODEs or DAEs.
virtual bool | timeIsIndependent () const
| Indicates whether the governing equations for this reactor are functions of time or a spatial variable.
template<class G >
void | insert (G &contents)
| Insert something into the reactor.
void | insert (shared_ptr< Solution > sol)
void | setKineticsMgr (Kinetics &kin) override
| Specify chemical kinetics governing the reactor.
void | setChemistry (bool cflag=true) override
| Enable or disable changes in reactor composition due to chemical reactions.
bool | chemistryEnabled () const
| Returns `true` if changes in the reactor composition due to chemical reactions are enabled.
void | setEnergy (int eflag=1) override
| Set the energy equation on or off.
bool | energyEnabled () const
| Returns `true` if solution of the energy equation is enabled.
size_t | neq ()
| Number of equations (state variables) for this reactor.
virtual void | getStateDae (double *y, double *ydot)
| Get the current state and derivative vector of the reactor for a DAE solver.
void | initialize (double t0=0.0) override
| Initialize the reactor.
virtual void | evalDae (double t, double *y, double *ydot, double *residual)
| Evaluate the reactor governing equations.
virtual void | getConstraints (double *constraints)
| Given a vector of length neq(), mark which variables should be considered algebraic constraints.
void | syncState () override
| Set the state of the reactor to correspond to the state of the associated ThermoPhase object.
virtual size_t | nSensParams () const
| Number of sensitivity parameters associated with this reactor (including walls)
virtual void | addSensitivityReaction (size_t rxn)
| Add a sensitivity parameter associated with the reaction number rxn (in the homogeneous phase).
virtual void | addSensitivitySpeciesEnthalpy (size_t k)
| Add a sensitivity parameter associated with the enthalpy formation of species k (in the homogeneous phase)
void | setAdvanceLimits (const double *limits)
| Set absolute step size limits during advance.
bool | hasAdvanceLimits () const
| Check whether Reactor object uses advance limits.
bool | getAdvanceLimits (double *limits) const
| Retrieve absolute step size limits during advance.
void | setAdvanceLimit (const string &nm, const double limit)
| Set individual step size limit for component name nm
virtual Eigen::SparseMatrix< double > | jacobian ()
| Calculate the Jacobian of a specific Reactor specialization.
Eigen::SparseMatrix< double > | finiteDifferenceJacobian ()
| Calculate the reactor-specific Jacobian using a finite difference method.
virtual void | setDerivativeSettings (AnyMap &settings)
| Use this to set the kinetics objects derivative settings.
virtual void | applySensitivity (double *params)
| Set reaction rate multipliers based on the sensitivity variables in params.
virtual void | resetSensitivity (double *params)
| Reset the reaction rate multipliers.
virtual bool | preconditionerSupported () const
| Return a false if preconditioning is not supported or true otherwise.
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.
void | setName (const string &name)
| Set the name of this reactor.
void | restoreState ()
| Set the state of the Phase object associated with this reactor to the reactor's current state.
ThermoPhase & | contents ()
| return a reference to the contents.
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.
ReactorNet & | network ()
| The ReactorNet that this reactor belongs to.
void | setNetwork (ReactorNet *net)
| Set the ReactorNet that this reactor belongs to.
void | setInitialVolume (double vol)
| Set the initial reactor volume. By default, the volume is 1.0 m^3.
void | addInlet (FlowDevice &inlet)
| Connect an inlet FlowDevice to this reactor.
void | addOutlet (FlowDevice &outlet)
| Connect an outlet FlowDevice to this reactor.
FlowDevice & | inlet (size_t n=0)
| Return a reference to the n-th inlet FlowDevice connected to this reactor.
FlowDevice & | outlet (size_t n=0)
| Return a reference to the n-th outlet FlowDevice connected to this reactor.
size_t | nInlets ()
| Return the number of inlet FlowDevice objects connected to this reactor.
size_t | nOutlets ()
| Return the number of outlet FlowDevice objects connected to this reactor.
size_t | nWalls ()
| Return the number of Wall objects connected to this reactor.
void | addWall (WallBase &w, int lr)
| Insert a Wall between this reactor and another reactor.
WallBase & | wall (size_t n)
| Return a reference to the n-th Wall connected to this reactor.
virtual void | addSurface (ReactorSurface *surf)
ReactorSurface * | surface (size_t n)
| Return a reference to the n-th ReactorSurface connected to this reactor.
virtual size_t | nSurfs ()
| Return the number of surfaces in a reactor.
double | volume () const
| Returns the current volume (m^3) of the reactor.
double | density () const
| Returns the current density (kg/m^3) of the reactor's contents.
double | temperature () const
| Returns the current temperature (K) of the reactor's contents.
double | enthalpy_mass () const
| Returns the current enthalpy (J/kg) of the reactor's contents.
double | intEnergy_mass () const
| Returns the current internal energy (J/kg) of the reactor's contents.
double | pressure () const
| Returns the current pressure (Pa) of the reactor.
double | mass () const
| Returns the mass (kg) of the reactor's contents.
const double * | massFractions () const
| Return the vector of species mass fractions.
double | massFraction (size_t k) const
| Return the mass fraction of the k-th species.

## Protected Attributes
vector< double > | m_hk
| Species molar enthalpies.
Protected Attributes inherited from Reactor
Kinetics * | m_kin = nullptr
| Pointer to the homogeneous Kinetics object that handles the reactions.
double | m_vdot = 0.0
| net rate of volume change from moving walls [m^3/s]
double | m_Qdot = 0.0
| net heat transfer into the reactor, through walls [W]
double | m_mass = 0.0
| total mass
vector< double > | m_work
vector< double > | m_sdot
| Production rates of gas phase species on surfaces [kmol/s].
vector< double > | m_wdot
| Species net molar production rates.
vector< double > | m_uk
| Species molar internal energies.
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
vector< SensitivityParameter > | m_sensParams
vector< Eigen::Triplet< double > > | m_jac_trips
| Vector of triplets representing the jacobian.
Protected Attributes inherited from ReactorBase
size_t | m_nsp = 0
| Number of homogeneous species in the mixture.
ThermoPhase * | m_thermo = nullptr
double | m_vol = 1.0
| Current volume of the reactor [m^3].
double | m_enthalpy = 0.0
| Current specific enthalpy of the reactor [J/kg].
double | m_intEnergy = 0.0
| Current internal energy of the reactor [J/kg].
double | m_pressure = 0.0
| Current pressure in the reactor [Pa].
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.
string | m_name
ReactorNet * | m_net = nullptr
| The ReactorNet that this reactor is part of.

## 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.
virtual void | evalWalls (double t)
| Evaluate terms related to Walls.
virtual void | evalSurfaces (double *LHS, double *RHS, double *sdot)
| Evaluate terms related to surface reactions.
virtual void | evalSurfaces (double *RHS, double *sdot)
virtual void | updateSurfaceState (double *y)
| Update the state of SurfPhase objects attached to this reactor.
virtual void | updateConnected (bool updatePressure)
| Update the state information needed by connected reactors, flow devices, and reactor walls.
virtual void | getSurfaceInitialConditions (double *y)
| Get initial conditions for SurfPhase objects attached to this reactor.

## Constructor & Destructor Documentation

## ◆ IdealGasConstPressureReactor()

IdealGasConstPressureReactor | ( |  | ) |
| inline

Definition at line 25 of file IdealGasConstPressureReactor.h.

## Member Function Documentation

## ◆ type()

string type | ( |  | ) | const
| inline override virtual

String indicating the reactor model implemented.

Usually corresponds to the name of the derived class.

Reimplemented from ConstPressureReactor.

Definition at line 27 of file IdealGasConstPressureReactor.h.

## ◆ setThermoMgr()

void setThermoMgr | ( | ThermoPhase & | thermo | ) |
| override virtual

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 IdealGasConstPressureReactor.cpp.

## ◆ getState()

void getState | ( | double * | y | ) |
| override virtual

Get the the current state of the reactor.

Parameters

  [out] | y | state vector representing the initial state of the reactor

Reimplemented from ConstPressureReactor.

Definition at line 27 of file IdealGasConstPressureReactor.cpp.

## ◆ initialize()

void initialize | ( | double | t0 = `0.0` | ) |
| override virtual

Initialize the reactor.

Called automatically by ReactorNet::initialize.

Reimplemented from ConstPressureReactor.

Definition at line 49 of file IdealGasConstPressureReactor.cpp.

## ◆ eval()

void eval | ( | double | t,
|  | double * | LHS,
|  | double * | RHS
| ) |  |
| override virtual

Evaluate the reactor governing equations.

Called by ReactorNet::eval.

Parameters

  [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 ConstPressureReactor.

Definition at line 68 of file IdealGasConstPressureReactor.cpp.

## ◆ updateState()

void updateState | ( | double * | y | ) |
| override virtual

Set the state of the reactor to correspond to the state vector y.

Reimplemented from ConstPressureReactor.

Definition at line 55 of file IdealGasConstPressureReactor.cpp.

## ◆ componentIndex()

size_t componentIndex | ( | const string & | nm | ) | const
| override virtual

Return the index in the solution vector for this reactor of the component named nm.

Possible values for nm are "mass", "temperature", the name of a homogeneous phase species, or the name of a surface species.

Reimplemented from ConstPressureReactor.

Definition at line 133 of file IdealGasConstPressureReactor.cpp.

## ◆ componentName()

string componentName | ( | size_t | k | ) |
| override virtual

Return the name of the solution component with index i.

See also
  componentIndex()

Reimplemented from ConstPressureReactor.

Definition at line 147 of file IdealGasConstPressureReactor.cpp.

## Member Data Documentation

## ◆ m_hk

vector<double> m_hk
| protected

Species molar enthalpies.

Definition at line 48 of file IdealGasConstPressureReactor.h.

The documentation for this class was generated from the following files:

- IdealGasConstPressureReactor.h
- IdealGasConstPressureReactor.cpp