36 template<
class CloudType>
39 heatTransferModel_.reset
43 this->subModelProperties(),
53 this->
solution().integrationSchemes()
57 this->subModelProperties().readEntry(
"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);
120 heatTransferModel_.reset(
c.heatTransferModel_.ptr());
121 TIntegrator_.reset(
c.TIntegrator_.ptr());
123 radiation_ =
c.radiation_;
129 template<
class CloudType>
150 cloudCopyPtr_(nullptr),
151 constProps_(this->particleProperties()),
155 heatTransferModel_(nullptr),
156 TIntegrator_(nullptr),
160 radAreaPT4_(nullptr),
167 this->
name() +
":hsTrans",
183 this->
name() +
":hsCoeff",
201 this->deleteLostParticles();
205 if (this->solution().resetSourcesOnStartup())
212 template<
class CloudType>
215 ThermoCloud<CloudType>&
c,
221 cloudCopyPtr_(nullptr),
222 constProps_(
c.constProps_),
226 heatTransferModel_(
c.heatTransferModel_->clone()),
227 TIntegrator_(
c.TIntegrator_->clone()),
228 radiation_(
c.radiation_),
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>
326 const ThermoCloud<CloudType>&
c 331 cloudCopyPtr_(nullptr),
336 heatTransferModel_(nullptr),
337 TIntegrator_(nullptr),
341 radAreaPT4_(nullptr),
349 template<
class CloudType>
353 const scalar lagrangianDt
356 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
358 parcel.T() = constProps_.T0();
359 parcel.Cp() = constProps_.Cp0();
363 template<
class CloudType>
367 const scalar lagrangianDt,
368 const bool fullyDescribed
371 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
375 template<
class CloudType>
382 clone(this->
name() +
"Copy").ptr()
388 template<
class CloudType>
391 cloudReset(cloudCopyPtr_());
392 cloudCopyPtr_.clear();
396 template<
class CloudType>
399 CloudType::resetSourceTerms();
400 hsTrans_->field() = 0.0;
401 hsCoeff_->field() = 0.0;
405 radAreaP_->field() = 0.0;
406 radT4_->field() = 0.0;
407 radAreaPT4_->field() = 0.0;
412 template<
class CloudType>
415 const ThermoCloud<CloudType>& cloudOldTime
418 CloudType::relaxSources(cloudOldTime);
420 this->
relax(hsTrans_(), cloudOldTime.hsTrans(),
"h");
421 this->
relax(hsCoeff_(), cloudOldTime.hsCoeff(),
"h");
425 this->
relax(radAreaP_(), cloudOldTime.radAreaP(),
"radiation");
426 this->
relax(radT4_(), cloudOldTime.radT4(),
"radiation");
427 this->
relax(radAreaPT4_(), cloudOldTime.radAreaPT4(),
"radiation");
432 template<
class CloudType>
435 CloudType::scaleSources();
437 this->scale(hsTrans_(),
"h");
438 this->scale(hsCoeff_(),
"h");
442 this->scale(radAreaP_(),
"radiation");
443 this->scale(radT4_(),
"radiation");
444 this->scale(radAreaPT4_(),
"radiation");
449 template<
class CloudType>
452 const typename parcelType::trackingData& td
455 CloudType::preEvolve(td);
457 this->pAmbient() = thermo_.thermo().p().average().value();
461 template<
class CloudType>
466 typename parcelType::trackingData td(*
this);
468 this->
solve(*
this, td);
473 template<
class CloudType>
482 template<
class CloudType>
487 Log_<<
" Temperature min/max = " << Tmin() <<
", " << Tmax()
void preEvolve(const typename parcelType::trackingData &td)
Pre-evolve.
DSMCCloud< dsmcParcel > CloudType
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
Templated class to calculate the fluid-particle heat transfer coefficients based on a specified Nusse...
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.
void cloudReset(ThermoCloud< CloudType > &c)
Reset state of cloud.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
Templated base class for thermodynamic cloud.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
psiReactionThermo & thermo
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
#define Log_
Report write to Foam::Info if the class log switch is true.
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
const word cloudName(propsDict.get< word >("cloud"))
A class for handling words, derived from Foam::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.
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
const uniformDimensionedVectorField & g
Virtual abstract base class for templated ThermoCloud.
const dimensionSet dimEnergy
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
const dimensionedScalar mu
Atomic mass unit.
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.
const dimensionedScalar c
Speed of light in a vacuum.
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.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const wordHashSet &selectedFields, LIFOStack< regIOobject *> &storedObjects)
Read the selected GeometricFields of the templated type.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Templated base class for dsmc cloud.
void storeState()
Store the current cloud state.
void setModels()
Set cloud sub-models.
const dimensionSet dimArea(sqr(dimLength))
void relaxSources(const ThermoCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
static constexpr const zero Zero
Global zero (0)