39 const scalar stoichCoeff =
reaction_.
lhs()[i].stoichCoeff;
48 const scalar stoichCoeff =
reaction_.
rhs()[i].stoichCoeff;
82 scalar totalMol = 0.0;
104 Info <<
"Maximum products mass concentrations: " <<
nl;
127 const word& modelType,
130 const word& combustionProperties
134 mixture_(dynamic_cast<const basicSpecieMixture&>(this->
thermo())),
148 this->
thermo().phasePropertyName(
"wFuel"),
188 Info<<
"Combustion mode: semi-implicit" <<
endl;
192 Info<<
"Combustion mode: explicit" <<
endl;
219 wSpecie /=
max(fNorm*(Y - fres), scalar(1
e-2));
221 return -fNorm*wSpecie*fres + fNorm*
fvm::Sp(wSpecie, Y);
225 return wSpecie +
fvm::Sp(0.0*wSpecie, Y);
237 return -
qFuel()*(
R(YFuel) & YFuel);
266 fres_[speciei] =
max(YFuel - YO2/
s_, scalar(0));
268 else if (speciei == O2Index)
270 fres_[speciei] =
max(YO2 - YFuel*
s_, scalar(0));
285 fres_[speciei][celli] =
287 * (1.0 + YO2[celli]/
s_.
value() - YFuel[celli]);
292 fres_[speciei][celli] =
void calculateMaxProducts()
Calculate maximum products at stoichiometric mixture.
volScalarField wFuel_
Fuel consumption rate.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedScalar s_
Stoichiometric oxygen-fuel mass ratio.
combustionModel(const word &modelType, const fluidReactionThermo &thermo, const compressibleMomentumTransportModel &turb, const word &combustionProperties=combustionPropertiesName)
Construct from components.
dimensionedScalar stoicRatio_
Stoichiometric air-fuel mass ratio.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
const fvMesh & mesh() const
Return const access to the mesh database.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
label fuelIndex() const
Return the fuel specie index.
void size(const label)
Override size to be inconsistent with allocated storage.
const basicSpecieMixture & mixture_
Reference to the mixture.
Ostream & endl(Ostream &os)
Add newline and flush stream.
scalarList Yprod0_
Mass concentrations at stoichiometric mixture for fres.
Base-class for multi-component fluid thermodynamic properties.
virtual scalar Wi(const label speciei) const =0
Molecular weight of the given specie [kg/kmol].
singleStepCombustion(const word &modelType, const fluidReactionThermo &thermo, const compressibleMomentumTransportModel &turb, const word &combustionProperties)
Construct from components.
PtrList< volScalarField > fres_
List of components residual.
static word timeName(const scalar, const int precision=precision_)
Return time name of given scalar time.
const dimensionSet dimless
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const GeometricField< Type, fvPatchField, volMesh > &)
const Time & time() const
Return the top-level database.
const List< specieCoeffs > & lhs() const
Return the components of the left hand side.
virtual basicSpecieMixture & composition()=0
Return the composition of the multi-component mixture.
static word member(const word &name)
Return member (name without the extension)
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
void calculateqFuel()
Calculate qFuel.
virtual const IOdictionary & properties() const =0
Return the dictionary.
const dimensionSet dimTime
bool semiImplicit_
Semi-implicit (true) or explicit (false) treatment.
A class for handling words, derived from string.
virtual tmp< fvScalarMatrix > R(volScalarField &Y) const
Fuel consumption rate matrix.
const List< scalar > & specieStoichCoeffs() const
Return the stoichiometric coefficient for the reaction.
const Type & value() const
Return const reference to value.
dictionary coeffs_
Dictionary of the model.
virtual bool read()
Update properties from given dictionary.
label fuelIndex_
Fuel specie index.
scalarList specieStoichCoeffs_
Stoichiometric coefficient for the reaction.
const dimensionSet dimVelocity
const dimensionSet dimMass
word name(const complex &)
Return a string representation of a complex.
dimensionedScalar qFuel_
Heat of combustion [J/Kg].
virtual bool read()
Update properties from given dictionary.
const List< specieCoeffs > & rhs() const
Return the components of the right hand side.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const Time & time() const
Return time.
tmp< volScalarField > fres(const label index) const
Return the list of components residual.
PtrList< volScalarField > & Y
const dimensionedScalar & qFuel() const
Return the heat of combustion [J/Kg].
const dimensionSet dimVolume
dimensioned< scalar > mag(const dimensioned< Type > &)
virtual ~singleStepCombustion()
Destructor.
const doubleScalar e
Elementary charge.
List< int > specieProd_
List to indicate if specie is produced/consumed.
A class for managing temporary objects.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
virtual scalar Hf(const label speciei) const =0
Enthalpy of formation [J/kg].
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
reaction reaction_
The single-step reaction.
virtual tmp< volScalarField > Qdot() const
Heat release rate [kg/m/s^3].
void fresCorrect()
Calculates the residual for all components.
void massAndAirStoichRatios()
Calculate air/fuel and oxygen/fuel ratio.
Abstract base class for turbulence models (RAS, LES and laminar).
const List< int > & specieProd() const
Return the list to indicate if specie is produced/consumed.
Calculate the matrix for implicit and explicit sources.
const speciesTable & species() const
Return the table of species.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
const fluidReactionThermo & thermo() const
Return const access to the thermo.
label defaultSpecie() const
Return the index of the default specie.