Cantera  4.0.0a1
Loading...
Searching...
No Matches
IdealGasConstPressureReactor.h
1//! @file ConstPressureReactor.h
2
3// This file is part of Cantera. See License.txt in the top-level directory or
4// at https://cantera.org/license.txt for license and copyright information.
5
6#ifndef CT_IDEALGASCONSTP_REACTOR_H
7#define CT_IDEALGASCONSTP_REACTOR_H
8
10
11namespace Cantera
12{
13
14/**
15 * Class ConstPressureReactor is a class for constant-pressure reactors. The
16 * reactor may have an arbitrary number of inlets and outlets, each of which may
17 * be connected to a "flow device" such as a mass flow controller, a pressure
18 * regulator, etc. Additional reactors may be connected to the other end of the
19 * flow device, allowing construction of arbitrary reactor networks.
20 * @ingroup reactorGroup
21 */
23{
24public:
25 using ConstPressureReactor::ConstPressureReactor; // inherit constructors
26
27 string type() const override {
28 return "IdealGasConstPressureReactor";
29 }
30
31 void getState(double* y) override;
32
33 void initialize(double t0=0.0) override;
34 void eval(double t, double* LHS, double* RHS) override;
35 void evalSteady(double t, double* LHS, double* RHS) override;
36 void updateState(double* y) override;
37 vector<size_t> initializeSteady() override;
38
39 //! Return the index in the solution vector for this reactor of the
40 //! component named *nm*. Possible values for *nm* are "mass",
41 //! "temperature", the name of a homogeneous phase species, or the name of a
42 //! surface species.
43 size_t componentIndex(const string& nm) const override;
44 string componentName(size_t k) override;
45 double upperBound(size_t k) const override;
46 double lowerBound(size_t k) const override;
47
48protected:
49 vector<double> m_hk; //!< Species molar enthalpies
50
51 //! Initial mass [kg]; used for steady-state calculations
53
54 //! Initial temperature [K]; used for steady-state calculations
56};
57}
58
59#endif
Class ConstPressureReactor is a class for constant-pressure reactors.
Class ConstPressureReactor is a class for constant-pressure reactors.
double upperBound(size_t k) const override
Get the upper bound on the k-th component of the local state vector.
void eval(double t, double *LHS, double *RHS) override
Evaluate the reactor governing equations.
string type() const override
String indicating the reactor model implemented.
size_t componentIndex(const string &nm) const override
Return the index in the solution vector for this reactor of the component named nm.
void evalSteady(double t, double *LHS, double *RHS) override
Evaluate the governing equations with modifications for the steady-state solver.
void getState(double *y) override
Get the current state of the reactor.
double m_initialMass
Initial mass [kg]; used for steady-state calculations.
vector< size_t > initializeSteady() override
Initialize the reactor before solving a steady-state problem.
double lowerBound(size_t k) const override
Get the lower bound on the k-th component of the local state vector.
string componentName(size_t k) override
Return the name of the solution component with index i.
void updateState(double *y) override
Set the state of the reactor to correspond to the state vector y.
void initialize(double t0=0.0) override
Initialize the reactor.
double m_initialTemperature
Initial temperature [K]; used for steady-state calculations.
vector< double > m_hk
Species molar enthalpies.
Namespace for the Cantera kernel.
Definition AnyMap.cpp:595