33template<
class CloudType>
50template<
class CloudType>
58 TFilmPatch_(sfm.TFilmPatch_),
59 CpFilmPatch_(sfm.CpFilmPatch_)
65template<
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()];
108 const scalar sigma = liq.
sigma(pc,
p.
T());
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()];
169 const scalar sigma = liq.
sigma(pc,
p.
T());
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"
204template<
class CloudType>
207 const label filmPatchi,
208 const label primaryPatchi,
220 filmModel.
toPrimary(filmPatchi, TFilmPatch_);
223 filmModel.
toPrimary(filmPatchi, CpFilmPatch_);
227template<
class CloudType>
230 const label filmPatchi,
241 TFilmPatch_.setSize(filmModel.
Tf().
size(),
Zero);
243 CpFilmPatch_.setSize(filmModel.
Tf().
size(),
Zero);
248template<
class CloudType>
252 const label filmFacei
258 p.
T() = TFilmPatch_[filmFacei];
259 p.Cp() = CpFilmPatch_[filmFacei];
263template<
class CloudType>
Templated base class for dsmc cloud.
tmp< GeometricField< Type, PatchField, GeoMesh > > T() const
Return transpose (only if it is a tensor field)
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Kinematic parcel surface film model.
virtual void setParcelProperties(parcelType &p, const label filmFacei) const
Set the individual parcel properties.
virtual void cacheFilmFields(const label primaryPatchi, const areaFilm &)
Cache the film fields in preparation for injection.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
Thermo parcel surface film model.
virtual void setParcelProperties(parcelType &p, const label filmFacei) const
Set the individual parcel properties.
virtual void cacheFilmFields(const label primaryPatchi, const areaFilm &)
Cache the film fields in preparation for injection.
CloudType::parcelType parcelType
Convenience typedef to the cloud's parcel type.
virtual bool transferParcel(parcelType &p, const polyPatch &pp, bool &keepParticle)
Transfer parcel from cloud to surface film.
void size(const label n)
Older name for setAddressableSize.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
InfoProxy< ensightCells > info() const
Return info proxy.
The thermophysical properties of a liquid.
virtual scalar mu(scalar p, scalar T) const =0
Liquid viscosity [Pa s].
virtual scalar sigma(scalar p, scalar T) const =0
Surface tension [N/m].
Registry of regIOobjects.
label index() const noexcept
The index of this patch in the boundaryMesh.
A patch is a list of labels that address the faces in the global face list.
label whichFace(const label l) const
Return label of face in patch from global face label.
virtual const areaScalarField & Cp() const =0
Access const reference Cp.
const regionFaModel & region() const
Access to this region.
virtual const areaScalarField & Tf() const =0
Access const reference Tf.
const volSurfaceMapping & vsm() const
Return mapping between surface and volume fields.
void toPrimary(const label regionPatchi, List< Type > ®ionField) const
Convert a local region field to the primary region.
Base class for surface film models.
virtual const volScalarField & Ts() const =0
Return the film surface temperature [K].
virtual const volScalarField & Cp() const =0
Return the film specific heat capacity [J/kg/K].
Volume to surface and surface to volume mapping.
void mapToField(const GeometricField< Type, faPatchField, areaMesh > &af, Field< Type > &f) const
Map surface field to field.
const volScalarField & mu
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
OBJstream os(runTime.globalPath()/outputName)
errorManip< error > abort(error &err)
static constexpr const zero Zero
Global zero (0)