KinematicSurfaceFilm< CloudType > Class Template Reference

Kinematic parcel surface film model. More...

Inheritance diagram for KinematicSurfaceFilm< CloudType >:
Collaboration diagram for KinematicSurfaceFilm< CloudType >:

Public Types

enum  interactionType { absorb, bounce, splashBai }
 Options for the interaction types. More...
 
- Public Types inherited from CloudSubModelBase< CloudType >
typedef CloudType cloudType
 Type of cloud this model was instantiated for. More...
 

Public Member Functions

 TypeName ("kinematicSurfaceFilm")
 Runtime type information. More...
 
 KinematicSurfaceFilm (const dictionary &dict, CloudType &owner, const word &type=typeName, bool initThermo=true)
 Construct from components. More...
 
 KinematicSurfaceFilm (const KinematicSurfaceFilm< CloudType > &sfm, bool initThermo=true)
 Construct copy. More...
 
virtual autoPtr< SurfaceFilmModel< CloudType > > clone () const
 Construct and return a clone using supplied owner cloud. More...
 
virtual ~KinematicSurfaceFilm ()=default
 Destructor. More...
 
template<class filmType >
void absorbInteraction (filmType &, const parcelType &p, const polyPatch &pp, const label facei, const scalar mass, bool &keepParticle)
 Absorb parcel into film. More...
 
void bounceInteraction (parcelType &p, const polyPatch &pp, const label facei, bool &keepParticle) const
 Bounce parcel (flip parcel normal velocity) More...
 
template<class filmType >
void drySplashInteraction (filmType &, const scalar sigma, const scalar mu, const parcelType &p, const polyPatch &pp, const label facei, bool &keepParticle)
 Parcel interaction with dry surface. More...
 
template<class filmType >
void wetSplashInteraction (filmType &, const scalar sigma, const scalar mu, parcelType &p, const polyPatch &pp, const label facei, bool &keepParticle)
 Parcel interaction with wetted surface. More...
 
template<class filmType >
void splashInteraction (filmType &, const parcelType &p, const polyPatch &pp, const label facei, const scalar mRatio, const scalar We, const scalar Wec, const scalar sigma, bool &keepParticle)
 Bai parcel splash interaction model. More...
 
virtual bool transferParcel (parcelType &p, const polyPatch &pp, bool &keepParticle)
 Transfer parcel from cloud to surface film. More...
 
virtual void info ()
 Write surface film info. More...
 
- Public Member Functions inherited from SurfaceFilmModel< CloudType >
 TypeName ("surfaceFilmModel")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, SurfaceFilmModel, dictionary,(const dictionary &dict, CloudType &owner),(dict, owner))
 Declare runtime constructor selection table. More...
 
 SurfaceFilmModel (CloudType &owner)
 Construct null from owner. More...
 
 SurfaceFilmModel (const dictionary &dict, CloudType &owner, const word &type)
 Construct from components. More...
 
 SurfaceFilmModel (const SurfaceFilmModel< CloudType > &sfm)
 Construct copy. More...
 
virtual ~SurfaceFilmModel ()=default
 Destructor. More...
 
const dimensionedVectorg () const noexcept
 Return gravitational acceleration constant. More...
 
label nParcelsTransferred () const noexcept
 The number of parcels transferred to the film model. More...
 
label & nParcelsTransferred () noexcept
 Non-const access to number of parcels transferred to the film model. More...
 
label nParcelsInjected () const noexcept
 The number of parcels injected from the film model. More...
 
label & nParcelsInjected () noexcept
 Non-const access to number of parcels injected from the film model. More...
 
scalar totalMassTransferred () const noexcept
 The total mass transferred. More...
 
scalar & totalMassTransferred () noexcept
 Non-const access to the total mass transferred. More...
 
template<class TrackCloudType >
void inject (TrackCloudType &cloud)
 Inject parcels into the cloud. More...
 
