32template<
class CloudType>
36 { resetMode::none,
"none" },
38 { resetMode::writeTime,
"writeTime" },
43template<
class CloudType>
46 autoPtr<volScalarField>& fieldPtr,
47 const word& fieldName,
48 const dimensionSet& dims
53 fieldPtr->primitiveFieldRef() = scalar(0);
57 const fvMesh&
mesh = this->owner().mesh();
71 mesh.time().timeName(),
73 IOobject::READ_IF_PRESENT,
85template<
class CloudType>
93template<
class CloudType>
103 <<
"massPtr not valid" << abort(FatalError);
113 <<
"countPtr not valid" <<
abort(FatalError);
116 if (resetMode_ == resetMode::writeTime)
125template<
class CloudType>
130 const word& modelName
133 CloudFunctionObject<CloudType>(
dict, owner, modelName, typeName),
138 resetModeNames_.getOrDefault
150template<
class CloudType>
159 resetMode_(pii.resetMode_)
165template<
class CloudType>
168 const typename parcelType::trackingData&
171 if (resetMode_ == resetMode::timeStep)
178template<
class CloudType>
183 const typename parcelType::trackingData&
td
186 const label patchi =
pp.index();
187 const label facei =
pp.whichFace(
p.face());
189 massPtr_->boundaryFieldRef()[patchi][facei] +=
p.nParticle()*
p.mass();
190 countPtr_->boundaryFieldRef()[patchi][facei] += 1;
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
Templated cloud function object base class.
CloudFunctionObject(CloudType &owner)
Construct null from owner.
const CloudType & owner() const
Return const access to the owner cloud.
particle::trackingData trackingData
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
@ NO_REGISTER
Do not request registration (bool: false).
@ READ_IF_PRESENT
Reading is optional [identical to LAZY_READ].
@ NO_WRITE
Ignore writing from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
static word scopedName(const std::string &scope, const word &name)
Create scope:name or scope_name string.
Creates volume fields whose boundaries are used to store patch interaction statistics.
void clearOrReset(autoPtr< volScalarField > &fieldPtr, const word &fieldName, const dimensionSet &dims) const
Helper function to clear or reset fields.
static const Enum< resetMode > resetModeNames_
virtual void write()
Write post-processing info.
PatchInteractionFields(const dictionary &dict, CloudType &owner, const word &modelName)
Construct from dictionary.
virtual void preEvolve(const typename parcelType::trackingData &td)
Pre-evolve hook.
void reset()
Create|read|reset the fields.
virtual bool postPatch(const parcelType &p, const polyPatch &pp, const typename parcelType::trackingData &td)
Post-patch hook.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
void reset(T *p=nullptr) noexcept
Delete managed object and set to new given pointer.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
Mesh data needed to do the Finite Volume discretisation.
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.
const dictionary & dict() const
Return const access to the cloud dictionary.
const word & modelName() const
Return const access to the name of the sub-model.
A class for handling words, derived from Foam::string.
limits reset(1/(limits.max()+VSMALL), 1/(limits.min()+VSMALL))
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
DSMCCloud< dsmcParcel > CloudType
const dimensionSet dimless
Dimensionless.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
errorManip< error > abort(error &err)
static constexpr const zero Zero
Global zero (0).
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)