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);
85 <<
"Cannot find cellZone " << iter.key() <<
endl 89 zoneCells_[i++] = zoneID;
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];
void size(const label n)
Older name for setAddressableSize.
errorManipArg< error, int > exit(error &err, const int errNo=1)
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
label find(const T &val, label pos=0) const
Find index of the first occurrence of the value.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
defineTypeNameAndDebug(cloudAbsorptionEmission, 0)
Ostream & endl(Ostream &os)
Add newline and flush stream.
const fvMesh & mesh() const
Reference to the mesh.
Ignore writing from objectRegistry::writeObject()
const dimensionSet dimless
Dimensionless.
Model to supply absorption and emission coefficients for radiation modelling.
const dictionary & subDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a sub-dictionary.
Macros for easy insertion into run-time selection tables.
tmp< volScalarField > eCont(const label bandI) const
Emission coefficient.
tmp< volScalarField > aCont(const label bandI) const
Absorption coefficient.
#define forAll(list, i)
Loop across all elements in list.
bool readEntry(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX, IOobjectOption::readOption readOpt=IOobjectOption::MUST_READ) const
Find entry and assign to T val. FatalIOError if it is found and the number of tokens is incorrect...
const dimensionedScalar e
Elementary charge.
void setSize(const label n)
Alias for resize()
label findZoneID(const word &zoneName) const
Find zone index by name, return -1 if not found.
multiBandZoneAbsorptionEmission(const dictionary &dict, const fvMesh &mesh)
Construct from components.
tmp< volScalarField > ECont(const label bandI) const
Emission contribution.
virtual ~multiBandZoneAbsorptionEmission()
Destructor.
dimensionedScalar pow3(const dimensionedScalar &ds)
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.
addToRunTimeSelectionTable(absorptionEmissionModel, cloudAbsorptionEmission, dictionary)
const word & name() const noexcept
The zone name.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const cellZoneMesh & cellZones() const noexcept
Return cell zone mesh.
wordList names() const
A list of the zone names.
Internal & ref(const bool updateAccessTime=true)
Same as internalFieldRef()
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
forAllConstIters(mixture.phases(), phase)
static constexpr const zero Zero
Global zero (0)