42#ifndef PatchInteractionModel_H
43#define PatchInteractionModel_H
63template<
class CloudType>
169 const scalar&
Urmax()
const;
205#define makePatchInteractionModel(CloudType) \
207 typedef Foam::CloudType::kinematicCloudType kinematicCloudType; \
208 defineNamedTemplateTypeNameAndDebug \
210 Foam::PatchInteractionModel<kinematicCloudType>, \
216 defineTemplateRunTimeSelectionTable \
218 PatchInteractionModel<kinematicCloudType>, \
224#define makePatchInteractionModelType(SS, CloudType) \
226 typedef Foam::CloudType::kinematicCloudType kinematicCloudType; \
227 defineNamedTemplateTypeNameAndDebug(Foam::SS<kinematicCloudType>, 0); \
229 Foam::PatchInteractionModel<kinematicCloudType>:: \
230 adddictionaryConstructorToTable<Foam::SS<kinematicCloudType>> \
231 add##SS##CloudType##kinematicCloudType##ConstructorToTable_;
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
const CloudType & owner() const
Return const access to the owner cloud.
CloudSubModelBase(CloudType &owner)
Construct null from owner cloud.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
virtual void postEvolve()
Post-evolve hook.
const scalar & Urmax() const
Return Urmax.
static wordList interactionTypeNames_
virtual ~PatchInteractionModel()=default
Destructor.
PatchInteractionModel(CloudType &owner)
Construct null from owner.
TypeName("patchInteractionModel")
Runtime type information.
scalar escapedMass_
Mass of parcels escaped.
label escapedParcels_
Number of parcels escaped.
declareRunTimeSelectionTable(autoPtr, PatchInteractionModel, dictionary,(const dictionary &dict, CloudType &owner),(dict, owner))
Declare runtime constructor selection table.
virtual void addToEscapedParcels(const scalar mass)
Add to escaped parcels.
static autoPtr< PatchInteractionModel< CloudType > > New(const dictionary &dict, CloudType &owner)
Selector.
const word & UName() const
Return name of velocity field.
virtual void info()
Write patch interaction info.
static interactionType wordToInteractionType(const word &itWord)
Convert word to interaction result.
virtual bool correct(typename CloudType::parcelType &p, const polyPatch &pp, bool &keepParticle)=0
Apply velocity correction.
virtual void writeFileHeader(Ostream &os)
Output file header information.
const word UName_
Name of velocity field - default = "U".
virtual autoPtr< PatchInteractionModel< CloudType > > clone() const =0
Construct and return a clone.
static word interactionTypeToWord(const interactionType &itEnum)
Convert interaction result to word.
scalar Urmax_
Maximum relative U with patch for particle to be removed.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Base class for writing single files from the function objects.
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 Foam::string.
OBJstream os(runTime.globalPath()/outputName)
List< word > wordList
List of word.
DSMCCloud< dsmcParcel > CloudType
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.