39template<
class ReactionThermo,
class ThermoType>
40singleStepCombustion<ReactionThermo, ThermoType>::singleStepCombustion
42 const word& modelType,
45 const word& combustionProperties
48 ThermoCombustion<ReactionThermo>(modelType,
thermo,
turb),
54 this->
thermo().phasePropertyName(
"wFuel"),
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();
140template<
class ReactionThermo,
class ThermoType>
#define R(A, B, C, D, E, F, K, M)
compressible::turbulenceModel & turb
@ NO_READ
Nothing to be read.
@ NO_WRITE
Ignore writing from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const Time & time() const noexcept
Return Time associated with the objectRegistry.
static word member(const word &name)
Return member (name without the extension).
virtual ReactionThermo & thermo()
Return access to the thermo package.
dictionary coeffs_
Dictionary of the model.
const fvMesh & mesh() const
Return const access to the mesh database.
virtual bool read()
Update properties from given dictionary.
virtual tmp< fvScalarMatrix > R(volScalarField &Y) const
Fuel consumption rate matrix.
singleStepReactingMixture< ThermoType > * singleMixturePtr_
Pointer to singleStepReactingMixture mixture.
volScalarField wFuel_
Fuel consumption rate.
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).
bool getBool(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Same as get<bool>(const word&, keyType::option).
Single step reacting mixture.
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)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
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.
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
static constexpr const zero Zero
Global zero (0).
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
const dimensionSet dimVolume(pow3(dimLength))
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
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).
psiReactionThermo & thermo