Cantera  4.0.0a1
Loading...
Searching...
No Matches
ConstPressureReactor.h
Go to the documentation of this file.
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_CONSTP_REACTOR_H
7#define CT_CONSTP_REACTOR_H
8
9#include "Reactor.h"
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
17 * may be connected to a "flow device" such as a mass flow controller, a
18 * pressure regulator, etc. Additional reactors may be connected to the other
19 * end of the flow device, allowing construction of arbitrary reactor
20 * networks.
21 * @ingroup reactorGroup
22 */
24{
25public:
26 ConstPressureReactor(shared_ptr<Solution> sol, const string& name="(none)");
27 ConstPressureReactor(shared_ptr<Solution> sol, bool clone,
28 const string& name="(none)");
29
30 string type() const override {
31 return "ConstPressureReactor";
32 }
33
34 void getState(double* y) override;
35 void eval(double t, double* LHS, double* RHS) override;
36 void evalSteady(double t, double* LHS, double* RHS) override;
37 vector<size_t> initializeSteady() override;
38
39 void updateState(double* y) override;
40
41 //! Return the index in the solution vector for this reactor of the
42 //! component named *nm*. Possible values for *nm* are "mass", "enthalpy",
43 //! the name of a homogeneous phase species, or the name of a surface
44 //! species.
45 size_t componentIndex(const string& nm) const override;
46 string componentName(size_t k) override;
47 double upperBound(size_t k) const override;
48 double lowerBound(size_t k) const override;
49 void resetBadValues(double* y) override;
50
51protected:
52 double m_initialMass; //!< Initial mass [kg]; used for steady-state calculations
53};
54
55}
56
57#endif
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 resetBadValues(double *y) override
Reset physically or mathematically problematic values, such as negative species concentrations.
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.
string name() const
Return the name of this reactor.
Definition ReactorBase.h:81
Class Reactor is a general-purpose class for stirred reactors.
Definition Reactor.h:47
Namespace for the Cantera kernel.
Definition AnyMap.cpp:595