42#ifndef SurfaceFilmModel_H
43#define SurfaceFilmModel_H
59 namespace surfaceFilmModels
61 class surfaceFilmRegionModel;
67 namespace areaSurfaceFilmModels
78template<
class CloudType>
146 const label filmPatchi,
147 const label primaryPatchi,
154 const label primaryPatchi,
159 template<
class TrackCloudType>
162 const label primaryPatchi,
164 TrackCloudType&
cloud
171 const label filmFacei
268 template<
class TrackCloudType>
285#define makeSurfaceFilmModel(CloudType) \
287 typedef Foam::CloudType::kinematicCloudType kinematicCloudType; \
288 defineNamedTemplateTypeNameAndDebug \
290 Foam::SurfaceFilmModel<kinematicCloudType>, \
295 defineTemplateRunTimeSelectionTable \
297 SurfaceFilmModel<kinematicCloudType>, \
303#define makeSurfaceFilmModelType(SS, CloudType) \
305 typedef Foam::CloudType::kinematicCloudType kinematicCloudType; \
306 defineNamedTemplateTypeNameAndDebug(Foam::SS<kinematicCloudType>, 0); \
308 Foam::SurfaceFilmModel<kinematicCloudType>:: \
309 adddictionaryConstructorToTable<Foam::SS<kinematicCloudType>> \
310 add##SS##CloudType##kinematicCloudType##ConstructorToTable_;
Base class for cloud sub-models.
const CloudType & owner() const
Return const access to the owner cloud.
Templated base class for dsmc cloud.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Templated wall surface film model class.
virtual void setParcelProperties(parcelType &p, const label filmFacei) const
Set the individual parcel properties.
virtual bool transferParcel(parcelType &p, const polyPatch &pp, bool &keepParticle)=0
Transfer parcel from cloud to surface film.
Field< vector > UFilmPatch_
Film velocity / patch face.
virtual void cacheFilmFields(const label filmPatchi, const label primaryPatchi, const regionModels::surfaceFilmModels::surfaceFilmRegionModel &)
Cache the film fields in preparation for injection.
scalar minDiameter_
Minimum diameter particle injection.
scalarField rhoFilmPatch_
Film density / patch face.
scalarField massParcelPatch_
Parcel mass / patch face.
TypeName("surfaceFilmModel")
Runtime type information.
void inject(TrackCloudType &cloud)
Inject parcels into the cloud.
void injectParticles(const label primaryPatchi, const labelList &injectorCellsPatch, TrackCloudType &cloud)
Inject particles in cloud.
declareRunTimeSelectionTable(autoPtr, SurfaceFilmModel, dictionary,(const dictionary &dict, CloudType &owner),(dict, owner))
Declare runtime constructor selection table.
virtual void info(Ostream &os)
Write surface film info to stream.
label nParcelsInjected_
Number of parcels injected from the film model.
static autoPtr< SurfaceFilmModel< CloudType > > New(const dictionary &dict, CloudType &owner)
Selector.
regionModels::areaSurfaceFilmModels::liquidFilmBase areaFilm
const dimensionedVector & g_
Gravitational acceleration constant.
Field< scalarField > deltaFilmPatch_
Film height of all film patches / patch face.
virtual ~SurfaceFilmModel()
Destructor.
label ejectedParcelType_
Ejected parcel type label - id assigned to identify parcel for.
scalarField diameterParcelPatch_
Parcel diameter / patch face.
label nParcelsTransferred() const
Return const access to the number of parcels transferred to the.
const dimensionedVector & g() const
Return gravitational acceleration constant.
scalar injectionOffset_
Injection offset position.
label nParcelsTransferred_
Number of parcels transferred to the film model.
virtual autoPtr< SurfaceFilmModel< CloudType > > clone() const =0
Construct and return a clone.
scalar & totalMassTransferred()
Return non-const total mass transferred.
CloudType::parcelType parcelType
Convenience typedef to the cloud's parcel type.
label nParcelsInjected() const
Return const access to the number of parcels injected from the.
scalar totalMassTransferred_
Total mass transferred to the film.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A patch is a list of labels that address the faces in the global face list.
Base class for thermal 2D shells.
Base class for surface film models.
const dictionary & dict() const
Return const access to the cloud dictionary.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Macros to ease declaration of run-time selection tables.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.