template<class CloudTrackType >
void injectParticles (const label primaryPatchi, const labelUList &injectorCells, CloudTrackType &cloud)
 
template<class CloudTrackType >
void injectParticles (const UList< labelPair > &patchFaces, CloudTrackType &cloud)
 
- Public Member Functions inherited from CloudSubModelBase< CloudType >
 CloudSubModelBase (CloudType &owner)
 Construct null from owner cloud. More...
 
 CloudSubModelBase (CloudType &owner, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs")
 Construct from owner cloud without name. More...
 
 CloudSubModelBase (const word &modelName, CloudType &owner, const dictionary &dict, const word &baseName, const word &modelType)
 Construct from owner cloud with name. More...
 
 CloudSubModelBase (const CloudSubModelBase< CloudType > &smb)
 Construct as copy. More...
 
virtual ~CloudSubModelBase ()=default
 Destructor. More...
 
const CloudTypeowner () const
 Return const access to the owner cloud. More...
 
virtual bool writeTime () const
 Flag to indicate when to write a property. More...
 
virtual fileName localPath () const
 Output directory. More...
 
CloudTypeowner ()
 Return non-const access to the owner cloud for manipulation. More...
 
virtual void write (Ostream &os) const
 Write to os. More...
 
- Public Member Functions inherited from subModelBase
 subModelBase (dictionary &properties)
 Construct null. More...
 
 subModelBase (dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs")
 Construct from components without name. More...
 
 subModelBase (const word &modelName, dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType)
 Construct from components with name. More...
 
 subModelBase (const subModelBase &smb)
 Construct as copy. More...
 
virtual ~subModelBase ()=default
 Destructor. More...
 
const wordmodelName () const
 Return const access to the name of the sub-model. More...
 
const dictionarydict () const
 Return const access to the cloud dictionary. More...
 
const wordbaseName () const
 Return const access to the base name of the sub-model. More...
 
const wordmodelType () const
 Return const access to the sub-model type. More...
 
const dictionarycoeffDict () const
 Return const access to the coefficients dictionary. More...
 
const dictionaryproperties () const
 Return const access to the properties dictionary. More...
 
virtual bool defaultCoeffs (const bool printMsg) const
 Returns true if defaultCoeffs is true and outputs on printMsg. More...
 
virtual bool active () const
 Return the model 'active' status - default active = true. More...
 
virtual void cacheFields (const bool store)
 Cache dependent sub-model fields. More...
 
template<class Type >
Type getBaseProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const
 Retrieve generic property from the base model. More...
 
template<class Type >
void getBaseProperty (const word &entryName, Type &value) const
 Retrieve generic property from the base model. More...
 
template<class Type >
void setBaseProperty (const word &entryName, const Type &value)
 Add generic property to the base model. More...
 
bool getModelDict (const word &entryName, dictionary &dict) const
 Retrieve dictionary, return true if set. More...
 
template<class Type >
bool getModelProperty (const word &entryName, Type &value) const
 Retrieve generic property from the sub-model. More...
 
template<class Type >
Type getModelProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const
 Retrieve generic property from the sub-model. More...
 
template<class Type >
void setModelProperty (const word &entryName, const Type &value)
 Add generic property to the sub-model. More...
 

Static Public Attributes

static const Enum< interactionTypeinteractionTypeNames
 Names for interactionType. More...
 

Protected Types

typedef CloudType::parcelType parcelType
 Convenience typedef to the cloud's parcel type. More...
 
typedef regionModels::areaSurfaceFilmModels::liquidFilmBase areaFilm
 
typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel regionFilm
 
- Protected Types inherited from SurfaceFilmModel< CloudType >
typedef CloudType::parcelType parcelType
 Convenience typedef to the cloud's parcel type. More...
 
typedef regionModels::areaSurfaceFilmModels::liquidFilmBase areaFilm
 
typedef regionModels::surfaceFilmModels::surfaceFilmRegionModel regionFilm
 

Protected Member Functions

vector tangentVector (const vector &v) const
 Return a vector tangential to input vector, v. More...
 
vector splashDirection (const vector &tanVec1, const vector &tanVec2, const vector &nf) const
 Return splashed parcel direction. More...
 
void init (bool binitThermo)
 Initialise thermo. More...
 
void initFilmModels ()
 Initialise pointers of films. More...
 
virtual void cacheFilmFields (const areaFilm &film)
 Cache the film fields in preparation for injection. More...
 
virtual void cacheFilmFields (const label filmPatchi, const label primaryPatchi, const regionModels::surfaceFilmModels::surfaceFilmRegionModel &)
 Cache the film fields in preparation for injection. More...
 
virtual void setParcelProperties (parcelType &p, const label filmFacei) const
 Set the individual parcel properties. More...
 
- Protected Member Functions inherited from SurfaceFilmModel< CloudType >
template<class TrackCloudType >
void injectParticles (const label primaryPatchi, const labelUList &injectorCells, TrackCloudType &cloud)
 Inject particles in cloud. More...
 
template<class TrackCloudType >
void injectParticles (const UList< labelPair > &patchFaces, TrackCloudType &cloud)
 Inject particles in cloud. More...
 
- Protected Member Functions inherited from subModelBase
bool inLine () const
 Flag to indicate whether data is/was read in-line. More...
 

Protected Attributes

RandomrndGen_
 Reference to the cloud random number generator. More...
 
liquidMixturePropertiesthermo_
 Region Film liquid thermo. More...
 
scalar pRef_
 Region Film reference pressure. More...
 
scalar TRef_
 Region Film reference temperature. More...
 
regionFilmfilmModel_
 Pointer to filmModel. More...
 
UPtrList< areaFilmareaFilms_
 UPointers to area films. More...
 
interactionType interactionType_
 Interaction type enumeration. More...
 
labelList parcelTypes_
 Particle type IDs that can interact with the film. More...
 
scalar deltaWet_
 Film thickness beyond which patch is assumed to be wet. More...
 
label splashParcelType_
 Splash parcel type label - id assigned to identify parcel for. More...
 
label parcelsPerSplash_
 Number of new parcels resulting from splash event. More...
 
scalar dMaxSplash_
 Maximum splash particle diameter for Chi-square distribution. More...
 
scalar dMinSplash_
 Minimum splash particle diameter for Chi-square distribution. More...
 
scalar Adry_
 Dry surface roughness coefficient. More...
 
scalar Awet_
 Wet surface roughness coefficient. More...
 
scalar Cf_
 Skin friction typically in the range 0.6 < Cf < 0.8. More...
 
label nParcelsSplashed_
 Counter for number of new splash parcels. More...
 
- Protected Attributes inherited from SurfaceFilmModel< CloudType >
const dimensionedVectorg_
 Gravitational acceleration constant. More...
 
label ejectedParcelType_
 Ejected parcel type label - id assigned to identify parcel for post-processing. If not specified, defaults to originating cloud type. More...
 
scalar injectionOffset_
 Injection offset position. More...
 
scalar minDiameter_
 Minimum diameter particle injection. More...
 
scalarField massParcelPatch_
 Parcel mass / patch face. More...
 
scalarField diameterParcelPatch_
 Parcel diameter / patch face. More...
 
Field< vectorUFilmPatch_
 Film velocity / patch face. More...
 
scalarField rhoFilmPatch_
 Film density / patch face. More...
 
Field< scalarFielddeltaFilmPatch_
 Film height of all film patches / patch face. More...
 
label nParcelsTransferred_
 Number of parcels transferred to the film model. More...
 
label nParcelsInjected_
 Number of parcels injected from the film model. More...
 
scalar totalMassTransferred_
 Total mass transferred to the film. More...
 
- Protected Attributes inherited from CloudSubModelBase< CloudType >
CloudTypeowner_
 Reference to the cloud. More...
 
- Protected Attributes inherited from subModelBase
const word modelName_
 Name of the sub-model. More...
 
dictionaryproperties_
 Reference to properties dictionary e.g. for restart. More...
 
const dictionary dict_
 Copy of dictionary used during construction. More...
 
const word baseName_
 Name of the sub-model base class. More...
 
const word modelType_
 Type of the sub-model. More...
 
const dictionary coeffDict_
 Coefficients dictionary. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from SurfaceFilmModel< CloudType >
static autoPtr< SurfaceFilmModel< CloudType > > New (const dictionary &dict, CloudType &owner)
 Selector. More...
 
- Public Attributes inherited from subModelBase
bool log
 Flag to write log into Info. More...
 

Detailed Description

template<class CloudType>
class Foam::KinematicSurfaceFilm< CloudType >

Kinematic parcel surface film model.

Responsible for:

  • injecting parcels from the film model into the cloud, e.g. for dripping
  • parcel interaction with the film, e.g absorb, bounce, splash
Source files

Definition at line 71 of file KinematicSurfaceFilm.H.

Member Typedef Documentation

◆ parcelType

typedef CloudType::parcelType parcelType
protected

Convenience typedef to the cloud's parcel type.

Definition at line 102 of file KinematicSurfaceFilm.H.

◆ areaFilm

◆ regionFilm

Member Enumeration Documentation

◆ interactionType

enum interactionType
strong

Options for the interaction types.

Enumerator
absorb 

absorb

bounce 

bounce

splashBai 

Bai splash model.

Definition at line 82 of file KinematicSurfaceFilm.H.

Constructor & Destructor Documentation

◆ KinematicSurfaceFilm() [1/2]

KinematicSurfaceFilm ( const dictionary dict,
CloudType owner,
const word type = typeName,
bool  initThermo = true 
)

Construct from components.

Definition at line 477 of file KinematicSurfaceFilm.C.

References Foam::endl(), and Foam::Info.

Here is the call graph for this function:

◆ KinematicSurfaceFilm() [2/2]

KinematicSurfaceFilm ( const KinematicSurfaceFilm< CloudType > &  sfm,
bool  initThermo = true 
)

Construct copy.

Definition at line 527 of file KinematicSurfaceFilm.C.

◆ ~KinematicSurfaceFilm()

virtual ~KinematicSurfaceFilm ( )
virtualdefault

Destructor.

Member Function Documentation

◆ tangentVector()

Foam::vector tangentVector ( const vector v) const
protected

Return a vector tangential to input vector, v.

Definition at line 49 of file KinematicSurfaceFilm.C.

References Foam::mag(), and Foam::Zero.

Here is the call graph for this function:

◆ splashDirection()

Foam::vector splashDirection ( const vector tanVec1,
const vector tanVec2,
const vector nf 
) const
protected

Return splashed parcel direction.

Definition at line 69 of file KinematicSurfaceFilm.C.

References Foam::constant::atomic::alpha, Foam::cos(), Foam::degToRad(), Foam::mag(), Foam::sin(), and Foam::constant::mathematical::twoPi().

Here is the call graph for this function:

◆ init()

void init ( bool  binitThermo)
protected

Initialise thermo.

Definition at line 123 of file KinematicSurfaceFilm.C.

◆ initFilmModels()

void initFilmModels ( )
protected

Initialise pointers of films.

Definition at line 93 of file KinematicSurfaceFilm.C.

References mesh, and fvMesh::time().

Here is the call graph for this function:

◆ cacheFilmFields() [1/2]

void cacheFilmFields ( const areaFilm film)
protectedvirtual

Cache the film fields in preparation for injection.

Reimplemented from SurfaceFilmModel< CloudType >.

Reimplemented in ThermoSurfaceFilm< CloudType >.

Definition at line 750 of file KinematicSurfaceFilm.C.

References SurfaceFilmModel< CloudType >::cacheFilmFields().

Here is the call graph for this function:

◆ cacheFilmFields() [2/2]

void cacheFilmFields ( const label  filmPatchi,
const label  primaryPatchi,
const regionModels::surfaceFilmModels::surfaceFilmRegionModel filmModel 
)
protectedvirtual

Cache the film fields in preparation for injection.

Reimplemented from SurfaceFilmModel< CloudType >.

Reimplemented in ThermoSurfaceFilm< CloudType >.

Definition at line 733 of file KinematicSurfaceFilm.C.

References SurfaceFilmModel< CloudType >::cacheFilmFields().

Here is the call graph for this function:

◆ setParcelProperties()

void setParcelProperties ( parcelType p,
const label  filmFacei 
) const
protectedvirtual

Set the individual parcel properties.

Reimplemented from SurfaceFilmModel< CloudType >.

Reimplemented in ThermoSurfaceFilm< CloudType >.

Definition at line 760 of file KinematicSurfaceFilm.C.

References p, and SurfaceFilmModel< CloudType >::setParcelProperties().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "kinematicSurfaceFilm"  )

Runtime type information.

◆ clone()

virtual autoPtr<SurfaceFilmModel<CloudType> > clone ( ) const
inlinevirtual

Construct and return a clone using supplied owner cloud.

Implements SurfaceFilmModel< CloudType >.

Reimplemented in ThermoSurfaceFilm< CloudType >.

Definition at line 313 of file KinematicSurfaceFilm.H.

◆ absorbInteraction()

void absorbInteraction ( filmType &  film,
const parcelType p,
const polyPatch pp,
const label  facei,
const scalar  mass,
bool &  keepParticle 
)

Absorb parcel into film.

Definition at line 137 of file KinematicSurfaceFilm.C.

References DebugInfo, Foam::endl(), PrimitivePatch< FaceList, PointField >::faceNormals(), Foam::mag(), p, pp(), and Urel.

Here is the call graph for this function:

◆ bounceInteraction()

void bounceInteraction ( parcelType p,
const polyPatch pp,
const label  facei,
bool &  keepParticle 
) const

Bounce parcel (flip parcel normal velocity)

Definition at line 183 of file KinematicSurfaceFilm.C.

References DebugInfo, Foam::endl(), PrimitivePatch< FaceList, PointField >::faceNormals(), p, pp(), and Urel.

Here is the call graph for this function:

◆ drySplashInteraction()

void drySplashInteraction ( filmType &  filmModel,
const scalar  sigma,
const scalar  mu,
const parcelType p,
const polyPatch pp,
const label  facei,
bool &  keepParticle 
)

Parcel interaction with dry surface.

Definition at line 211 of file KinematicSurfaceFilm.C.

References DebugInfo, Foam::endl(), PrimitivePatch< FaceList, PointField >::faceNormals(), Foam::magSqr(), Foam::constant::physicoChemical::mu, p, Foam::pow(), pp(), rho, sigma(), Foam::sqr(), and Urel.

Here is the call graph for this function:

◆ wetSplashInteraction()

void wetSplashInteraction ( filmType &  filmModel,
const scalar  sigma,
const scalar  mu,
parcelType p,
const polyPatch pp,
const label  facei,
bool &  keepParticle 
)

◆ splashInteraction()

void splashInteraction ( filmType &  filmModel,
const parcelType p,
const polyPatch pp,
const label  facei,
const scalar  mRatio,
const scalar  We,
const scalar  Wec,
const scalar  sigma,
bool &  keepParticle 
)

◆ transferParcel()

bool transferParcel ( parcelType p,
const polyPatch pp,
bool &  keepParticle 
)
virtual

Transfer parcel from cloud to surface film.

Returns true if parcel is to be transferred

Implements SurfaceFilmModel< CloudType >.

Reimplemented in ThermoSurfaceFilm< CloudType >.

Definition at line 560 of file KinematicSurfaceFilm.C.

References Foam::abort(), Foam::ensightOutput::debug, Foam::endl(), Foam::FatalError, FatalErrorInFunction, Foam::constant::physicoChemical::mu, p, Foam::Pout, pp(), Foam::refCast(), sigma(), and TRef().

Here is the call graph for this function:

◆ info()

void info ( )
virtual

Write surface film info.

Reimplemented from SurfaceFilmModel< CloudType >.

Reimplemented in ThermoSurfaceFilm< CloudType >.

Definition at line 770 of file KinematicSurfaceFilm.C.

References Foam::endl(), SurfaceFilmModel< CloudType >::info(), Log_, and Foam::returnReduce().

Here is the call graph for this function:

Member Data Documentation

◆ interactionTypeNames

const Foam::Enum< typename Foam::KinematicSurfaceFilm< CloudType >::interactionType > interactionTypeNames
static

Names for interactionType.

Definition at line 92 of file KinematicSurfaceFilm.H.

◆ rndGen_

Random& rndGen_
protected

Reference to the cloud random number generator.

Definition at line 116 of file KinematicSurfaceFilm.H.

◆ thermo_

liquidMixtureProperties* thermo_
protected

Region Film liquid thermo.

Definition at line 124 of file KinematicSurfaceFilm.H.

◆ pRef_

scalar pRef_
protected

Region Film reference pressure.

Definition at line 129 of file KinematicSurfaceFilm.H.

◆ TRef_

scalar TRef_
protected

Region Film reference temperature.

Definition at line 134 of file KinematicSurfaceFilm.H.

◆ filmModel_

regionFilm* filmModel_
protected

Pointer to filmModel.

Definition at line 139 of file KinematicSurfaceFilm.H.

◆ areaFilms_

UPtrList<areaFilm> areaFilms_
protected

UPointers to area films.

Definition at line 147 of file KinematicSurfaceFilm.H.

◆ interactionType_

interactionType interactionType_
protected

Interaction type enumeration.

Definition at line 155 of file KinematicSurfaceFilm.H.

◆ parcelTypes_

labelList parcelTypes_
protected

Particle type IDs that can interact with the film.

If empty (default) all type IDs are included

Definition at line 162 of file KinematicSurfaceFilm.H.

◆ deltaWet_

scalar deltaWet_
protected

Film thickness beyond which patch is assumed to be wet.

Definition at line 167 of file KinematicSurfaceFilm.H.

◆ splashParcelType_

label splashParcelType_
protected

Splash parcel type label - id assigned to identify parcel for.

post-processing. If not specified, defaults to originating cloud type

Definition at line 175 of file KinematicSurfaceFilm.H.

◆ parcelsPerSplash_

label parcelsPerSplash_
protected

Number of new parcels resulting from splash event.

Definition at line 180 of file KinematicSurfaceFilm.H.

◆ dMaxSplash_

scalar dMaxSplash_
protected

Maximum splash particle diameter for Chi-square distribution.

Default is incident particle diameter

Definition at line 187 of file KinematicSurfaceFilm.H.

◆ dMinSplash_

scalar dMinSplash_
protected

Minimum splash particle diameter for Chi-square distribution.

Default is 0.1 dMaxSplash

Definition at line 194 of file KinematicSurfaceFilm.H.

◆ Adry_

scalar Adry_
protected

Dry surface roughness coefficient.

= 2630 for dry interaction (ref. Bai)

Definition at line 204 of file KinematicSurfaceFilm.H.

◆ Awet_

scalar Awet_
protected

Wet surface roughness coefficient.

= 1320 for wet interaction (ref. Bai)

Definition at line 211 of file KinematicSurfaceFilm.H.

◆ Cf_

scalar Cf_
protected

Skin friction typically in the range 0.6 < Cf < 0.8.

Definition at line 217 of file KinematicSurfaceFilm.H.

◆ nParcelsSplashed_

label nParcelsSplashed_
protected

Counter for number of new splash parcels.

Definition at line 222 of file KinematicSurfaceFilm.H.


The documentation for this class was generated from the following files: