41 Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
47 const scalar deltaPhi,
48 const scalar deltaTheta,
57 absorptionEmission_(absorptionEmission),
58 blackBody_(blackBody),
64 mesh_.time().timeName(),
77 mesh_.time().timeName(),
90 mesh_.time().timeName(),
103 mesh_.time().timeName(),
125 omega_ = 2.0*sinTheta*
Foam::sin(deltaTheta/2.0)*deltaPhi;
126 d_ =
vector(sinTheta*sinPhi, sinTheta*cosPhi, cosTheta);
146 intensityPrefix +
"_" +
name(rayId) +
"_" +
name(lambdaI),
147 mesh_.time().timeName(),
165 if (!IDefaultPtr.
valid())
174 mesh_.time().timeName(),
209 qr_.boundaryFieldRef() = 0.0;
211 scalar maxResidual = -GREAT;
221 fvm::div(Ji, ILambda_[lambdaI],
"div(Ji,Ii_h)")
222 +
fvm::Sp(k*omega_, ILambda_[lambdaI])
227 (k - absorptionEmission_.aDisp(lambdaI))
228 *blackBody_.bLambda(lambdaI)
230 + absorptionEmission_.E(lambdaI)/4
242 const scalar initialRes =
245 maxResidual =
max(initialRes, maxResidual);
258 I_ += ILambda_[lambdaI];
Class black body emission.
#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.
static const word intensityPrefix
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
~radiativeIntensityRay()
Destructor.
Vector< scalar > vector
A scalar version of the templated Vector.
label k
Boltzmann constant.
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const GeometricField< Type, fvPatchField, volMesh > &)
Model to supply absorption and emission coefficients for radiation modelling.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
scalar correct()
Update radiative intensity on i direction.
void reset(T *=0)
If object pointer already set, delete object and set to given.
dimensionedScalar cos(const dimensionedScalar &ds)
A class for handling words, derived from string.
SolverPerformance< Type > solve(fvMatrix< Type > &, const dictionary &)
Solve returning the solution statistics given convergence tolerance.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
bool valid() const
Return true if the autoPtr valid (ie, the pointer is set)
dimensionedScalar sin(const dimensionedScalar &ds)
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
void addIntensity()
Add radiative intensities from all the bands.
word name(const complex &)
Return a string representation of a complex.
dimensionedScalar pow3(const dimensionedScalar &ds)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Mesh data needed to do the Finite Volume discretisation.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
readOption readOpt() const
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Finite Volume Discrete Ordinates Method. Solves the RTE equation for n directions in a participating ...