Go to the documentation of this file.
33 template<
class CloudType>
43 owner.db().objectRegistry::template lookupObject<SLGThermo>(
"SLGThermo")
50 template<
class CloudType>
65 template<
class CloudType>
73 const label patchi = pp.
index();
75 this->initFilmModels();
77 bool bInteraction(
false);
82 if (this->filmModel_->isRegionPatch(patchi))
86 switch (this->interactionType_)
90 this->bounceInteraction(
p, pp, facei, keepParticle);
96 const scalar m =
p.nParticle()*
p.mass();
98 this->absorbInteraction
99 (*(this->filmModel_),
p, pp, facei, m, keepParticle);
106 const scalar pc = thermo_.thermo().p()[
p.cell()];
109 const scalar
mu = liq.
mu(pc,
p.T());
111 bool dry = this->deltaFilmPatch_[patchi][facei] < this->deltaWet_;
115 this->drySplashInteraction
116 (*(this->filmModel_),
sigma,
mu,
p, pp, facei, keepParticle);
120 this->wetSplashInteraction
121 (*(this->filmModel_),
sigma,
mu,
p, pp, facei, keepParticle);
129 <<
"Unknown interaction type enumeration"
139 for (
areaFilm& film : this->areaFilms_)
141 if (patchi == film.patchID())
145 switch (this->interactionType_)
150 const scalar m =
p.nParticle()*
p.mass();
152 this->absorbInteraction
154 film,
p, pp, facei, m, keepParticle
160 this->bounceInteraction(
p, pp, facei, keepParticle);
167 const scalar pc = thermo_.thermo().p()[
p.cell()];
170 const scalar
mu = liq.
mu(pc,
p.T());
172 bool dry = film.h()[facei] < this->deltaWet_;
176 this->drySplashInteraction
177 (film,
sigma,
mu,
p, pp, facei, keepParticle);
181 this->wetSplashInteraction
182 (film,
sigma,
mu,
p, pp, facei, keepParticle);
190 <<
"Unknown interaction type enumeration"
204 template<
class CloudType>
207 const label filmPatchi,
208 const label primaryPatchi,
220 filmModel.
toPrimary(filmPatchi, TFilmPatch_);
223 filmModel.
toPrimary(filmPatchi, CpFilmPatch_);
227 template<
class CloudType>
230 const label filmPatchi,
241 TFilmPatch_.setSize(filmModel.
Tf().size(),
Zero);
243 CpFilmPatch_.setSize(filmModel.
Tf().size(),
Zero);
248 template<
class CloudType>
252 const label filmFacei
258 p.T() = TFilmPatch_[filmFacei];
259 p.Cp() = CpFilmPatch_[filmFacei];
263 template<
class CloudType>
virtual const volScalarField & Ts() const =0
Return the film surface temperature [K].
virtual void cacheFilmFields(const label primaryPatchi, const areaFilm &)
Cache the film fields in preparation for injection.
const dimensionedScalar mu
Atomic mass unit.
static constexpr const zero Zero
Global zero (0)
virtual const volScalarField & Cp() const =0
Return the film specific heat capacity [J/kg/K].
ThermoSurfaceFilm(const dictionary &dict, CloudType &owner)
Construct from components.
scalarField TFilmPatch_
Film temperature / patch face.
const volSurfaceMapping & vsm() const
Return mapping between surface and volume fields.
void mapToField(const GeometricField< Type, faPatchField, areaMesh > &af, Field< Type > &f) const
Map surface field to field.
void toPrimary(const label regionPatchi, List< Type > ®ionField) const
Convert a local region field to the primary region.
Thermo parcel surface film model.
The thermophysical properties of a liquid.
scalarField CpFilmPatch_
Film specific heat capacity / patch face.
Base class for surface film models.
A patch is a list of labels that address the faces in the global face list.
Templated base class for dsmc cloud.
CloudType::parcelType parcelType
Convenience typedef to the cloud's parcel type.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
OBJstream os(runTime.globalPath()/outputName)
const regionFaModel & region() const
Access to this region.
label index() const noexcept
The index of this patch in the boundaryMesh.
errorManip< error > abort(error &err)
Kinematic parcel surface film model.
virtual scalar mu(scalar p, scalar T) const =0
Liquid viscosity [Pa s].
virtual void info(Ostream &os)
Write surface film info to stream.
virtual scalar sigma(scalar p, scalar T) const =0
Surface tension [N/m].
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const SLGThermo & thermo_
Reference to the cloud thermo package.
label whichFace(const label l) const
Return label of face in patch from global face label.
virtual void setParcelProperties(parcelType &p, const label filmFacei) const
Set the individual parcel properties.
Volume to surface and surface to volume mapping.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)
virtual bool transferParcel(parcelType &p, const polyPatch &pp, bool &keepParticle)
Transfer parcel from cloud to surface film.
virtual const areaScalarField & Cp() const =0
Access const reference Cp.
virtual const areaScalarField & Tf() const =0
Access const reference Tf.
const Boundary & boundaryField() const
Return const-reference to the boundary field.