36 #ifndef SurfaceFilmModel_H
37 #define SurfaceFilmModel_H
53 template<
class CloudType>
107 const label filmFacei
198 template<
class TrackCloudType>
215 #define makeSurfaceFilmModel(CloudType) \
217 typedef Foam::CloudType::momentumCloudType CloudType##momentumCloudType; \
219 defineNamedTemplateTypeNameAndDebug \
221 Foam::SurfaceFilmModel<CloudType##momentumCloudType>, \
226 defineTemplateRunTimeSelectionTable \
228 SurfaceFilmModel<CloudType##momentumCloudType>, \
234 #define makeSurfaceFilmModelType(SS, CloudType) \
236 typedef Foam::CloudType::momentumCloudType CloudType##momentumCloudType; \
238 defineNamedTemplateTypeNameAndDebug \
240 Foam::SS<CloudType##momentumCloudType>, \
244 Foam::SurfaceFilmModel<CloudType##momentumCloudType>:: \
245 adddictionaryConstructorToTable<Foam::SS<CloudType##momentumCloudType>>\
246 add##SS##CloudType##momentumCloudType##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 cacheFilmFields(const label filmi)=0
Cache the film fields in preparation for injection.
virtual bool transferParcel(parcelType &p, const polyPatch &pp, bool &keepParticle)=0
Transfer parcel from cloud to surface film.
scalarField massParcelPatch_
Parcel mass / patch face.
void inject(TrackCloudType &cloud)
Inject parcels into the 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.
virtual void setParcelProperties(parcelType &p, const label filmFacei) const =0
Set the individual parcel properties.
static autoPtr< SurfaceFilmModel< CloudType > > New(const dictionary &dict, CloudType &owner)
Selector.
const dimensionedVector & g_
Gravitational acceleration constant.
virtual const labelList & filmPatches() const =0
Return list of film patches.
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.
virtual autoPtr< SurfaceFilmModel< CloudType > > clone() const =0
Construct and return a clone.
scalarField deltaFilmPatch_
Film height of all film patches / patch face.
TypeName("surfaceFilm")
Runtime type information.
const dimensionedVector & g() const
Return gravitational acceleration constant.
label nParcelsTransferred_
Number of parcels transferred to the film model.
SurfaceFilmModel(CloudType &owner)
Construct null from owner.
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.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Base class for clouds. Provides a basic evolution algorithm, models, and a database for caching deriv...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
A patch is a list of labels that address the faces in the global face list.
const dictionary & dict() const
Return const access to the cloud dictionary.
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Macros to ease declaration of run-time selection tables.