6 #ifndef CT_REACTORBASE_H
7 #define CT_REACTORBASE_H
30 enum class SensParameterType {
35 struct SensitivityParameter
40 SensParameterType type;
59 virtual string type()
const {
117 return m_inlet.size();
123 return m_outlet.size();
128 return m_wall.size();
150 return m_surfaces.size();
175 "Reactor contents not defined.");
183 "Reactor contents not defined.");
235 return m_state.data() + 2;
260 vector<double> m_state;
261 vector<FlowDevice*> m_inlet, m_outlet;
263 vector<WallBase*> m_wall;
264 vector<ReactorSurface*> m_surfaces;
Base class for exceptions thrown by Cantera classes.
Base class for 'flow devices' (valves, pressure regulators, etc.) connecting reactors.
Public interface for kinetics managers.
An error indicating that an unimplemented function has been called.
Base class for stirred reactors.
virtual void setKineticsMgr(Kinetics &kin)
Specify chemical kinetics governing the reactor.
FlowDevice & outlet(size_t n=0)
Return a reference to the n-th outlet FlowDevice connected to this reactor.
double massFraction(size_t k) const
Return the mass fraction of the k-th species.
size_t nWalls()
Return the number of Wall objects connected to this reactor.
WallBase & wall(size_t n)
Return a reference to the n-th Wall connected to this reactor.
double density() const
Returns the current density (kg/m^3) of the reactor's contents.
void setInitialVolume(double vol)
Set the initial reactor volume. By default, the volume is 1.0 m^3.
double pressure() const
Returns the current pressure (Pa) of the reactor.
void addOutlet(FlowDevice &outlet)
Connect an outlet FlowDevice to this reactor.
double m_pressure
Current pressure in the reactor [Pa].
virtual string type() const
String indicating the reactor model implemented.
ReactorNet * m_net
The ReactorNet that this reactor is part of.
void addWall(WallBase &w, int lr)
Insert a Wall between this reactor and another reactor.
void setNetwork(ReactorNet *net)
Set the ReactorNet that this reactor belongs to.
void setName(const string &name)
Set the name of this reactor.
FlowDevice & inlet(size_t n=0)
Return a reference to the n-th inlet FlowDevice connected to this reactor.
double temperature() const
Returns the current temperature (K) of the reactor's contents.
vector< int > m_lr
Vector of length nWalls(), indicating whether this reactor is on the left (0) or right (1) of each wa...
double m_vol
Current volume of the reactor [m^3].
virtual void setChemistry(bool cflag=true)
Enable or disable changes in reactor composition due to chemical reactions.
void addInlet(FlowDevice &inlet)
Connect an inlet FlowDevice to this reactor.
virtual void syncState()
Set the state of the reactor to correspond to the state of the associated ThermoPhase object.
double m_intEnergy
Current internal energy of the reactor [J/kg].
const double * massFractions() const
Return the vector of species mass fractions.
virtual void setEnergy(int eflag=1)
Set the energy equation on or off.
size_t m_nsp
Number of homogeneous species in the mixture.
double intEnergy_mass() const
Returns the current internal energy (J/kg) of the reactor's contents.
double mass() const
Returns the mass (kg) of the reactor's contents.
double volume() const
Returns the current volume (m^3) of the reactor.
virtual void setThermoMgr(ThermoPhase &thermo)
Specify the mixture contained in the reactor.
void restoreState()
Set the state of the Phase object associated with this reactor to the reactor's current state.
virtual size_t nSurfs()
Return the number of surfaces in a reactor.
ThermoPhase & contents()
return a reference to the contents.
ReactorNet & network()
The ReactorNet that this reactor belongs to.
double residenceTime()
Return the residence time (s) of the contents of this reactor, based on the outlet mass flow rates an...
size_t nOutlets()
Return the number of outlet FlowDevice objects connected to this reactor.
virtual void initialize(double t0=0.0)
Initialize the reactor.
size_t nInlets()
Return the number of inlet FlowDevice objects connected to this reactor.
ReactorSurface * surface(size_t n)
Return a reference to the n-th ReactorSurface connected to this reactor.
double m_enthalpy
Current specific enthalpy of the reactor [J/kg].
string name() const
Return the name of this reactor.
double enthalpy_mass() const
Returns the current enthalpy (J/kg) of the reactor's contents.
A class representing a network of connected reactors.
A surface where reactions can occur that is in contact with the bulk fluid of a Reactor.
Base class for a phase with thermodynamic properties.
Base class for 'walls' (walls, pistons, etc.) connecting reactors.
Definitions for the classes that are thrown when Cantera experiences an error condition (also contain...
This file contains definitions for utility functions and text for modules, inputfiles and logging,...
Namespace for the Cantera kernel.