Base class for stirred reactors. More...
#include <ReactorBase.h>
Base class for stirred reactors.
Allows using any substance model, with arbitrary inflow, outflow, heat loss/gain, surface chemistry, and volume change.
Definition at line 48 of file ReactorBase.h.
Public Member Functions | |
ReactorBase (const string &name="(none)") | |
ReactorBase (shared_ptr< Solution > sol, 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. | |
void | setSolution (shared_ptr< Solution > sol) |
Set the Solution specifying the ReactorBase content. | |
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 correspond to the state of the associated ThermoPhase object. | |
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. | |
Methods to set up a simulation | |
void | setInitialVolume (double vol) |
Set the initial reactor volume. By default, the volume is 1.0 m^3. | |
void | insert (shared_ptr< Solution > sol) |
void | setThermoMgr (ThermoPhase &thermo) |
Specify the mixture contained in the reactor. | |
void | setKineticsMgr (Kinetics &kin) |
virtual void | setChemistry (bool cflag=true) |
Enable or disable changes in reactor composition due to chemical reactions. | |
virtual void | setEnergy (int eflag=1) |
Set the energy equation on or off. | |
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. | |
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 | 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 Member Functions | |
virtual void | setThermo (ThermoPhase &thermo) |
Specify the mixture contained in the reactor. | |
virtual void | setKinetics (Kinetics &kin) |
Specify the kinetics manager for the reactor. | |
Protected Attributes | |
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 |
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. | |
|
explicit |
Definition at line 16 of file ReactorBase.cpp.
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.
|
virtual |
Definition at line 33 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, and Reservoir.
Definition at line 63 of file ReactorBase.h.
|
inline |
Return the name of this reactor.
Definition at line 68 of file ReactorBase.h.
|
inline |
Set the name of this reactor.
Definition at line 73 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 40 of file ReactorBase.cpp.
void setSolution | ( | shared_ptr< Solution > | sol | ) |
Set the Solution specifying the ReactorBase content.
sol | Solution object to be set. |
Definition at line 53 of file ReactorBase.cpp.
|
inline |
Set the initial reactor volume. By default, the volume is 1.0 m^3.
Definition at line 89 of file ReactorBase.h.
void insert | ( | shared_ptr< Solution > | sol | ) |
Definition at line 71 of file ReactorBase.cpp.
void setThermoMgr | ( | ThermoPhase & | thermo | ) |
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.
Definition at line 88 of file ReactorBase.cpp.
void setKineticsMgr | ( | Kinetics & | kin | ) |
Definition at line 95 of file ReactorBase.cpp.
|
inlinevirtual |
Enable or disable changes in reactor composition due to chemical reactions.
Reimplemented in Reactor.
Definition at line 106 of file ReactorBase.h.
|
inlinevirtual |
Set the energy equation on or off.
Reimplemented in Reactor.
Definition at line 111 of file ReactorBase.h.
void addInlet | ( | FlowDevice & | inlet | ) |
Connect an inlet FlowDevice to this reactor.
Definition at line 113 of file ReactorBase.cpp.
void addOutlet | ( | FlowDevice & | outlet | ) |
Connect an outlet FlowDevice to this reactor.
Definition at line 118 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 182 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 186 of file ReactorBase.cpp.
|
inline |
Return the number of inlet FlowDevice objects connected to this reactor.
Definition at line 130 of file ReactorBase.h.
|
inline |
Return the number of outlet FlowDevice objects connected to this reactor.
Definition at line 136 of file ReactorBase.h.
|
inline |
Return the number of Wall objects connected to this reactor.
Definition at line 141 of file ReactorBase.h.
void addWall | ( | WallBase & | w, |
int | lr | ||
) |
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.
Definition at line 123 of file ReactorBase.cpp.
WallBase & wall | ( | size_t | n | ) |
Return a reference to the n-th Wall connected to this reactor.
Definition at line 133 of file ReactorBase.cpp.
|
virtual |
Definition at line 138 of file ReactorBase.cpp.
ReactorSurface * surface | ( | size_t | n | ) |
Return a reference to the n-th ReactorSurface connected to this reactor.
Definition at line 146 of file ReactorBase.cpp.
|
inlinevirtual |
Return the number of surfaces in a reactor.
Definition at line 163 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 170 of file ReactorBase.h.
void restoreState | ( | ) |
Set the state of the Phase object associated with this reactor to the reactor's current state.
Definition at line 151 of file ReactorBase.cpp.
|
virtual |
Set the state of the reactor to correspond to the state of the associated ThermoPhase object.
This is the inverse of restoreState(). Calling this will trigger integrator reinitialization.
Reimplemented in FlowReactor, and Reactor.
Definition at line 102 of file ReactorBase.cpp.
|
inline |
return a reference to the contents.
Definition at line 186 of file ReactorBase.h.
|
inline |
Definition at line 194 of file ReactorBase.h.
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 173 of file ReactorBase.cpp.
|
inline |
Returns the current volume (m^3) of the reactor.
Definition at line 213 of file ReactorBase.h.
|
inline |
Returns the current density (kg/m^3) of the reactor's contents.
Definition at line 218 of file ReactorBase.h.
|
inline |
Returns the current temperature (K) of the reactor's contents.
Definition at line 227 of file ReactorBase.h.
|
inline |
Returns the current enthalpy (J/kg) of the reactor's contents.
Definition at line 236 of file ReactorBase.h.
|
inline |
Returns the current internal energy (J/kg) of the reactor's contents.
Definition at line 241 of file ReactorBase.h.
|
inline |
Returns the current pressure (Pa) of the reactor.
Definition at line 246 of file ReactorBase.h.
|
inline |
Returns the mass (kg) of the reactor's contents.
Definition at line 251 of file ReactorBase.h.
|
inline |
Return the vector of species mass fractions.
Definition at line 256 of file ReactorBase.h.
|
inline |
Return the mass fraction of the k-th species.
Definition at line 265 of file ReactorBase.h.
ReactorNet & network | ( | ) |
The ReactorNet that this reactor belongs to.
Definition at line 158 of file ReactorBase.cpp.
void setNetwork | ( | ReactorNet * | net | ) |
Set the ReactorNet that this reactor belongs to.
Definition at line 168 of file ReactorBase.cpp.
|
protectedvirtual |
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 in IdealGasConstPressureMoleReactor, IdealGasConstPressureReactor, IdealGasMoleReactor, and IdealGasReactor.
Definition at line 78 of file ReactorBase.cpp.
|
inlineprotectedvirtual |
Specify the kinetics manager for the reactor.
Called by setSolution().
Reimplemented in Reactor.
Definition at line 290 of file ReactorBase.h.
|
protected |
Number of homogeneous species in the mixture.
Definition at line 295 of file ReactorBase.h.
|
protected |
Definition at line 297 of file ReactorBase.h.
|
protected |
Current volume of the reactor [m^3].
Definition at line 298 of file ReactorBase.h.
|
protected |
Current specific enthalpy of the reactor [J/kg].
Definition at line 299 of file ReactorBase.h.
|
protected |
Current internal energy of the reactor [J/kg].
Definition at line 300 of file ReactorBase.h.
|
protected |
Current pressure in the reactor [Pa].
Definition at line 301 of file ReactorBase.h.
|
protected |
Definition at line 302 of file ReactorBase.h.
|
protected |
Definition at line 303 of file ReactorBase.h.
|
protected |
Definition at line 303 of file ReactorBase.h.
|
protected |
Definition at line 305 of file ReactorBase.h.
|
protected |
Definition at line 306 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 310 of file ReactorBase.h.
|
protected |
Reactor name.
Definition at line 311 of file ReactorBase.h.
|
protected |
true
if default name has been previously set.
Definition at line 312 of file ReactorBase.h.
|
protected |
The ReactorNet that this reactor is part of.
Definition at line 315 of file ReactorBase.h.
|
protected |
Composite thermo/kinetics/transport handler.
Definition at line 318 of file ReactorBase.h.