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,
120 template<
class CloudType>
123 CloudType::cloudReset(c);
134 template<
class CloudType>
137 const word& cloudName,
155 cloudCopyPtr_(
nullptr),
156 constProps_(this->particleProperties()),
160 heatTransferModel_(
nullptr),
161 TIntegrator_(
nullptr),
165 radAreaPT4_(
nullptr),
172 this->
name() +
":hsTrans",
175 IOobject::READ_IF_PRESENT,
188 this->
name() +
":hsCoeff",
191 IOobject::READ_IF_PRESENT,
206 this->deleteLostParticles();
210 if (this->
solution().resetSourcesOnStartup())
217 template<
class CloudType>
226 cloudCopyPtr_(
nullptr),
236 radAreaPT4_(
nullptr),
243 this->
name() +
":hsTrans",
259 this->
name() +
":hsCoeff",
278 this->
name() +
":radAreaP",
295 this->
name() +
":radT4",
312 this->
name() +
":radAreaPT4",
326 template<
class CloudType>
336 cloudCopyPtr_(
nullptr),
341 heatTransferModel_(
nullptr),
342 TIntegrator_(
nullptr),
346 radAreaPT4_(
nullptr),
354 template<
class CloudType>
361 template<
class CloudType>
365 const scalar lagrangianDt
368 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
370 parcel.T() = constProps_.T0();
371 parcel.Cp() = constProps_.Cp0();
375 template<
class CloudType>
379 const scalar lagrangianDt,
380 const bool fullyDescribed
383 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
387 template<
class CloudType>
394 clone(this->
name() +
"Copy").ptr()
400 template<
class CloudType>
403 cloudReset(cloudCopyPtr_());
404 cloudCopyPtr_.clear();
408 template<
class CloudType>
411 CloudType::resetSourceTerms();
412 hsTrans_->field() = 0.0;
413 hsCoeff_->field() = 0.0;
417 radAreaP_->field() = 0.0;
418 radT4_->field() = 0.0;
419 radAreaPT4_->field() = 0.0;
424 template<
class CloudType>
430 CloudType::relaxSources(cloudOldTime);
437 this->
relax(radAreaP_(), cloudOldTime.
radAreaP(),
"radiation");
438 this->
relax(radT4_(), cloudOldTime.
radT4(),
"radiation");
444 template<
class CloudType>
447 CloudType::scaleSources();
449 this->scale(hsTrans_(),
"h");
450 this->scale(hsCoeff_(),
"h");
454 this->scale(radAreaP_(),
"radiation");
455 this->scale(radT4_(),
"radiation");
456 this->scale(radAreaPT4_(),
"radiation");
461 template<
class CloudType>
464 CloudType::preEvolve();
466 this->pAmbient() = thermo_.thermo().p().average().value();
470 template<
class CloudType>
475 typename parcelType::template
476 TrackingData<ThermoCloud<CloudType>> td(*
this);
483 template<
class CloudType>
492 template<
class CloudType>
497 Info<<
" Temperature min/max = " << Tmin() <<
", " << Tmax()
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.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const volScalarField & p() const
Return const access to the carrier prressure field.
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.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
parcelType::constantProperties constProps_
Thermo parcel constant properties.
virtual volScalarField & p()
Pressure [Pa].
volScalarField::Internal & radAreaP()
Radiation sum of parcel projected areas [m2].
volScalarField::Internal & radT4()
Radiation sum of parcel temperature^4 [K4].
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
autoPtr< scalarIntegrationScheme > TIntegrator_
Temperature integration.
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.
const dimensionedVector & g
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.
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.