6 #ifndef CT_REACTORBASE_H
7 #define CT_REACTORBASE_H
23 const int ReactorType = 2;
24 const int FlowReactorType = 3;
25 const int ConstPressureReactorType = 4;
26 const int IdealGasReactorType = 5;
27 const int IdealGasConstPressureReactorType = 6;
29 enum class SensParameterType {
34 struct SensitivityParameter
39 SensParameterType type;
65 "To be changed after Cantera 2.5. "
66 "Return string instead of magic number; use "
67 "ReactorBase::typeStr during transition");
125 return m_inlet.size();
131 return m_outlet.size();
136 return m_wall.size();
150 void addSurface(ReactorSurface* surf);
154 ReactorSurface*
surface(
size_t n);
169 throw CanteraError(
"ReactorBase::restoreState",
"No phase defined.");
183 "Reactor contents not defined.");
191 "Reactor contents not defined.");
244 return m_state.data() + 2;
266 doublereal m_enthalpy;
267 doublereal m_intEnergy;
268 doublereal m_pressure;
270 std::vector<FlowDevice*> m_inlet, m_outlet;
272 std::vector<WallBase*> m_wall;
273 std::vector<ReactorSurface*> m_surfaces;
Header file for class ThermoPhase, the base class for phases with thermodynamic properties,...
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.
void restoreState(const vector_fp &state)
Restore a state saved on a previous call to saveState.
Base class for stirred reactors.
virtual void setKineticsMgr(Kinetics &kin)
Specify chemical kinetics governing the reactor.
doublereal massFraction(size_t k) const
Return the mass fraction of the k-th species.
thermo_t & contents()
return a reference to the contents.
FlowDevice & outlet(size_t n=0)
Return a reference to the n-th outlet FlowDevice connected to this reactor.
const doublereal * massFractions() const
Return the vector of species mass fractions.
size_t nWalls()
Return the number of Wall objects connected to this reactor.
std::string name() const
Return the name of this reactor.
WallBase & wall(size_t n)
Return a reference to the n-th Wall connected to this reactor.
void addOutlet(FlowDevice &outlet)
Connect an outlet FlowDevice to this reactor.
doublereal pressure() const
Returns the current pressure (Pa) of the reactor.
virtual std::string typeStr() const
String indicating the reactor model implemented.
virtual void initialize(doublereal t0=0.0)
Initialize the reactor.
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.
doublereal residenceTime()
Return the residence time (s) of the contents of this reactor, based on the outlet mass flow rates an...
FlowDevice & inlet(size_t n=0)
Return a reference to the n-th inlet FlowDevice connected to this reactor.
virtual int type() const
Return a constant indicating the type of this Reactor.
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.
void setName(const std::string &name)
Set the name of this reactor.
void setInitialVolume(doublereal vol)
Set the initial reactor volume. By default, the volume is 1.0 m^3.
virtual void setEnergy(int eflag=1)
Set the energy equation on or off.
size_t m_nsp
Number of homogeneous species in the mixture.
virtual void setThermoMgr(thermo_t &thermo)
Specify the mixture contained in the reactor.
doublereal volume() const
Returns the current volume (m^3) of the reactor.
void restoreState()
Set the state of the Phase object associated with this reactor to the reactor's current state.
doublereal density() const
Returns the current density (kg/m^3) of the reactor's contents.
ReactorNet & network()
The ReactorNet that this reactor belongs to.
doublereal intEnergy_mass() const
Returns the current internal energy (J/kg) of the reactor's contents.
size_t nOutlets()
Return the number of outlet FlowDevice objects connected to this reactor.
doublereal temperature() const
Returns the current temperature (K) of the reactor's contents.
size_t nInlets()
Return the number of inlet FlowDevice objects connected to this reactor.
doublereal enthalpy_mass() const
Returns the current enthalpy (J/kg) of the reactor's contents.
ReactorSurface * surface(size_t n)
Return a reference to the n-th ReactorSurface connected to this reactor.
doublereal mass() const
Returns the mass (kg) of the reactor's contents.
A class representing a network of connected reactors.
Base class for a phase with thermodynamic properties.
Base class for 'walls' (walls, pistons, etc.) connecting reactors.
std::vector< int > vector_int
Vector of ints.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
Namespace for the Cantera kernel.
const int ReservoirType
Magic numbers.