33 template<
class CloudType>
36 heatTransferModel_.reset
40 this->subModelProperties(),
50 this->
solution().integrationSchemes()
56 this->subModelProperties().lookup(
"radiation") >> radiation_;
67 this->
name() +
":radAreaP",
70 IOobject::READ_IF_PRESENT,
84 this->
name() +
":radT4",
87 IOobject::READ_IF_PRESENT,
101 this->
name() +
":radAreaPT4",
104 IOobject::READ_IF_PRESENT,
115 template<
class CloudType>
118 CloudType::cloudReset(c);
129 template<
class CloudType>
132 const word& cloudName,
150 cloudCopyPtr_(
nullptr),
151 constProps_(this->particleProperties()),
155 heatTransferModel_(
nullptr),
156 TIntegrator_(
nullptr),
160 radAreaPT4_(
nullptr),
167 this->
name() +
":hsTrans",
170 IOobject::READ_IF_PRESENT,
183 this->
name() +
":hsCoeff",
186 IOobject::READ_IF_PRESENT,
201 this->deleteLostParticles();
205 if (this->
solution().resetSourcesOnStartup())
212 template<
class CloudType>
221 cloudCopyPtr_(
nullptr),
231 radAreaPT4_(
nullptr),
238 this->
name() +
":hsTrans",
254 this->
name() +
":hsCoeff",
273 this->
name() +
":radAreaP",
290 this->
name() +
":radT4",
307 this->
name() +
":radAreaPT4",
321 template<
class CloudType>
331 cloudCopyPtr_(
nullptr),
336 heatTransferModel_(
nullptr),
337 TIntegrator_(
nullptr),
341 radAreaPT4_(
nullptr),
349 template<
class CloudType>
356 template<
class CloudType>
360 const scalar lagrangianDt
363 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
365 parcel.T() = constProps_.T0();
366 parcel.Cp() = constProps_.Cp0();
370 template<
class CloudType>
374 const scalar lagrangianDt,
375 const bool fullyDescribed
378 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
382 template<
class CloudType>
395 template<
class CloudType>
398 cloudReset(cloudCopyPtr_());
399 cloudCopyPtr_.clear();
403 template<
class CloudType>
406 CloudType::resetSourceTerms();
407 hsTrans_->field() = 0.0;
408 hsCoeff_->field() = 0.0;
412 radAreaP_->field() = 0.0;
413 radT4_->field() = 0.0;
414 radAreaPT4_->field() = 0.0;
419 template<
class CloudType>
425 CloudType::relaxSources(cloudOldTime);
432 this->
relax(radAreaP_(), cloudOldTime.
radAreaP(),
"radiation");
433 this->
relax(radT4_(), cloudOldTime.
radT4(),
"radiation");
439 template<
class CloudType>
442 CloudType::scaleSources();
444 this->scale(hsTrans_(),
"h");
445 this->scale(hsCoeff_(),
"h");
449 this->scale(radAreaP_(),
"radiation");
450 this->scale(radT4_(),
"radiation");
451 this->scale(radAreaPT4_(),
"radiation");
456 template<
class CloudType>
459 CloudType::preEvolve();
461 this->pAmbient() = thermo_.thermo().p().average().value();
465 template<
class CloudType>
470 typename parcelType::trackingData td(*
this);
472 this->
solve(*
this, td);
477 template<
class CloudType>
486 template<
class CloudType>
491 Info<<
" Temperature min/max = " << Tmin() <<
", " << Tmax()
autoPtr< integrationScheme > TIntegrator_
Temperature integration.
Switch radiation_
Include radiation.
virtual tmp< volScalarField > mu() const =0
Dynamic viscosity of mixture [kg/m/s].
DSMCCloud< dsmcParcel > CloudType
const SLGThermo & thermo_
SLG thermodynamics package.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
Templated heat transfer model class.
volScalarField::Internal & hsTrans()
Sensible enthalpy transfer [J/kg].
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const HashSet< word > &selectedFields, LIFOStack< regIOobject *> &storedObjects)
Read the selected GeometricFields of the specified type.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
void restoreState()
Reset the current cloud to the previously stored state.
ThermoCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const dimensionedVector &g, const SLGThermo &thermo, bool readFields=true)
Construct given carrier gas fields.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const volScalarField & p() const
Return const access to the carrier pressure field.
virtual volScalarField & p()
Pressure [Pa].
virtual const volScalarField & T() const
Temperature [K].
volScalarField::Internal & radAreaPT4()
Radiation sum of parcel projected area*temperature^4 [m2K4].
void cloudReset(ThermoCloud< CloudType > &c)
Reset state of cloud.
void preEvolve()
Pre-evolve.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Templated base class for thermodynamic cloud.
parcelType::constantProperties constProps_
Thermo parcel constant properties.
volScalarField::Internal & radAreaP()
Radiation sum of parcel projected areas [m^2].
volScalarField::Internal & radT4()
Radiation sum of parcel temperature^4 [K4].
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
autoPtr< BasicCompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const typename BasicCompressibleMomentumTransportModel::transportModel &transport)
A class for handling words, derived from string.
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package, and provides:
Base cloud calls templated on particle type.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
Virtual abstract base class for templated ThermoCloud.
const SLGThermo & thermo() const
Return const access to thermo package.
const volScalarField & T() const
Return const access to the carrier temperature field.
word name(const complex &)
Return a string representation of a complex.
const dimensionSet dimEnergy
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
void resetSourceTerms()
Reset the cloud source terms.
void evolve()
Evolve the cloud.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
void info()
Print cloud information.
Mesh data needed to do the Finite Volume discretisation.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
dimensionedScalar pow4(const dimensionedScalar &ds)
void scaleSources()
Apply scaling to (transient) cloud sources.
Selector class for relaxation factors, solver type and solution.
autoPtr< HeatTransferModel< ThermoCloud< CloudType > > > heatTransferModel_
Heat transfer model.
const dimensionedVector & g
volScalarField::Internal & hsCoeff()
Return coefficient for carrier phase hs equation.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
void storeState()
Store the current cloud state.
void setModels()
Set cloud sub-models.
const dimensionSet dimArea(sqr(dimLength))
const fluidThermo & thermo() const
Return reference to the thermo database.
void relaxSources(const ThermoCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
virtual ~ThermoCloud()
Destructor.