Go to the documentation of this file.
32 template<
class CloudType>
37 Info<<
"Patch interaction model " << typeName <<
nl
38 <<
"Executing in turn " <<
endl;
41 for (
const entry& dEntry :
dict)
51 models_.resize(
count);
54 for (
const entry& dEntry :
dict)
70 dict.readEntry(
"oneInteractionOnly", oneInteractionOnly_);
71 if (oneInteractionOnly_)
73 Info<<
"Stopping upon first model that interacts with particle."
78 Info<<
"Allowing multiple models to interact."
88 template<
class CloudType>
97 read(this->coeffDict());
101 template<
class CloudType>
108 oneInteractionOnly_(pim.oneInteractionOnly_),
115 template<
class CloudType>
120 if (models_[i].active())
129 template<
class CloudType>
137 label origFacei =
p.face();
138 label patchi = pp.
index();
140 bool interacted =
false;
144 bool myInteracted = models_[i].correct
151 if (myInteracted && oneInteractionOnly_)
156 interacted = (interacted || myInteracted);
162 if (
p.face() != origFacei)
164 origFacei =
p.face();
179 template<
class CloudType>
182 for (
auto& m : models_)
189 template<
class CloudType>
192 for (
auto& m : models_)
194 Info<<
"Patch interaction model " << m.type() <<
':' <<
endl;
virtual bool active() const
Flag to indicate whether model activates patch interaction model.
virtual bool correct(typename CloudType::parcelType &p, const polyPatch &pp, bool &keepParticle)
Apply velocity correction.
MultiInteraction(const dictionary &dict, CloudType &cloud)
Construct from dictionary.
Runs multiple patch interaction models in turn. Takes dictionary where all the subdictionaries are th...
Ostream & endl(Ostream &os)
Add newline and flush stream.
#define forAll(list, i)
Loop across all elements in list.
virtual void info(Ostream &os)
Write patch interaction info to stream.
Templated patch interaction model class.
virtual void postEvolve()
Post-evolve hook.
messageStream Info
Information stream (stdout output on master, null elsewhere)
A patch is a list of labels that address the faces in the global face list.
InfoProxy< IOstream > info() const
Return info proxy.
Templated base class for dsmc cloud.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
OBJstream os(runTime.globalPath()/outputName)
label index() const noexcept
The index of this patch in the boundaryMesh.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
A cloud is a registry collection of lagrangian particles.
unsigned int count(const UList< bool > &bools, const bool val=true)
Count number of 'true' entries.
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface....
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,...