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", zoneEmissivity_);
76 zoneIds_.
resize(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()
89 zoneIds_[numZones] = zoneID;
120 for (
const label zonei : zoneIds_)
123 const auto iter = zoneAbsorptivity_.cfind(zn.
name());
152 for (
const label zonei : zoneIds_)
155 const auto iter = zoneEmissivity_.cfind(zn.
name());
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
static tmp< GeometricField< scalar, fvPatchField, volMesh > > New(const word &name, IOobjectOption::registerOption regOpt, const Mesh &mesh, const dimensionSet &dims, const word &patchFieldType=fvPatchField< scalar >::calculatedType())
@ NO_REGISTER
Do not request registration (bool: false).
void resize(const label len)
Adjust allocated size of list.
A List with indirect addressing. Like IndirectList but does not store addressing.
void size(const label n)
Older name for setAddressableSize.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
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, 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,...
Mesh data needed to do the Finite Volume discretisation.
Model to supply absorption and emission coefficients for radiation modelling.
virtual tmp< volScalarField > e(const label bandI=0) const
Emission coefficient (net).
virtual tmp< volScalarField > a(const label bandI=0) const
Absorption coefficient (net).
const fvMesh & mesh() const
Reference to the mesh.
absorptionEmissionModel(const dictionary &dict, const fvMesh &mesh)
Construct from components.
const dictionary & dict() const
Reference to the dictionary.
multiBandZoneAbsorptionEmission radiation absorption/emission for solids.
static const int maxBands_
Maximum number of bands.
tmp< volScalarField > eCont(const label bandI) const
Emission coefficient.
tmp< volScalarField > ECont(const label bandI) const
Emission contribution.
multiBandZoneAbsorptionEmission(const dictionary &dict, const fvMesh &mesh)
Construct from components.
tmp< volScalarField > aCont(const label bandI) const
Absorption coefficient.
virtual ~multiBandZoneAbsorptionEmission()
Destructor.
A class for managing temporary objects.
const word & name() const noexcept
The zone name.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Namespace for radiation modelling.
const dimensionSet dimless
Dimensionless.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Ostream & endl(Ostream &os)
Add newline and flush stream.
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...
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
errorManipArg< error, int > exit(error &err, const int errNo=1)
List< scalar > scalarList
List of scalar.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
#define forAllConstIters(container, iter)
Iterate across all elements of the container object with const access.