Base class for reactor objects. More...
#include <ReactorBase.h>
Base class for reactor objects.
Allows using any substance model, with arbitrary inflow, outflow, heat loss/gain, surface chemistry, and volume change, whenever defined.
Definition at line 48 of file ReactorBase.h.
Public Member Functions | |
| ReactorBase (shared_ptr< Solution > sol, const string &name="(none)") | |
| Instantiate a ReactorBase object with Solution contents. | |
| ReactorBase (shared_ptr< Solution > sol, bool clone, const string &name="(none)") | |
| Instantiate a ReactorBase object with Solution contents. | |
| ReactorBase (const ReactorBase &)=delete | |
| ReactorBase & | operator= (const ReactorBase &)=delete |
| virtual string | type () const |
| String indicating the reactor model implemented. | |
| string | name () const |
| Return the name of this reactor. | |
| void | setName (const string &name) |
| Set the name of this reactor. | |
| bool | setDefaultName (map< string, int > &counts) |
Set the default name of a reactor. Returns false if it was previously set. | |
| shared_ptr< Solution > | phase () |
| Access the Solution object used to represent the contents of this reactor. | |
| shared_ptr< const Solution > | phase () const |
| Access the Solution object used to represent the contents of this reactor. | |
| virtual void | restoreState () |
| Set the state of the Phase object associated with this reactor to the reactor's current state. | |
| virtual void | syncState () |
| Set the state of the reactor to the associated ThermoPhase object. | |
| 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. | |
| virtual void | addSensitivityReaction (size_t rxn) |
| Add a sensitivity parameter associated with the reaction number rxn | |
| virtual size_t | nSensParams () const |
| Number of sensitivity parameters associated with this reactor. | |
Methods to set up a simulation | |
| virtual void | setInitialVolume (double vol) |
| Set the initial reactor volume. | |
| virtual double | area () const |
| Returns an area associated with a reactor [m²]. | |
| virtual void | setArea (double a) |
| Set an area associated with a reactor [m²]. | |
| virtual bool | chemistryEnabled () const |
Returns true if changes in the reactor composition due to chemical reactions are enabled. | |
| virtual void | setChemistryEnabled (bool cflag=true) |
| Enable or disable changes in reactor composition due to chemical reactions. | |
| virtual bool | energyEnabled () const |
Returns true if solution of the energy equation is enabled. | |
| virtual void | setEnergyEnabled (bool eflag=true) |
| Set the energy equation on or off. | |
| virtual void | addInlet (FlowDevice &inlet) |
| Connect an inlet FlowDevice to this reactor. | |
| virtual 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. | |
| virtual 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) |
| Add a ReactorSurface object to a Reactor object. | |
| ReactorSurface * | surface (size_t n) |
| Return a reference to the n-th ReactorSurface connected to this reactor. | |
| virtual size_t | nSurfs () const |
| Return the number of surfaces in a reactor. | |
| virtual void | initialize (double t0=0.0) |
| Initialize the reactor. | |
Solution components | |
The values returned are those after the last call to ReactorNet::advance or ReactorNet::step. | |
| 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 | 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 Member Functions | |
| ReactorBase (const string &name="(none)") | |
Protected Attributes | |
| size_t | m_nsp = 0 |
| Number of homogeneous species in the mixture. | |
| ThermoPhase * | m_thermo = nullptr |
| double | m_vol = 0.0 |
| Current volume of the reactor [m^3]. | |
| double | m_mass = 0.0 |
| Current mass of the reactor [kg]. | |
| double | m_enthalpy = 0.0 |
| Current specific enthalpy 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 |
| Reactor name. | |
| bool | m_defaultNameSet = false |
true if default name has been previously set. | |
| ReactorNet * | m_net = nullptr |
| The ReactorNet that this reactor is part of. | |
| shared_ptr< Solution > | m_solution |
| Composite thermo/kinetics/transport handler. | |
| vector< SensitivityParameter > | m_sensParams |
| ReactorBase | ( | shared_ptr< Solution > | sol, |
| const string & | name = "(none)" |
||
| ) |
Instantiate a ReactorBase object with Solution contents.
| sol | Solution object to be set. |
| name | Name of the reactor. |
Definition at line 20 of file ReactorBase.cpp.
| ReactorBase | ( | shared_ptr< Solution > | sol, |
| bool | clone, | ||
| const string & | name = "(none)" |
||
| ) |
Instantiate a ReactorBase object with Solution contents.
| sol | Solution object representing the contents of this reactor |
| clone | Determines whether to clone sol so that the internal state of this reactor is independent of the original Solution object and any Solution objects used by other reactors in the network. |
| name | Name of the reactor. |
clone argument in Cantera 3.2. If not specified, the default behavior in Cantera 3.2 is not to clone the Solution object. This will change after Cantera 3.2 to default to true. Definition at line 25 of file ReactorBase.cpp.
|
virtual |
Definition at line 46 of file ReactorBase.cpp.
|
explicitprotected |
Definition at line 16 of file ReactorBase.cpp.
|
inlinevirtual |
String indicating the reactor model implemented.
Usually corresponds to the name of the derived class.
Reimplemented in ConstPressureMoleReactor, ConstPressureReactor, FlowReactor, IdealGasConstPressureMoleReactor, IdealGasConstPressureReactor, IdealGasMoleReactor, IdealGasReactor, MoleReactor, Reactor, ReactorSurface, and Reservoir.
Definition at line 74 of file ReactorBase.h.
|
inline |
Return the name of this reactor.
Definition at line 79 of file ReactorBase.h.
|
inline |
Set the name of this reactor.
Definition at line 84 of file ReactorBase.h.
| bool setDefaultName | ( | map< string, int > & | counts | ) |
Set the default name of a reactor. Returns false if it was previously set.
Definition at line 53 of file ReactorBase.cpp.
|
inline |
Access the Solution object used to represent the contents of this reactor.
Definition at line 93 of file ReactorBase.h.
|
inline |
Access the Solution object used to represent the contents of this reactor.
Definition at line 97 of file ReactorBase.h.
|
inlinevirtual |
Set the initial reactor volume.
Reimplemented in Reactor.
Definition at line 103 of file ReactorBase.h.
|
inlinevirtual |
Returns an area associated with a reactor [m²].
Examples: surface area of ReactorSurface or cross section area of FlowReactor.
Reimplemented in FlowReactor, and ReactorSurface.
Definition at line 110 of file ReactorBase.h.
|
inlinevirtual |
Set an area associated with a reactor [m²].
Examples: surface area of ReactorSurface or cross section area of FlowReactor.
Reimplemented in ReactorSurface, and FlowReactor.
Definition at line 117 of file ReactorBase.h.
|
inlinevirtual |
Returns true if changes in the reactor composition due to chemical reactions are enabled.
Reimplemented in Reactor.
Definition at line 125 of file ReactorBase.h.
|
inlinevirtual |
Enable or disable changes in reactor composition due to chemical reactions.
Reimplemented in Reactor.
Definition at line 132 of file ReactorBase.h.
|
inlinevirtual |
Returns true if solution of the energy equation is enabled.
Reimplemented in Reactor.
Definition at line 139 of file ReactorBase.h.
|
inlinevirtual |
Set the energy equation on or off.
Reimplemented in Reactor.
Definition at line 146 of file ReactorBase.h.
|
virtual |
Connect an inlet FlowDevice to this reactor.
Reimplemented in ReactorSurface.
Definition at line 66 of file ReactorBase.cpp.
|
virtual |
Connect an outlet FlowDevice to this reactor.
Reimplemented in ReactorSurface.
Definition at line 71 of file ReactorBase.cpp.
| FlowDevice & inlet | ( | size_t | n = 0 | ) |
Return a reference to the n-th inlet FlowDevice connected to this reactor.
Definition at line 145 of file ReactorBase.cpp.
| FlowDevice & outlet | ( | size_t | n = 0 | ) |
Return a reference to the n-th outlet FlowDevice connected to this reactor.
Definition at line 149 of file ReactorBase.cpp.
|
inline |
Return the number of inlet FlowDevice objects connected to this reactor.
Definition at line 164 of file ReactorBase.h.
|
inline |
Return the number of outlet FlowDevice objects connected to this reactor.
Definition at line 169 of file ReactorBase.h.
|
inline |
Return the number of Wall objects connected to this reactor.
Definition at line 174 of file ReactorBase.h.
|
virtual |
Insert a Wall between this reactor and another reactor.
lr = 0 if this reactor is to the left of the wall and lr = 1 if this reactor is to the right of the wall. This method is called automatically for both the left and right reactors by WallBase::install.
Reimplemented in ReactorSurface.
Definition at line 76 of file ReactorBase.cpp.
| WallBase & wall | ( | size_t | n | ) |
Return a reference to the n-th Wall connected to this reactor.
Definition at line 86 of file ReactorBase.cpp.
|
virtual |
Add a ReactorSurface object to a Reactor object.
Reimplemented in ReactorSurface.
Definition at line 91 of file ReactorBase.cpp.
| ReactorSurface * surface | ( | size_t | n | ) |
Return a reference to the n-th ReactorSurface connected to this reactor.
Definition at line 98 of file ReactorBase.cpp.
|
inlinevirtual |
Return the number of surfaces in a reactor.
Definition at line 199 of file ReactorBase.h.
|
inlinevirtual |
Initialize the reactor.
Called automatically by ReactorNet::initialize.
Reimplemented in ConstPressureMoleReactor, ConstPressureReactor, FlowReactor, IdealGasConstPressureMoleReactor, IdealGasConstPressureReactor, IdealGasMoleReactor, IdealGasReactor, MoleReactor, Reactor, and Reservoir.
Definition at line 206 of file ReactorBase.h.
|
virtual |
Set the state of the Phase object associated with this reactor to the reactor's current state.
Reimplemented in ReactorSurface.
Definition at line 103 of file ReactorBase.cpp.
|
virtual |
Set the state of the reactor to the associated ThermoPhase object.
This method is the inverse of restoreState() and will trigger integrator reinitialization.
Reimplemented in FlowReactor, and ReactorSurface.
Definition at line 110 of file ReactorBase.cpp.
| 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.
Definition at line 136 of file ReactorBase.cpp.
|
inline |
Returns the current volume (m^3) of the reactor.
Definition at line 232 of file ReactorBase.h.
|
inline |
Returns the current density (kg/m^3) of the reactor's contents.
Definition at line 237 of file ReactorBase.h.
|
inline |
Returns the current temperature (K) of the reactor's contents.
Definition at line 246 of file ReactorBase.h.
|
inline |
Returns the current enthalpy (J/kg) of the reactor's contents.
Definition at line 255 of file ReactorBase.h.
|
inline |
Returns the current pressure (Pa) of the reactor.
Definition at line 260 of file ReactorBase.h.
|
inline |
Returns the mass (kg) of the reactor's contents.
Definition at line 265 of file ReactorBase.h.
|
inline |
Return the vector of species mass fractions.
Definition at line 270 of file ReactorBase.h.
|
inline |
Return the mass fraction of the k-th species.
Definition at line 279 of file ReactorBase.h.
| ReactorNet & network | ( | ) |
The ReactorNet that this reactor belongs to.
Definition at line 121 of file ReactorBase.cpp.
| void setNetwork | ( | ReactorNet * | net | ) |
Set the ReactorNet that this reactor belongs to.
Definition at line 131 of file ReactorBase.cpp.
|
inlinevirtual |
Add a sensitivity parameter associated with the reaction number rxn
Reimplemented in Reactor, and ReactorSurface.
Definition at line 296 of file ReactorBase.h.
|
inlinevirtual |
Number of sensitivity parameters associated with this reactor.
Reimplemented in Reactor.
Definition at line 301 of file ReactorBase.h.
|
protected |
Number of homogeneous species in the mixture.
Definition at line 309 of file ReactorBase.h.
|
protected |
Definition at line 311 of file ReactorBase.h.
|
protected |
Current volume of the reactor [m^3].
Definition at line 312 of file ReactorBase.h.
|
protected |
Current mass of the reactor [kg].
Definition at line 313 of file ReactorBase.h.
|
protected |
Current specific enthalpy of the reactor [J/kg].
Definition at line 314 of file ReactorBase.h.
|
protected |
Current pressure in the reactor [Pa].
Definition at line 315 of file ReactorBase.h.
|
protected |
Definition at line 316 of file ReactorBase.h.
|
protected |
Definition at line 317 of file ReactorBase.h.
|
protected |
Definition at line 317 of file ReactorBase.h.
|
protected |
Definition at line 319 of file ReactorBase.h.
|
protected |
Definition at line 320 of file ReactorBase.h.
|
protected |
Vector of length nWalls(), indicating whether this reactor is on the left (0) or right (1) of each wall.
Definition at line 324 of file ReactorBase.h.
|
protected |
Reactor name.
Definition at line 325 of file ReactorBase.h.
|
protected |
true if default name has been previously set.
Definition at line 326 of file ReactorBase.h.
|
protected |
The ReactorNet that this reactor is part of.
Definition at line 329 of file ReactorBase.h.
|
protected |
Composite thermo/kinetics/transport handler.
Definition at line 332 of file ReactorBase.h.
|
protected |
Definition at line 335 of file ReactorBase.h.