32template<
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)
61 PatchInteractionModel<CloudType>::New
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."
88template<
class CloudType>
101template<
class CloudType>
108 oneInteractionOnly_(pim.oneInteractionOnly_),
115template<
class CloudType>
120 if (models_[i].active())
129template<
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();
179template<
class CloudType>
182 for (
auto& m : models_)
189template<
class CloudType>
192 for (
auto& m : models_)
194 Info<<
"Patch interaction model " << m.type() <<
':' <<
endl;
Templated base class for dsmc cloud.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
InfoProxy< IOstream > info() const
Return info proxy.
Runs multiple patch interaction models in turn. Takes dictionary where all the subdictionaries are th...
virtual void postEvolve()
Post-evolve hook.
virtual bool active() const
Flag to indicate whether model activates patch interaction model.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Templated patch interaction model class.
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
virtual bool read()
Re-read model coefficients if they have changed.
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface....
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,...
InfoProxy< ensightCells > info() const
Return info proxy.
label index() const noexcept
The index of this patch in the boundaryMesh.
A patch is a list of labels that address the faces in the global face list.
const dictionary & coeffDict() const
Return const access to the coefficients dictionary.
OBJstream os(runTime.globalPath()/outputName)
unsigned int count(const UList< bool > &bools, const bool val=true)
Count number of 'true' entries.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
constexpr char nl
The newline '\n' character (0x0a)
#define forAll(list, i)
Loop across all elements in list.