36 template<
class CloudType>
39 heatTransferModel_.reset
43 this->subModelProperties(),
53 this->
solution().integrationSchemes()
57 this->subModelProperties().readEntry(
"radiation", radiation_);
67 IOobject::scopedName(this->
name(),
"radAreaP"),
70 IOobject::READ_IF_PRESENT,
85 IOobject::scopedName(this->
name(),
"radT4"),
88 IOobject::READ_IF_PRESENT,
103 IOobject::scopedName(this->
name(),
"radAreaPT4"),
106 IOobject::READ_IF_PRESENT,
107 IOobject::AUTO_WRITE,
118 template<
class CloudType>
121 CloudType::cloudReset(
c);
123 heatTransferModel_.reset(
c.heatTransferModel_.ptr());
124 TIntegrator_.reset(
c.TIntegrator_.ptr());
126 radiation_ =
c.radiation_;
132 template<
class CloudType>
153 cloudCopyPtr_(nullptr),
154 constProps_(this->particleProperties()),
158 heatTransferModel_(nullptr),
159 TIntegrator_(nullptr),
163 radAreaPT4_(nullptr),
206 this->deleteLostParticles();
210 if (this->solution().resetSourcesOnStartup())
217 template<
class CloudType>
220 ThermoCloud<CloudType>&
c,
226 cloudCopyPtr_(nullptr),
227 constProps_(
c.constProps_),
231 heatTransferModel_(
c.heatTransferModel_->clone()),
232 TIntegrator_(
c.TIntegrator_->clone()),
233 radiation_(
c.radiation_),
236 radAreaPT4_(nullptr),
243 IOobject::scopedName(this->
name(),
"hsTrans"),
248 IOobject::NO_REGISTER
259 IOobject::scopedName(this->
name(),
"hsCoeff"),
264 IOobject::NO_REGISTER
278 IOobject::scopedName(this->
name(),
"radAreaP"),
283 IOobject::NO_REGISTER
295 IOobject::scopedName(this->
name(),
"radT4"),
300 IOobject::NO_REGISTER
312 IOobject::scopedName(this->
name(),
"radAreaPT4"),
317 IOobject::NO_REGISTER
326 template<
class CloudType>
331 const ThermoCloud<CloudType>&
c 336 cloudCopyPtr_(nullptr),
341 heatTransferModel_(nullptr),
342 TIntegrator_(nullptr),
346 radAreaPT4_(nullptr),
354 template<
class CloudType>
358 const scalar lagrangianDt
361 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
363 parcel.T() = constProps_.T0();
364 parcel.Cp() = constProps_.Cp0();
368 template<
class CloudType>
372 const scalar lagrangianDt,
373 const bool fullyDescribed
376 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
380 template<
class CloudType>
387 clone(this->
name() +
"Copy").ptr()
393 template<
class CloudType>
396 cloudReset(cloudCopyPtr_());
397 cloudCopyPtr_.clear();
401 template<
class CloudType>
404 CloudType::resetSourceTerms();
405 hsTrans_->field() = 0.0;
406 hsCoeff_->field() = 0.0;
410 radAreaP_->field() = 0.0;
411 radT4_->field() = 0.0;
412 radAreaPT4_->field() = 0.0;
417 template<
class CloudType>
420 const ThermoCloud<CloudType>& cloudOldTime
423 CloudType::relaxSources(cloudOldTime);
425 this->
relax(hsTrans_(), cloudOldTime.hsTrans(),
"h");
426 this->
relax(hsCoeff_(), cloudOldTime.hsCoeff(),
"h");
430 this->
relax(radAreaP_(), cloudOldTime.radAreaP(),
"radiation");
431 this->
relax(radT4_(), cloudOldTime.radT4(),
"radiation");
432 this->
relax(radAreaPT4_(), cloudOldTime.radAreaPT4(),
"radiation");
437 template<
class CloudType>
440 CloudType::scaleSources();
442 this->scale(hsTrans_(),
"h");
443 this->scale(hsCoeff_(),
"h");
447 this->scale(radAreaP_(),
"radiation");
448 this->scale(radT4_(),
"radiation");
449 this->scale(radAreaPT4_(),
"radiation");
454 template<
class CloudType>
457 const typename parcelType::trackingData&
td 460 CloudType::preEvolve(
td);
462 this->pAmbient() = thermo_.thermo().p().average().value();
466 template<
class CloudType>
471 typename parcelType::trackingData
td(*
this);
473 this->
solve(*
this, td);
478 template<
class CloudType>
487 template<
class CloudType>
492 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...
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
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.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
void cloudReset(ThermoCloud< CloudType > &c)
Reset state of cloud.
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 expressions::valueTypeCode::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.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const NameMatchPredicate &selectedFields, DynamicList< regIOobject *> &storedObjects)
Read the selected GeometricFields of the templated type and store on the objectRegistry.
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.
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)