Cantera  3.1.0a1
IdealGasConstPressureMoleReactor.h
Go to the documentation of this file.
1 //! @file IdealGasConstPressureMoleReactor.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_IDEALGASCONSTPRESSMOLE_REACTOR_H
7 #define CT_IDEALGASCONSTPRESSMOLE_REACTOR_H
8 
10 
11 namespace Cantera
12 {
13 
14 /**
15  * IdealGasConstPressureMoleReactor is a class for ideal gas constant-pressure reactors
16  * which use a state of moles.
17  * @since New in %Cantera 3.0
18  * @ingroup reactorGroup
19  */
21 {
22 public:
24 
25  string type() const override {
26  return "IdealGasConstPressureMoleReactor";
27  };
28 
29  size_t componentIndex(const string& nm) const override;
30 
31  string componentName(size_t k) override;
32 
33  void setThermoMgr(ThermoPhase& thermo) override;
34 
35  void getState(double* y) override;
36 
37  void initialize(double t0=0.0) override;
38 
39  void eval(double t, double* LHS, double* RHS) override;
40 
41  void updateState(double* y) override;
42 
43  //! Calculate an approximate Jacobian to accelerate preconditioned solvers
44 
45  //! Neglects derivatives with respect to mole fractions that would generate a
46  //! fully-dense Jacobian. Currently also neglects terms related to interactions
47  //! between reactors, for example via inlets and outlets.
48  Eigen::SparseMatrix<double> jacobian() override;
49 
50  bool preconditionerSupported() const override { return true; };
51 
52 protected:
53  vector<double> m_hk; //!< Species molar enthalpies
54 };
55 
56 }
57 
58 #endif
ConstPressureMoleReactor is a class for constant-pressure reactors which use a state of moles.
IdealGasConstPressureMoleReactor is a class for ideal gas constant-pressure reactors which use a stat...
void setThermoMgr(ThermoPhase &thermo) override
Specify the mixture contained in the reactor.
bool preconditionerSupported() const override
Return a false if preconditioning is not supported or true otherwise.
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.
Eigen::SparseMatrix< double > jacobian() override
Calculate an approximate Jacobian to accelerate preconditioned solvers.
void getState(double *y) override
Get the the current state of the reactor.
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.
vector< double > m_hk
Species molar enthalpies.
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:390
Namespace for the Cantera kernel.
Definition: AnyMap.cpp:564