35template<
class CloudType>
39 return *cloudCopyPtr_;
43template<
class CloudType>
44inline const typename CloudType::particleType::constantProperties&
51template<
class CloudType>
52inline typename CloudType::particleType::constantProperties&
59template<
class CloudType>
66template<
class CloudType>
73template<
class CloudType>
80template<
class CloudType>
88template<
class CloudType>
96template<
class CloudType>
103template<
class CloudType>
110 <<
"Radiation field requested, but radiation model not active"
118template<
class CloudType>
125 <<
"Radiation field requested, but radiation model not active"
133template<
class CloudType>
140 <<
"Radiation field requested, but radiation model not active"
148template<
class CloudType>
155 <<
"Radiation field requested, but radiation model not active"
163template<
class CloudType>
170 <<
"Radiation field requested, but radiation model not active"
178template<
class CloudType>
185 <<
"Radiation field requested, but radiation model not active"
193template<
class CloudType>
197 const typename parcelType::trackingData&
td
200 CloudType::transferToCarrier(
p,
td);
202 hsTrans()[
p.cell()] +=
p.nParticle()*
p.mass()*
p.hs();
206template<
class CloudType>
214template<
class CloudType>
222template<
class CloudType>
230template<
class CloudType>
238template<
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());
276template<
class CloudType>
292 const scalar dt = this->
db().time().deltaTValue();
304template<
class CloudType>
320 const scalar dt = this->
db().time().deltaTValue();
332template<
class CloudType>
349 const scalar dt = this->
db().time().deltaTValue();
362template<
class CloudType>
366 bool nonEmpty =
false;
370 val =
max(val,
p.T());
383template<
class CloudType>
387 bool nonEmpty =
false;
389 for (
const parcelType&
p : *
this)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
DimensionedField< scalar, volMesh > Internal
Templated class to calculate the fluid-particle heat transfer coefficients based on a specified Nusse...
const objectRegistry & db() const noexcept
Return the local objectRegistry.
static word scopedName(const std::string &scope, const word &name)
Create scope:name or scope_name string.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
Templated base class for thermodynamic cloud.
const parcelType::constantProperties & constProps() const
Return the constant properties.
volScalarField::Internal & radAreaP()
Radiation sum of parcel projected areas [m2].
volScalarField::Internal & hsCoeff()
Return coefficient for carrier phase hs equation.
volScalarField::Internal & radAreaPT4()
Radiation sum of parcel projected area*temperature^4 [m2K4].
const volScalarField & T() const
Return const access to the carrier temperature field.
bool radiation() const
Radiation flag.
scalar Tmin() const
Minimum temperature.
const volScalarField & p_
Pressure [Pa].
volScalarField::Internal & radT4()
Radiation sum of parcel temperature^4 [K4].
autoPtr< volScalarField::Internal > hsCoeff_
Coefficient for carrier phase hs equation [W/K].
autoPtr< volScalarField::Internal > radT4_
Radiation sum of parcel temperature^4.
autoPtr< integrationScheme > TIntegrator_
Temperature integration.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
Switch radiation_
Include radiation.
const SLGThermo & thermo() const
Return const access to thermo package.
const integrationScheme & TIntegrator() const
Return reference to velocity integration.
const ThermoCloud & cloudCopy() const
Return a reference to the cloud copy.
scalar Tmax() const
Maximum temperature.
tmp< volScalarField > sigmap() const
Return tmp equivalent particulate scattering factor.
const HeatTransferModel< ThermoCloud< CloudType > > & heatTransfer() const
Return reference to heat transfer model.
tmp< fvScalarMatrix > Sh(volScalarField &hs) const
Return sensible enthalpy source term [J/kg/m3/s].
autoPtr< HeatTransferModel< ThermoCloud< CloudType > > > heatTransferModel_
Heat transfer model.
parcelType::constantProperties constProps_
Thermo parcel constant properties.
autoPtr< volScalarField::Internal > radAreaPT4_
Radiation sum of parcel projected areas * temperature^4.
volScalarField::Internal & hsTrans()
Sensible enthalpy transfer [J/kg].
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
const SLGThermo & thermo_
SLG thermodynamics package.
const volScalarField & T_
Temperature [K].
const volScalarField & p() const
Return const access to the carrier pressure field.
tmp< volScalarField > Ep() const
Return tmp equivalent particulate emission.
autoPtr< volScalarField::Internal > hsTrans_
Sensible enthalpy transfer [J/kg].
autoPtr< volScalarField::Internal > radAreaP_
Radiation sum of parcel projected areas.
tmp< volScalarField > ap() const
Return tmp equivalent particulate absorption.
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions.
const Time & time() const noexcept
Return time registry.
IOobject newIOobject(const word &name, IOobjectOption ioOpt) const
Create an IOobject at the current time instance (timeName) with the specified options.
Selector class for relaxation factors, solver type and solution.
A class for managing temporary objects.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
const volScalarField & Cp
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
return returnReduce(nRefine-oldNRefine, sumOp< label >())
#define DebugInfo
Report an information message using Foam::Info.
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m2/K4].
Different types of constants.
Namespace of functions to calculate implicit derivatives returning a matrix.
zeroField SuSp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
bool returnReduceOr(const bool value, const int communicator=UPstream::worldComm)
Perform logical (or) MPI Allreduce on a copy. Uses UPstream::reduceOr.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
const dimensionSet dimless
Dimensionless.
const dimensionSet dimEnergy
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & endl(Ostream &os)
Add newline and flush stream.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
errorManip< error > abort(error &err)
static constexpr const zero Zero
Global zero (0).
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
constexpr char nl
The newline '\n' character (0x0a).