30 template<
class CloudType>
35 Info<<
"Patch interaction model " << typeName <<
nl 36 <<
"Executing in turn " <<
endl;
49 models_.setSize(nModels);
67 oneInteractionOnly_ = Switch(dict.lookup(
"oneInteractionOnly"));
69 if (oneInteractionOnly_)
71 Info<<
"Stopping upon first model that interacts with particle." 76 Info<<
"Allowing multiple models to interact." 86 template<
class CloudType>
95 read(this->coeffDict());
99 template<
class CloudType>
106 oneInteractionOnly_(pim.oneInteractionOnly_),
113 template<
class CloudType>
120 template<
class CloudType>
125 if (models_[i].active())
134 template<
class CloudType>
140 const scalar trackFraction,
144 label origFacei = p.face();
147 bool interacted =
false;
151 bool myInteracted = models_[i].correct
160 if (myInteracted && oneInteractionOnly_)
165 interacted = (interacted || myInteracted);
171 if (p.face() != origFacei)
173 origFacei = p.face();
174 patchi = p.patch(p.face());
#define forAll(list, i)
Loop across all elements in list.
virtual bool active() const
Flag to indicate whether model activates patch interaction model.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface...
Ostream & endl(Ostream &os)
Add newline and flush stream.
Runs multiple patch interaction models in turn. Takes dictionary where all the subdictionaries are th...
Templated patch interaction model class.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
bool read(const char *, int32_t &)
virtual bool correct(typename CloudType::parcelType &p, const polyPatch &pp, bool &keepParticle, const scalar trackFraction, const tetIndices &tetIs)
Apply velocity correction.
virtual ~MultiInteraction()
Destructor.
Storage and named access for the indices of a tet which is part of the decomposition of a cell...
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
ParcelType parcelType
Type of parcel the cloud was instantiated for.
MultiInteraction(const dictionary &dict, CloudType &cloud)
Construct from dictionary.
A patch is a list of labels that address the faces in the global face list.
Templated base class for dsmc cloud.
label index() const
Return the index of this patch in the boundaryMesh.