35template<
class ReactionThermo>
36Foam::combustionModels::laminar<ReactionThermo>::laminar
38 const word& modelType,
41 const word& combustionProperties
44 ChemistryCombustion<ReactionThermo>
51 integrateReactionRate_
56 if (integrateReactionRate_)
58 Info<<
" using integrated reaction rate" <<
endl;
62 Info<<
" using instantaneous reaction rate" <<
endl;
69template<
class ReactionThermo>
76template<
class ReactionThermo>
84template<
class ReactionThermo>
89 if (integrateReactionRate_)
97 if (this->coeffs().
readIfPresent(
"maxIntegrationTime", maxTime))
99 this->chemistryPtr_->solve
101 min(1.0/rDeltaT, maxTime)()
106 this->chemistryPtr_->solve((1.0/rDeltaT)());
111 this->chemistryPtr_->solve(this->
mesh().time().deltaTValue());
116 this->chemistryPtr_->calculate();
122template<
class ReactionThermo>
127 auto&
Su = tSu.ref();
131 const label specieI =
132 this->
thermo().composition().species().find(Y.member());
134 Su += this->chemistryPtr_->RR(specieI);
141template<
class ReactionThermo>
155 tQdot.ref() = this->chemistryPtr_->Qdot();
162template<
class ReactionThermo>
167 integrateReactionRate_ =
168 this->coeffs().getOrDefault(
"integrateReactionRate",
true);
propsDict readIfPresent("fields", acceptFields)
compressible::turbulenceModel & turb
autoPtr< BasicChemistryModel< ReactionThermo > > chemistryPtr_
Pointer to chemistry model.
virtual ReactionThermo & thermo()
Return access to the thermo package.
static tmp< GeometricField< scalar, fvPatchField, volMesh > > New(const word &name, IOobjectOption::registerOption regOpt, const Mesh &mesh, const dimensionSet &dims, const word &patchFieldType=fvPatchField< scalar >::calculatedType())
@ NO_REGISTER
Do not request registration (bool: false).
const Time & time() const noexcept
Return Time associated with the objectRegistry.
static word member(const word &name)
Return member (name without the extension).
const dictionary & coeffs() const
Return const dictionary of the model.
Switch active() const noexcept
Is combustion active?
virtual bool read()
Update properties from given dictionary.
tmp< volScalarField > tc() const
Return the chemical time scale.
virtual void correct()
Correct combustion rate.
virtual tmp< fvScalarMatrix > R(volScalarField &Y) const
Fuel consumption rate matrix.
virtual ~laminar()
Destructor.
virtual tmp< volScalarField > Qdot() const
Heat release rate [kg/m/s3].
virtual bool read()
Update properties from given dictionary.
Abstract base class for turbulence models (RAS, LES and laminar).
T getOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T, or return the given default value. FatalIOError if it is found and the number of...
static const volScalarField & localRDeltaT(const fvMesh &mesh)
Return the reciprocal of the local time-step.
static bool enabled(const fvMesh &mesh)
Return true if LTS is enabled.
A class for managing temporary objects.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
A class for handling words, derived from Foam::string.
PtrList< volScalarField > & Y
Calculate the finiteVolume matrix for implicit and explicit sources.
const dimensionSet dimEnergy
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
messageStream Info
Information stream (stdout output on master, null elsewhere).
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Ostream & endl(Ostream &os)
Add newline and flush stream.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
static constexpr const zero Zero
Global zero (0).
const dimensionSet dimVolume(pow3(dimLength))
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
void Su(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
psiReactionThermo & thermo