| Cantera 3.0.0

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

Base class for stirred reactors. More...

`#include <ReactorBase.h>`

Inheritance diagram for ReactorBase:
[legend]

## Detailed Description

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 49 of file ReactorBase.h.

## Public Member Functions
| ReactorBase (const string &name="(none)")
| 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.
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.
virtual void | setThermoMgr (ThermoPhase &thermo)
| Specify the mixture contained in the reactor.
virtual void | setKineticsMgr (Kinetics &kin)
| Specify chemical kinetics governing the reactor.
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 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
ReactorNet * | m_net = nullptr
| The ReactorNet that this reactor is part of.

## Constructor & Destructor Documentation

## ◆ ReactorBase()

ReactorBase | ( | const string & | name = `"(none)"` | ) |
| explicit

Definition at line 15 of file ReactorBase.cpp.

## Member Function Documentation

## ◆ type()

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

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 59 of file ReactorBase.h.

## ◆ name()

string name | ( |  | ) | const
| inline

Return the name of this reactor.

Definition at line 64 of file ReactorBase.h.

## ◆ setName()

void setName | ( | const string & | name | ) |
| inline

Set the name of this reactor.

Definition at line 69 of file ReactorBase.h.

## ◆ setInitialVolume()

void setInitialVolume | ( | double | vol | ) |
| inline

Set the initial reactor volume. By default, the volume is 1.0 m^3.

Definition at line 77 of file ReactorBase.h.

## ◆ setThermoMgr()

void setThermoMgr | ( | ThermoPhase & | thermo | ) |
| 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 in IdealGasConstPressureMoleReactor, IdealGasConstPressureReactor, IdealGasMoleReactor, and IdealGasReactor.

Definition at line 20 of file ReactorBase.cpp.

## ◆ setKineticsMgr()

virtual void setKineticsMgr | ( | Kinetics & | kin | ) |
| inline virtual

Specify chemical kinetics governing the reactor.

Reimplemented in Reactor.

Definition at line 87 of file ReactorBase.h.

## ◆ setChemistry()

virtual void setChemistry | ( | bool | cflag = `true` | ) |
| inline virtual

Enable or disable changes in reactor composition due to chemical reactions.

Reimplemented in Reactor.

Definition at line 92 of file ReactorBase.h.

## ◆ setEnergy()

virtual void setEnergy | ( | int | eflag = `1` | ) |
| inline virtual

Set the energy equation on or off.

Reimplemented in Reactor.

Definition at line 97 of file ReactorBase.h.

## ◆ addInlet()

void addInlet | ( | FlowDevice & | inlet | ) |

Connect an inlet FlowDevice to this reactor.

Definition at line 41 of file ReactorBase.cpp.

## ◆ addOutlet()

void addOutlet | ( | FlowDevice & | outlet | ) |

Connect an outlet FlowDevice to this reactor.

Definition at line 46 of file ReactorBase.cpp.

## ◆ inlet()

FlowDevice & inlet | ( | size_t | n = `0` | ) |

Return a reference to the n-th inlet FlowDevice connected to this reactor.

Definition at line 110 of file ReactorBase.cpp.

## ◆ outlet()

FlowDevice & outlet | ( | size_t | n = `0` | ) |

Return a reference to the n-th outlet FlowDevice connected to this reactor.

Definition at line 114 of file ReactorBase.cpp.

## ◆ nInlets()

size_t nInlets | ( |  | ) |
| inline

Return the number of inlet FlowDevice objects connected to this reactor.

Definition at line 116 of file ReactorBase.h.

## ◆ nOutlets()

size_t nOutlets | ( |  | ) |
| inline

Return the number of outlet FlowDevice objects connected to this reactor.

Definition at line 122 of file ReactorBase.h.

## ◆ nWalls()

size_t nWalls | ( |  | ) |
| inline

Return the number of Wall objects connected to this reactor.

Definition at line 127 of file ReactorBase.h.

## ◆ addWall()

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 51 of file ReactorBase.cpp.

## ◆ wall()

WallBase & wall | ( | size_t | n | ) |

Return a reference to the n-th Wall connected to this reactor.

Definition at line 61 of file ReactorBase.cpp.

## ◆ addSurface()

void addSurface | ( | ReactorSurface * | surf | ) |
| virtual

Definition at line 66 of file ReactorBase.cpp.

## ◆ surface()

ReactorSurface * surface | ( | size_t | n | ) |

Return a reference to the n-th ReactorSurface connected to this reactor.

Definition at line 74 of file ReactorBase.cpp.

## ◆ nSurfs()

virtual size_t nSurfs | ( |  | ) |
| inline virtual

Return the number of surfaces in a reactor.

Definition at line 149 of file ReactorBase.h.

## ◆ initialize()

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

Initialize the reactor.

Called automatically by ReactorNet::initialize.

Reimplemented in ConstPressureMoleReactor, ConstPressureReactor, FlowReactor, IdealGasConstPressureMoleReactor, IdealGasConstPressureReactor, IdealGasMoleReactor, IdealGasReactor, MoleReactor, Reactor, and Reservoir.

