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;
264 auto& fvm = tfvm.ref();
266 fvm.source() = -hsTrans()/(this->db().time().deltaT());
276 template<
class CloudType>
292 const scalar dt = this->db().time().deltaTValue();
294 const scalar
epsilon = constProps_.epsilon0();
295 const scalarField& sumAreaPT4 = radAreaPT4_->field();
304 template<
class CloudType>
320 const scalar dt = this->db().time().deltaTValue();
322 const scalar
epsilon = constProps_.epsilon0();
332 template<
class CloudType>
348 scalarField& sigmap = tsigmap.ref().primitiveFieldRef();
349 const scalar dt = this->db().time().deltaTValue();
351 const scalar
epsilon = constProps_.epsilon0();
352 const scalar
f = constProps_.f0();
355 sigmap = sumAreaP*(1.0 -
f)*(1.0 -
epsilon)/V/dt;
362 template<
class CloudType>
366 bool nonEmpty =
false;
368 for (
const parcelType&
p : *
this)
370 val =
max(val,
p.T());
383 template<
class CloudType>
387 bool nonEmpty =
false;
389 for (
const parcelType&
p : *
this)
391 val =
min(val,
p.T());
Different types of constants.
const Type & value() const noexcept
Return const reference to value.
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.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
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].
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.
volScalarField::Internal & radAreaP()
Radiation sum of parcel projected areas [m2].
volScalarField::Internal & radT4()
Radiation sum of parcel temperature^4 [K4].
static word scopedName(const std::string &scope, const word &name)
Create scope:name or scope_name string.
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.
scalar Tmin() const
Minimum temperature.
static constexpr const zero Zero
Global zero (0)