Go to the documentation of this file.
65 refCast<const mappedPatchBase>(patch().patch());
75 refCast<const mappedPatchBase>(patch().patch());
77 return (refCast<const fvMesh>(mpp.
sampleMesh()));
90 calculatedFvPatchScalarField(
p, iF),
93 absorptionEmission_(NULL),
106 calculatedFvPatchScalarField(
p, iF),
107 method_(methodTypeNames_.read(
dict.lookup(
"mode"))),
109 absorptionEmission_(NULL),
110 transmissivity_(NULL)
116 if (!isA<mappedPatchBase>(
p.patch()))
119 <<
"\n patch type '" <<
p.type()
120 <<
"' not type '" << mappedPatchBase::typeName <<
"'"
121 <<
"\n for patch " <<
p.name()
133 absorptionEmission_.reset
141 transmissivity_.reset
154 if (
dict.found(
"value"))
178 calculatedFvPatchScalarField(ptf,
p, iF, mapper),
181 absorptionEmission_(NULL),
182 transmissivity_(NULL)
192 calculatedFvPatchScalarField(ptf),
195 absorptionEmission_(NULL),
196 transmissivity_(NULL)
207 calculatedFvPatchScalarField(ptf, iF),
210 absorptionEmission_(NULL),
211 transmissivity_(NULL)
221 return absorptionEmission_();
229 return transmissivity_();
241 const fvMesh& nbrMesh = nbrRegion();
246 "radiationProperties"
251 radiation.absorptionEmission().e(bandI)().boundaryField()
258 refCast<const mappedPatchBase>(patch().patch());
273 new scalarField(
"emissivity", dict_, patch().size())
281 const label index = patch().index();
287 absorptionEmission_->e(bandI)().boundaryField()[index]
297 <<
"Please set 'mode' to one of " << methodTypeNames_.toc()
317 const fvMesh& nbrMesh = nbrRegion();
322 "radiationProperties"
327 radiation.absorptionEmission().a(bandI)().boundaryField()
334 refCast<const mappedPatchBase>(patch().patch());
347 const label index = patch().index();
352 absorptionEmission_->a(bandI)().boundaryField()[index]
362 new scalarField(
"absorptivity", dict_, patch().size())
371 <<
"Unimplemented method " << method_ <<
endl
372 <<
"Please set 'mode' to one of "
373 << methodTypeNames_.toc()
391 const fvMesh& nbrMesh = nbrRegion();
396 "radiationProperties"
401 radiation.transmissivity().tauEff(bandI)().boundaryField()
408 refCast<const mappedPatchBase>(patch().patch());
421 const label index = patch().index();
426 transmissivity_->tauEff(bandI)().boundaryField()[index]
438 "transmissivity", dict_, patch().size()
447 <<
"Unimplemented method " << method_ <<
endl
448 <<
"Please set 'mode' to one of "
449 << methodTypeNames_.toc()
467 return (1.0 - tt - ta);
485 word(dict_.lookup(
"absorptionEmissionModel"))
491 word modelCoeffs(modelType +
word(
"Coeffs"));
494 dict_.subDict(modelCoeffs).
write(os);
496 modelType =
word(dict_.lookup(
"transmissivityModel"));
501 modelCoeffs = modelType +
word(
"Coeffs");
505 dict_.subDict(modelCoeffs).
write(os);
512 const scalarField emissivity(
"emissivity", dict_, patch().size());
517 "absorptivity", dict_, patch().size()
523 "transmissivity", dict_, patch().size()
525 transmissivity.
writeEntry(
"transmissivity", os);
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void operator=(const UList< Type > &)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
A class for handling words, derived from string.
static autoPtr< absorptionEmissionModel > New(const dictionary &dict, const fvMesh &mesh)
Selector.
A class for managing temporary objects.
boundaryRadiationPropertiesFvPatchField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
rDeltaT dimensionedInternalField()
const polyPatch & samplePolyPatch() const
Get the patch on the region.
tmp< scalarField > absorptivity(const label bandI=0) const
Calculate corresponding absorptivity field for bandI.
makePatchTypeField(fvPatchScalarField, boundaryRadiationPropertiesFvPatchField)
const fvMesh & nbrRegion() const
Return nbr mesh.
friend Ostream & operator(Ostream &, const fvPatchField< Type > &)
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< scalarField > reflectivity(const label bandI=0) const
Calculate corresponding reflectivity field.
Determines a mapping between patch face centres and mesh cell or face centres and processors they're ...
const absorptionEmissionModel & absorptionEmission() const
Return absorptionEmissionModel.
static autoPtr< transmissivityModel > New(const dictionary &dict, const fvMesh &mesh)
Base class for radiation scattering.
virtual void write(Ostream &) const
Write.
const polyMesh & sampleMesh() const
Get the region mesh.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
virtual Ostream & write(const token &)=0
Write next token to stream.
void distribute(List< Type > &lst) const
Wrapper around map/interpolate data distribution.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
A list of keyword definitions, which are a keyword followed by any number of values (e....
Macros for easy insertion into run-time selection tables.
tmp< scalarField > transmissivity(const label bandI=0) const
Calculate corresponding transmissivity field for bandI.
Mesh data needed to do the Finite Volume discretisation.
errorManip< error > abort(error &err)
const double e
Elementary charge.
errorManipArg< error, int > exit(error &err, const int errNo=1)
void writeEntry(const word &keyword, Ostream &os) const
Write the field as a dictionary entry.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const transmissivityModel & transmissiveModel() const
Return transmissivityModel.
Top level model for radiation modelling.
const dictionary dict_
Dictionary.
Ostream & writeKeyword(const keyType &)
Write the keyword followed by an appropriate indentation.
static const NamedEnum< methodType, 3 > methodTypeNames_
tmp< scalarField > emissivity(const label bandI=0) const
Calculate corresponding emissivity field for bandI.
Model to supply absorption and emission coefficients for radiation modelling.
Foam::fvPatchFieldMapper.
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
dimensionSet trans(const dimensionSet &)
label index() const
Return the index of this patch in the boundaryMesh.
const methodType method_
How to get property.
label nbrPatchIndex() const
Return nbr patch index.
Initialise the NamedEnum HashTable from the static list of names.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...