Definition at line 156 of file ReactorBase.h.

## ◆ restoreState()

void restoreState | ( |  | ) |

Set the state of the Phase object associated with this reactor to the reactor's current state.

Definition at line 79 of file ReactorBase.cpp.

## ◆ syncState()

void syncState | ( |  | ) |
| 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 30 of file ReactorBase.cpp.

## ◆ contents() [1/2]

ThermoPhase & contents | ( |  | ) |
| inline

return a reference to the contents.

Definition at line 172 of file ReactorBase.h.

## ◆ contents() [2/2]

const ThermoPhase & contents | ( |  | ) | const
| inline

Definition at line 180 of file ReactorBase.h.

## ◆ residenceTime()

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 101 of file ReactorBase.cpp.

## ◆ volume()

double volume | ( |  | ) | const
| inline

Returns the current volume (m^3) of the reactor.

Definition at line 199 of file ReactorBase.h.

## ◆ density()

double density | ( |  | ) | const
| inline

Returns the current density (kg/m^3) of the reactor's contents.

Definition at line 204 of file ReactorBase.h.

## ◆ temperature()

double temperature | ( |  | ) | const
| inline

Returns the current temperature (K) of the reactor's contents.

Definition at line 209 of file ReactorBase.h.

## ◆ enthalpy_mass()

double enthalpy_mass | ( |  | ) | const
| inline

Returns the current enthalpy (J/kg) of the reactor's contents.

Definition at line 214 of file ReactorBase.h.

## ◆ intEnergy_mass()

double intEnergy_mass | ( |  | ) | const
| inline

Returns the current internal energy (J/kg) of the reactor's contents.

Definition at line 219 of file ReactorBase.h.

## ◆ pressure()

double pressure | ( |  | ) | const
| inline

Returns the current pressure (Pa) of the reactor.

Definition at line 224 of file ReactorBase.h.

## ◆ mass()

double mass | ( |  | ) | const
| inline

Returns the mass (kg) of the reactor's contents.

Definition at line 229 of file ReactorBase.h.

## ◆ massFractions()

const double * massFractions | ( |  | ) | const
| inline

Return the vector of species mass fractions.

Definition at line 234 of file ReactorBase.h.

## ◆ massFraction()

double massFraction | ( | size_t | k | ) | const
| inline

Return the mass fraction of the k-th species.

Definition at line 239 of file ReactorBase.h.

## ◆ network()

ReactorNet & network | ( |  | ) |

The ReactorNet that this reactor belongs to.

Definition at line 86 of file ReactorBase.cpp.

## ◆ setNetwork()

void setNetwork | ( | ReactorNet * | net | ) |

Set the ReactorNet that this reactor belongs to.

Definition at line 96 of file ReactorBase.cpp.

## Member Data Documentation

## ◆ m_nsp

size_t m_nsp = 0
| protected

Number of homogeneous species in the mixture.

Definition at line 253 of file ReactorBase.h.

## ◆ m_thermo

ThermoPhase* m_thermo = nullptr
| protected

Definition at line 255 of file ReactorBase.h.

## ◆ m_vol

double m_vol = 1.0
| protected

Current volume of the reactor [m^3].

Definition at line 256 of file ReactorBase.h.

## ◆ m_enthalpy

double m_enthalpy = 0.0
| protected

Current specific enthalpy of the reactor [J/kg].

Definition at line 257 of file ReactorBase.h.

## ◆ m_intEnergy

double m_intEnergy = 0.0
| protected

Current internal energy of the reactor [J/kg].

Definition at line 258 of file ReactorBase.h.

## ◆ m_pressure

double m_pressure = 0.0
| protected

Current pressure in the reactor [Pa].

Definition at line 259 of file ReactorBase.h.

## ◆ m_state

vector<double> m_state
| protected

Definition at line 260 of file ReactorBase.h.

## ◆ m_inlet

vector<FlowDevice*> m_inlet
| protected

Definition at line 261 of file ReactorBase.h.

## ◆ m_outlet

vector<FlowDevice*> m_outlet
| protected

Definition at line 261 of file ReactorBase.h.

## ◆ m_wall

vector<WallBase*> m_wall
| protected

Definition at line 263 of file ReactorBase.h.

## ◆ m_surfaces

vector<ReactorSurface*> m_surfaces
| protected

Definition at line 264 of file ReactorBase.h.

## ◆ m_lr

vector<int> m_lr
| protected

Vector of length nWalls(), indicating whether this reactor is on the left (0) or right (1) of each wall.

Definition at line 268 of file ReactorBase.h.

## ◆ m_name

string m_name
| protected

Definition at line 269 of file ReactorBase.h.

## ◆ m_net

ReactorNet* m_net = nullptr
| protected

The ReactorNet that this reactor is part of.

Definition at line 272 of file ReactorBase.h.

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

- ReactorBase.h
- ReactorBase.cpp