6#ifndef CT_IDEALGASMOLE_REACTOR_H
7#define CT_IDEALGASMOLE_REACTOR_H
23 using MoleReactor::MoleReactor;
25 string type()
const override {
26 return "IdealGasMoleReactor";
35 void getState(span<double> y)
override;
39 void eval(
double t, span<double> LHS, span<double> RHS)
override;
40 void evalSteady(
double t, span<double> LHS, span<double> RHS)
override;
52 double coeff,
bool includeSpecies=
true)
const override;
54 double coeff)
const override;
56 double coeff)
const override;
58 bool includeComposition=
true)
const override;
IdealGasMoleReactor is a class for ideal gas constant-volume reactors which use a state of moles.
bool preconditionerSupported() const override
Return a false if preconditioning is not supported or true otherwise.
double upperBound(size_t k) const override
Get the upper bound on the k-th component of the local state vector.
void addTemperatureJacobian(SparseTriplets &trips, size_t row, double coeff) const override
Add terms proportional to derivatives with respect to this reactor's temperature.
void eval(double t, span< double > LHS, span< double > RHS) override
Evaluate the reactor governing equations.
void evalSteady(double t, span< double > LHS, span< double > RHS) override
Evaluate the governing equations with modifications for the steady-state solver.
void addSpeciesMassFractionJacobian(SparseTriplets &trips, size_t row, size_t k, double coeff) const override
Add terms proportional to derivatives with respect to a species mass fraction.
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 addEnthalpyJacobian(SparseTriplets &trips, size_t row, double coeff, bool includeComposition=true) const override
Add terms proportional to derivatives of this reactor's specific enthalpy.
void addPressureJacobian(SparseTriplets &trips, size_t row, double coeff, bool includeSpecies=true) const override
Add terms proportional to derivatives with respect to this reactor's pressure.
vector< double > m_uk
Species molar internal energies.
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 getJacobianElements(SparseTriplets &trips) override
Calculate an approximate Jacobian to accelerate preconditioned solvers.
void initialize(double t0=0.0) override
Initialize the reactor.
double m_initialTemperature
Initial temperature [K]; used for steady-state calculations.
double m_initialVolume
Initial volume [m³]; used for steady-state calculations.
void updateState(span< const double > y) override
Set the state of the reactor to correspond to the state vector y.
void getState(span< double > y) override
Get the current state of the reactor.
double m_TotalCv
Total heat capacity ( ) [J/K].
void getJacobianScalingFactors(double &f_species, span< double > f_energy) override
Get scaling factors for the Jacobian matrix terms proportional to .
MoleReactor is meant to serve the same purpose as the reactor class but with a state vector composed ...
Namespace for the Cantera kernel.