34namespace combustionModels
39template<
class ReactionThermo,
class ThermoType>
42 const word& modelType,
45 const word& combustionProperties
49 singleMixturePtr_(nullptr),
54 this->
thermo().phasePropertyName(
"wFuel"),
63 semiImplicit_(this->coeffs_.getBool(
"semiImplicit"))
76 <<
"Inconsistent thermo package for " << this->
type() <<
" model:\n"
78 <<
"Please select a thermo package based on "
84 Info<<
"Combustion mode: semi-implicit" <<
endl;
88 Info<<
"Combustion mode: explicit" <<
endl;
95template<
class ReactionThermo,
class ThermoType>
102template<
class ReactionThermo,
class ThermoType>
108 const label specieI =
109 this->
thermo().composition().species().find(
Y.member());
113 wFuel_*singleMixturePtr_->specieStoichCoeffs()[specieI]
118 const label fNorm = singleMixturePtr_->specieProd()[specieI];
120 wSpecie /=
max(fNorm*(
Y - fres), scalar(1
e-2));
122 return -fNorm*wSpecie*fres + scalar(fNorm)*
fvm::Sp(wSpecie,
Y);
125 return wSpecie +
fvm::Sp(0.0*wSpecie,
Y);
129template<
class ReactionThermo,
class ThermoType>
133 const label fuelI = singleMixturePtr_->fuelIndex();
137 return -singleMixturePtr_->qFuel()*(
R(YFuel) & YFuel);
141template<
class ReactionThermo,
class ThermoType>
#define R(A, B, C, D, E, F, K, M)
compressible::turbulenceModel & turb
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Thermo model wrapper for combustion models.
virtual ReactionThermo & thermo()
Return access to the thermo package.
Base class for combustion models using singleStepReactingMixture.
singleStepReactingMixture< ThermoType > * singleMixturePtr_
Pointer to singleStepReactingMixture mixture.
virtual tmp< volScalarField > Qdot() const
Heat release rate [kg/m/s3].
bool semiImplicit_
Semi-implicit (true) or explicit (false) treatment.
virtual ~singleStepCombustion()
Destructor.
virtual bool read()
Update properties from given dictionary.
Abstract base class for turbulence models (RAS, LES and laminar).
Single step reacting mixture.
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
PtrList< volScalarField > & Y
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Calculate the finiteVolume matrix for implicit and explicit sources.
zeroField Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const TargetType * isA(const Type &t)
Check if dynamic_cast to TargetType is possible.
messageStream Info
Information stream (stdout output on master, null elsewhere)
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Ostream & endl(Ostream &os)
Add newline and flush stream.
static constexpr const zero Zero
Global zero (0)
const dimensionSet dimVolume(pow3(dimLength))
errorManipArg< error, int > exit(error &err, const int errNo=1)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
constexpr char nl
The newline '\n' character (0x0a)