Go to the documentation of this file.
41 absorptionEmissionModel,
42 multiBandZoneAbsorptionEmission,
59 coeffsDict_(
dict.subDict(typeName +
"Coeffs")),
60 absCoeffs_(maxBands_),
61 emiCoeffs_(maxBands_),
67 coeffsDict_.readEntry(
"absorptivity", absCoeffs_);
68 coeffsDict_.readEntry(
"emissivity", emiCoeffs_);
69 nBands_ = absCoeffs_.size();
73 zoneDict.
readEntry(
"absorptivity", zoneAbsorptivity_);
74 zoneDict.
readEntry(
"emissivity", zoneEmisivity_);
76 zoneCells_.setSize(zoneAbsorptivity_.size(), -1);
81 label
zoneID =
mesh.cellZones().findZoneID(iter.key());
85 <<
"Cannot find cellZone " << iter.key() <<
endl
86 <<
"Valid cellZones are " <<
mesh.cellZones().names()
131 const cellZone& cZone =
mesh().cellZones()[zoneCells_[zonei]];
141 zoneAbs[
cellId] = abs[bandI] - absCoeffs_[bandI];
178 const cellZone& cZone =
mesh().cellZones()[zoneCells_[zonei]];
188 zoneEm[
cellId] = emi[bandI] - emiCoeffs_[bandI];
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
A class for managing temporary objects.
static constexpr const zero Zero
Global zero (0)
multiBandZoneAbsorptionEmission(const dictionary &dict, const fvMesh &mesh)
Construct from components.
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual ~multiBandZoneAbsorptionEmission()
Destructor.
#define forAll(list, i)
Loop across all elements in list.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
tmp< volScalarField > ECont(const label bandI) const
Emission contribution.
dimensionedScalar pow3(const dimensionedScalar &ds)
const dictionary & subDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a sub-dictionary.
bool readEntry(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX, bool mandatory=true) const
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Macros for easy insertion into run-time selection tables.
const labelIOList & zoneID
Mesh data needed to do the Finite Volume discretisation.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
defineTypeNameAndDebug(cloudAbsorptionEmission, 0)
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
forAllConstIters(mixture.phases(), phase)
const word & name() const noexcept
The zone name.
const dimensionedScalar e
Elementary charge.
Model to supply absorption and emission coefficients for radiation modelling.
addToRunTimeSelectionTable(absorptionEmissionModel, cloudAbsorptionEmission, dictionary)
tmp< volScalarField > eCont(const label bandI) const
Emission coefficient.
const dimensionSet dimless
Dimensionless.
tmp< volScalarField > aCont(const label bandI) const
Absorption coefficient.