40#ifndef StandardChemistryModel_H
41#define StandardChemistryModel_H
61template<
class ReactionThermo,
class ThermoType>
62class StandardChemistryModel
64 public BasicChemistryModel<ReactionThermo>,
71 template<
class DeltaTType>
72 scalar
solve(
const DeltaTType& deltaT);
75 StandardChemistryModel
77 const StandardChemistryModel<ReactionThermo, ThermoType>&
83 const StandardChemistryModel<ReactionThermo, ThermoType>&
138 StandardChemistryModel(ReactionThermo&
thermo);
154 virtual inline label
nSpecie()
const;
160 inline scalar
Treact()
const;
229 const label reactionI,
235 virtual scalar
solve(
const scalar deltaT);
251 inline virtual label
nEqns()
const;
psiReactionThermo & thermo()
DimensionedField< scalar, volMesh > Internal
ODESystem()
Construct null.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Simple extension of ReactionThermo to handle reaction kinetics in addition to the equilibrium thermod...
virtual tmp< volScalarField > tc() const
Return the chemical time scale.
const PtrList< ThermoType > & specieThermo() const
Thermodynamic data of the species.
virtual tmp< volScalarField::Internal > calculateRR(const label reactionI, const label speciei) const
Return reaction rate of the speciei in reactionI.
PtrList< volScalarField::Internal > & RR()
Write access to chemical source terms.
const volScalarField::Internal & RR(const label i) const
Return const access to the chemical source terms for specie, i.
const PtrList< constGasHThermoPhysics > & specieThermo_
virtual scalar solve(const scalar deltaT)
Solve the reaction system for the given time step.
constGasHThermoPhysics thermoType
PtrList< volScalarField > & Y_
virtual void omega(const scalarField &c, const scalar T, const scalar p, scalarField &dcdt) const
dc/dt = omega, rate of change in concentration, for each species
virtual void derivatives(const scalar t, const scalarField &c, scalarField &dcdt) const
Calculate the derivatives in dydx.
virtual ~StandardChemistryModel()
Destructor.
const PtrList< Reaction< constGasHThermoPhysics > > & reactions_
virtual scalar omegaI(label iReaction, const scalarField &c, const scalar T, const scalar p, scalar &pf, scalar &cf, label &lRef, scalar &pr, scalar &cr, label &rRef) const
Return the reaction rate for iReaction and the reference.
virtual label nReaction() const
The number of reactions.
virtual volScalarField::Internal & RR(const label i)
Return non const access to chemical source terms [kg/m3/s].
virtual void solve(scalarField &c, scalar &T, scalar &p, scalar &deltaT, scalar &subDeltaT) const =0
scalar Treact() const
Temperature below which the reaction rates are assumed 0.
virtual scalar omega(const Reaction< ThermoType > &r, const scalarField &c, const scalar T, const scalar p, scalar &pf, scalar &cf, label &lRef, scalar &pr, scalar &cr, label &rRef) const
Return the reaction rate for reaction r and the reference.
TypeName("standard")
Runtime type information.
virtual label nEqns() const
Number of ODE's to solve.
PtrList< volScalarField::Internal > RR_
virtual label nSpecie() const
The number of species.
virtual scalar solve(const scalarField &deltaT)
Solve the reaction system for the given time step.
StandardChemistryModel(ReactionThermo &thermo)
Construct from thermo.
const PtrList< Reaction< ThermoType > > & reactions() const
The reactions.
virtual tmp< volScalarField > Qdot() const
Return the heat release rate [kg/m/s3].
scalar & Treact()
Temperature below which the reaction rates are assumed 0.
virtual void jacobian(const scalar t, const scalarField &c, scalarField &dcdt, scalarSquareMatrix &dfdc) const
Calculate the Jacobian of the system.
virtual void calculate()
Calculates the reaction rates.
Mesh data needed to do the Finite Volume discretisation.
A class for managing temporary objects.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
SquareMatrix< scalar > scalarSquareMatrix
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.