Cantera  3.2.0a2
Loading...
Searching...
No Matches
ConstPressureMoleReactor.h
Go to the documentation of this file.
1//! @file ConstPressureMoleReactor.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_CONSTPRESSMOLE_REACTOR_H
7#define CT_CONSTPRESSMOLE_REACTOR_H
8
10
11namespace Cantera
12{
13
14/**
15 * ConstPressureMoleReactor is a class for constant-pressure reactors
16 * which use a state of moles.
17 * @since New in %Cantera 3.0
18 * @ingroup reactorGroup
19 */
21{
22public:
23 using MoleReactor::MoleReactor; // inherit constructors
24
25 string type() const override {
26 return "ConstPressureMoleReactor";
27 };
28
29 void getState(double* y) override;
30
31 void initialize(double t0=0.0) override;
32
33 void eval(double t, double* LHS, double* RHS) override;
34
35 vector<size_t> steadyConstraints() const override {
36 throw CanteraError("ConstPressureMoleReactor::steadyConstraints",
37 "ConstPressureMoleReactor is not currently compatible with the steady-state"
38 " solver.\nSee https://github.com/Cantera/enhancements/issues/234");
39 }
40
41 void updateState(double* y) override;
42
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 void resetBadValues(double* y) override;
48
49protected:
50 const size_t m_sidx = 1;
51};
52
53}
54
55#endif
Base class for exceptions thrown by Cantera classes.
ConstPressureMoleReactor is a class for constant-pressure reactors which use a state of moles.
double upperBound(size_t k) const override
Get the upper bound on the k-th component of the local state vector.
void resetBadValues(double *y) override
Reset physically or mathematically problematic values, such as negative species concentrations.
vector< size_t > steadyConstraints() const override
Get the indices of equations that are algebraic constraints when solving the steady-state problem.
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 getState(double *y) override
Get the the current state of the reactor.
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.
MoleReactor is meant to serve the same purpose as the reactor class but with a state vector composed ...
Definition MoleReactor.h:21
Namespace for the Cantera kernel.
Definition AnyMap.cpp:595