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(),
154 if (IHeader.headerOk())
165 if (!IDefaultPtr.
valid())
174 mesh_.time().timeName(),
209 Qr_.boundaryField() = 0.0;
211 scalar maxResidual = -GREAT;
219 if (!dom_.cacheDiv())
225 fvm::div(Ji, ILambda_[lambdaI],
"div(Ji,Ii_h)")
226 +
fvm::Sp(k*omega_, ILambda_[lambdaI])
231 (k - absorptionEmission_.aDisp(lambdaI))
232 *blackBody_.bLambda(lambdaI)
234 + absorptionEmission_.E(lambdaI)/4
242 dom_.fvRayDiv(myRayId_, lambdaI)
243 +
fvm::Sp(k*omega_, ILambda_[lambdaI])
248 (k - absorptionEmission_.aDisp(lambdaI))
249 *blackBody_.bLambda(lambdaI)
251 + absorptionEmission_.E(lambdaI)/4
264 const scalar initialRes =
267 maxResidual =
max(initialRes, maxResidual);
280 I_ += ILambda_[lambdaI];
dimensionedScalar pow3(const dimensionedScalar &ds)
~radiativeIntensityRay()
Destructor.
Mesh data needed to do the Finite Volume discretisation.
readOption readOpt() const
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
word name(const complex &)
Return a string representation of a complex.
void reset(T *=0)
If object pointer already set, delete object and set to given.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
bool valid() const
Return true if the autoPtr valid (ie, the pointer is set).
const Type & initialResidual() const
Return initial residual.
Finite Volume Discrete Ordinates Method. Solves the RTE equation for n directions in a participating ...
Class black body emission.
void addIntensity()
Add radiative intensities from all the bands.
SolverPerformance is the class returned by the LduMatrix solver containing performance statistics...
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
tmp< fvMatrix< Type > > Sp(const DimensionedField< scalar, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Model to supply absorption and emission coefficients for radiation modelling.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
scalar correct()
Update radiative intensity on i direction.
T cosPhi(const Vector< T > &a, const Vector< T > &b, const T &tolerance=SMALL)
Calculate angle between a and b in radians.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
label k
Boltzmann constant.
dimensionedScalar cos(const dimensionedScalar &ds)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
static const word intensityPrefix
solverPerformance solve(fvMatrix< Type > &, const dictionary &)
Solve returning the solution statistics given convergence tolerance.
Vector< scalar > vector
A scalar version of the templated Vector.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A class for managing temporary objects.
dimensionedScalar sin(const dimensionedScalar &ds)