35 namespace radiationModels
37 namespace absorptionEmissionModels
43 absorptionEmissionModel,
55 Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::X
63 tmp<scalarField> tXj(
new scalarField(T.primitiveField().size(), 0.0));
66 tmp<scalarField> tRhoInv(
new scalarField(T.primitiveField().size(), 0.0));
69 forAll(mixture_.Y(), specieI)
76 Yi[iCell]/mixture_.rho(specieI, p[iCell], T[iCell]);
80 const label mySpecieI = mixture_.species()[specie];
83 Xj[iCell] = Yj[iCell]/mixture_.rho(mySpecieI, p[iCell], T[iCell]);
101 mixture_(dynamic_cast<const basicSpecieMixture&>(thermo_)),
102 solidData_(mixture_.Y().size())
104 if (!isA<basicSpecieMixture>(thermo_))
107 <<
"Model requires a multi-component thermo package" 117 if (!iter().isDict())
121 const word& key = iter().keyword();
122 if (!mixture_.contains(key))
125 <<
" specie: " << key <<
" is not found in the solid mixture" 127 <<
" specie is the mixture are:" << mixture_.species() <<
nl 130 speciesNames_.insert(key, nFunc);
132 dict.
lookup(
"absorptivity") >> solidData_[nFunc][absorptivity];
133 dict.
lookup(
"emissivity") >> solidData_[nFunc][emissivity];
148 Foam::radiationModels::absorptionEmissionModels::greyMeanSolid::calc
150 const label propertyId
167 extrapolatedCalculatedFvPatchVectorField::typeName
175 if (mixture_.contains(iter.key()))
177 a += solidData_[iter()][propertyId]*X(iter.key());
181 ta.
ref().correctBoundaryConditions();
192 return calc(emissivity);
202 return calc(absorptivity);
addToRunTimeSelectionTable(absorptionEmissionModel, greyMeanCombustion, dictionary)
#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.
tmp< volScalarField > aCont(const label bandI=0) const
Absorption coefficient for continuous phase.
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
tmp< volScalarField > eCont(const label bandI=0) const
Emission coefficient for continuous phase.
T & ref() const
Return non-const reference or generate a fatal error.
Unit conversion functions.
Ostream & endl(Ostream &os)
Add newline and flush stream.
defineTypeNameAndDebug(greyMeanCombustion, 0)
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
virtual ~greyMeanSolid()
Destructor.
Macros for easy insertion into run-time selection tables.
greyMeanSolid(const dictionary &dict, const fvMesh &mesh)
Construct from components.
const word dictName() const
Return the local dictionary name (final part of scoped name)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dictionary & optionalSubDict(const word &) const
Find and return a sub-dictionary if found.
A class for handling words, derived from string.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
errorManip< error > abort(error &err)
tmp< GeometricField< Type, PatchField, GeoMesh > > T() const
Return transpose (only if it is a tensor field)
Fundamental solid thermodynamic properties.
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
#define WarningInFunction
Report a warning using Foam::Warning.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Mesh data needed to do the Finite Volume discretisation.
Model to supply absorption and emission coefficients for radiation modelling.
A class for managing temporary objects.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.