35 template<
class CloudType>
39 return *cloudCopyPtr_;
43 template<
class CloudType>
44 inline const typename CloudType::particleType::constantProperties&
51 template<
class CloudType>
52 inline typename CloudType::particleType::constantProperties&
59 template<
class CloudType>
66 template<
class CloudType>
73 template<
class CloudType>
80 template<
class CloudType>
84 return *heatTransferModel_;
88 template<
class CloudType>
96 template<
class CloudType>
103 template<
class CloudType>
110 <<
"Radiation field requested, but radiation model not active" 118 template<
class CloudType>
125 <<
"Radiation field requested, but radiation model not active" 133 template<
class CloudType>
140 <<
"Radiation field requested, but radiation model not active" 148 template<
class CloudType>
155 <<
"Radiation field requested, but radiation model not active" 163 template<
class CloudType>
170 <<
"Radiation field requested, but radiation model not active" 178 template<
class CloudType>
185 <<
"Radiation field requested, but radiation model not active" 193 template<
class CloudType>
197 const typename parcelType::trackingData& td
200 CloudType::transferToCarrier(
p, td);
202 hsTrans()[
p.cell()] +=
p.nParticle()*
p.mass()*
p.hs();
206 template<
class CloudType>
214 template<
class CloudType>
222 template<
class CloudType>
230 template<
class CloudType>
238 template<
class CloudType>
243 <<
"hsTrans min/max = " <<
min(hsTrans()).value() <<
", " 244 <<
max(hsTrans()).value() <<
nl 245 <<
"hsCoeff min/max = " <<
min(hsCoeff()).value() <<
", " 246 <<
max(hsCoeff()).value() <<
endl;
250 if (this->
solution().semiImplicit(
"h"))
254 Vdt(this->
mesh().V()*this->db().time().deltaT());
259 + hsCoeff()/(
Cp*Vdt)*hs;
266 fvm.source() = -hsTrans()/(this->db().time().deltaT());
276 template<
class CloudType>
279 tmp<volScalarField> tEp
285 this->
name() +
":radiation:Ep",
300 const scalar dt = this->db().time().deltaTValue();
302 const scalar
epsilon = constProps_.epsilon0();
303 const scalarField& sumAreaPT4 = radAreaPT4_->field();
312 template<
class CloudType>
315 tmp<volScalarField> tap
321 this->
name() +
":radiation:ap",
336 const scalar dt = this->db().time().deltaTValue();
338 const scalar
epsilon = constProps_.epsilon0();
348 template<
class CloudType>
358 this->
name() +
":radiation:sigmap",
373 const scalar dt = this->db().time().deltaTValue();
375 const scalar
epsilon = constProps_.epsilon0();
376 const scalar
f = constProps_.f0();
379 sigmap = sumAreaP*(1.0 -
f)*(1.0 -
epsilon)/V/dt;
386 template<
class CloudType>
390 bool nonEmpty =
false;
392 for (
const parcelType&
p : *
this)
394 val =
max(val,
p.T());
407 template<
class CloudType>
411 bool nonEmpty =
false;
413 for (
const parcelType&
p : *
this)
415 val =
min(val,
p.T());
Different types of constants.
const Type & value() const noexcept
Return const reference to value.
fvMatrix< scalar > fvScalarMatrix
Templated class to calculate the fluid-particle heat transfer coefficients based on a specified Nusse...
volScalarField::Internal & hsTrans()
Sensible enthalpy transfer [J/kg].
const ThermoCloud & cloudCopy() const
Return a reference to the cloud copy.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
tmp< volScalarField > sigmap() const
Return tmp equivalent particulate scattering factor.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
constexpr char nl
The newline '\n' character (0x0a)
Ostream & endl(Ostream &os)
Add newline and flush stream.
const volScalarField & p() const
Return const access to the carrier pressure field.
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m2/K4].
volScalarField::Internal & radAreaPT4()
Radiation sum of parcel projected area*temperature^4 [m2K4].
Ignore writing from objectRegistry::writeObject()
const dimensionSet dimless
Dimensionless.
T returnReduce(const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Perform reduction on a copy, using specified binary operation.
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
Templated base class for thermodynamic cloud.
const HeatTransferModel< ThermoCloud< CloudType > > & heatTransfer() const
Return reference to heat transfer model.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
volScalarField::Internal & radAreaP()
Radiation sum of parcel projected areas [m2].
volScalarField::Internal & radT4()
Radiation sum of parcel temperature^4 [K4].
tmp< volScalarField > ap() const
Return tmp equivalent particulate absorption.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const parcelType::constantProperties & constProps() const
Return the constant properties.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
zeroField SuSp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package, and provides:
bool radiation() const
Radiation flag.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
errorManip< error > abort(error &err)
#define DebugInfo
Report an information message using Foam::Info.
const integrationScheme & TIntegrator() const
Return reference to velocity integration.
const volScalarField & Cp
const SLGThermo & thermo() const
Return const access to thermo package.
const volScalarField & T() const
Return const access to the carrier temperature field.
const dimensionSet dimEnergy
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions...
tmp< fvScalarMatrix > Sh(volScalarField &hs) const
Return sensible enthalpy source term [J/kg/m3/s].
dimensionedScalar pow3(const dimensionedScalar &ds)
scalar Tmax() const
Maximum temperature.
tmp< volScalarField > Ep() const
Return tmp equivalent particulate emission.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
Selector class for relaxation factors, solver type and solution.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
A class for managing temporary objects.
bool returnReduceOr(const bool value, const label comm=UPstream::worldComm)
Perform logical (or) MPI Allreduce on a copy. Uses UPstream::reduceOr.
volScalarField::Internal & hsCoeff()
Return coefficient for carrier phase hs equation.
Defines the attributes of an object for which implicit objectRegistry management is supported...
scalar Tmin() const
Minimum temperature.
Do not request registration (bool: false)
static constexpr const zero Zero
Global zero (0)