33 template<
class CloudType>
36 heatTransferModel_.reset
40 this->subModelProperties(),
45 compositionModel_.reset
49 this->subModelProperties(),
59 this->
solution().integrationSchemes()
65 this->subModelProperties().lookup(
"radiation") >> radiation_;
76 this->
name() +
":radAreaP",
79 IOobject::READ_IF_PRESENT,
93 this->
name() +
":radT4",
96 IOobject::READ_IF_PRESENT,
110 this->
name() +
":radAreaPT4",
113 IOobject::READ_IF_PRESENT,
124 template<
class CloudType>
127 CloudType::cloudReset(c);
140 template<
class CloudType>
143 const word& cloudName,
148 const bool readFields
151 CloudType(cloudName, rho, U, g, carrierThermo,
false),
152 cloudCopyPtr_(
nullptr),
153 constProps_(this->particleProperties()),
154 carrierThermo_(carrierThermo),
155 thermo_(carrierThermo_),
156 T_(carrierThermo.
T()),
157 p_(carrierThermo.
p()),
158 heatTransferModel_(
nullptr),
159 compositionModel_(
nullptr),
160 TIntegrator_(
nullptr),
164 radAreaPT4_(
nullptr),
171 this->
name() +
":hsTrans",
174 IOobject::READ_IF_PRESENT,
187 this->
name() +
":hsCoeff",
190 IOobject::READ_IF_PRESENT,
203 this->deleteLostParticles();
206 if (this->
solution().resetSourcesOnStartup())
213 template<
class CloudType>
221 cloudCopyPtr_(
nullptr),
233 radAreaPT4_(
nullptr),
240 this->
name() +
":hsTrans",
256 this->
name() +
":hsCoeff",
275 this->
name() +
":radAreaP",
292 this->
name() +
":radT4",
309 this->
name() +
":radAreaPT4",
323 template<
class CloudType>
332 cloudCopyPtr_(
nullptr),
338 heatTransferModel_(
nullptr),
339 compositionModel_(
nullptr),
340 TIntegrator_(
nullptr),
344 radAreaPT4_(
nullptr),
352 template<
class CloudType>
359 template<
class CloudType>
363 const scalar lagrangianDt
366 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
368 parcel.T() = constProps_.T0();
369 parcel.Cp() = constProps_.Cp0();
373 template<
class CloudType>
377 const scalar lagrangianDt,
378 const bool fullyDescribed
381 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
385 template<
class CloudType>
398 template<
class CloudType>
401 cloudReset(cloudCopyPtr_());
402 cloudCopyPtr_.clear();
406 template<
class CloudType>
409 CloudType::resetSourceTerms();
410 hsTrans_->field() = 0.0;
411 hsCoeff_->field() = 0.0;
415 radAreaP_->field() = 0.0;
416 radT4_->field() = 0.0;
417 radAreaPT4_->field() = 0.0;
422 template<
class CloudType>
428 CloudType::relaxSources(cloudOldTime);
435 this->
relax(radAreaP_(), cloudOldTime.
radAreaP(),
"radiation");
436 this->
relax(radT4_(), cloudOldTime.
radT4(),
"radiation");
442 template<
class CloudType>
445 CloudType::scaleSources();
447 this->scale(hsTrans_(),
"h");
448 this->scale(hsCoeff_(),
"h");
452 this->scale(radAreaP_(),
"radiation");
453 this->scale(radT4_(),
"radiation");
454 this->scale(radAreaPT4_(),
"radiation");
459 template<
class CloudType>
462 CloudType::preEvolve();
464 this->pAmbient() = carrierThermo_.p().average().value();
468 template<
class CloudType>
473 typename parcelType::trackingData td(*
this);
475 this->
solve(*
this, td);
480 template<
class CloudType>
489 template<
class CloudType>
494 Info<<
" Temperature min/max = " << Tmin() <<
", " << Tmax()
499 template<
class CloudType>
502 if (compositionModel_.valid())
504 CloudType::particleType::writeFields(*
this, this->
composition());
508 CloudType::particleType::writeFields(*
this);
autoPtr< integrationScheme > TIntegrator_
Temperature integration.
const fluidThermo & carrierThermo_
Thermophysical properties of the carrier fluid.
Switch radiation_
Include radiation.
const dimensionSet dimArea
DSMCCloud< dsmcParcel > CloudType
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
Templated heat transfer model class.
const parcelThermo thermo_
SLG thermodynamics package.
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.
basicSpecieMixture & composition
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 pressure field.
autoPtr< volScalarField::Internal > hsTrans_
Sensible enthalpy transfer [J/kg].
volScalarField::Internal & radAreaPT4()
Radiation sum of parcel projected area*temperature^4 [m2K4].
tmp< volScalarField::Internal > hsTrans() const
Return sensible enthalpy transfer [J/kg].
void cloudReset(ThermoCloud< CloudType > &c)
Reset state of cloud.
void preEvolve()
Pre-evolve.
virtual volScalarField & p()=0
Pressure [Pa].
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
const dimensionSet dimLength
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.
Base-class for fluid thermodynamic properties.
ThermoCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const dimensionedVector &g, const fluidThermo &carrierThermo, const bool readFields=true)
Construct given carrier fields and thermo.
Base cloud calls templated on particle type.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
const dimensionSet dimEnergy
const volScalarField & T() const
Return const access to the carrier temperature field.
word name(const complex &)
Return a string representation of a complex.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
void resetSourceTerms()
Reset the cloud source terms.
virtual void writeFields() const
Write the field data for the cloud.
autoPtr< volScalarField::Internal > hsCoeff_
Coefficient for carrier phase hs equation [W/K].
void evolve()
Evolve the cloud.
virtual const volScalarField & T() const =0
Temperature [K].
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.
tmp< volScalarField::Internal > hsCoeff() const
Return coefficient for carrier phase hs equation.
Selector class for relaxation factors, solver type and solution.
const parcelThermo & thermo() const
Return const access to thermo package.
autoPtr< HeatTransferModel< ThermoCloud< CloudType > > > heatTransferModel_
Heat transfer model.
Templated reacting parcel composition model class Consists of carrier species (via thermo package)...
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 dimTemperature
autoPtr< CompositionModel< ThermoCloud< CloudType > > > compositionModel_
Reacting composition model.
void relaxSources(const ThermoCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
virtual ~ThermoCloud()
Destructor.