Cantera  3.1.0a1
IdealGasMoleReactor.h
Go to the documentation of this file.
1 //! @file IdealGasMoleReactor.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_IDEALGASMOLE_REACTOR_H
7 #define CT_IDEALGASMOLE_REACTOR_H
8 
10 
11 namespace Cantera
12 {
13 
14 /**
15  * IdealGasMoleReactor is a class for ideal gas constant-volume reactors which use a
16  * 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 "IdealGasMoleReactor";
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_uk; //!< Species molar internal energies
54 };
55 
56 }
57 
58 #endif
IdealGasMoleReactor is a class for ideal gas constant-volume reactors which use a state of moles.
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.
vector< double > m_uk
Species molar internal energies.
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.
MoleReactor is meant to serve the same purpose as the reactor class but with a state vector composed ...
Definition: MoleReactor.h:21
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:390
Namespace for the Cantera kernel.
Definition: AnyMap.cpp:564