36template<
class CloudType>
57template<
class CloudType>
65 CloudFunctionObject<CloudType>(
dict, owner, modelName, typeName),
66 trackInterval_(this->coeffDict().getLabel(
"trackInterval")),
67 maxSamples_(this->coeffDict().getLabel(
"maxSamples")),
68 resetOnWrite_(this->
coeffDict().getBool(
"resetOnWrite")),
74template<
class CloudType>
81 trackInterval_(ppm.trackInterval_),
82 maxSamples_(ppm.maxSamples_),
83 resetOnWrite_(ppm.resetOnWrite_),
84 faceHitCounter_(ppm.faceHitCounter_),
85 cloudPtr_(ppm.cloudPtr_)
91template<
class CloudType>
94 const typename parcelType::trackingData&
td
107template<
class CloudType>
111 const typename parcelType::trackingData&
td
116 this->owner().solution().output()
117 || this->owner().solution().transient()
123 <<
"Cloud storage not allocated" << abort(FatalError);
127 ++(faceHitCounter_(
labelPair(
p.origProc(),
p.origId()), 0));
129 const label
nSamples = floor(count/trackInterval_);
131 if ((count % trackInterval_) == 0 &&
nSamples < maxSamples_)
135 static_cast<parcelType*
>(
p.clone(this->owner().mesh()).ptr())
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
Records particle state (all variables) on each call to postFace.
ParticleTracks(const dictionary &dict, CloudType &owner, const word &modelName)
Construct from dictionary.
void write()
Write post-processing info.
virtual void preEvolve(const typename parcelType::trackingData &td)
Pre-evolve hook.
virtual bool postFace(const parcelType &p, const typename parcelType::trackingData &td)
Post-face hook.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Selector class for relaxation factors, solver type and solution.
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.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
#define DebugInFunction
Report an information message using Foam::Info.
unsigned int count(const UList< bool > &bools, const bool val=true)
Count number of 'true' entries.
Pair< label > labelPair
A pair of labels.
DSMCCloud< dsmcParcel > CloudType
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Ostream & endl(Ostream &os)
Add newline and flush stream.
errorManip< error > abort(error &err)
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
const label nSamples(pdfDictionary.get< label >("nSamples"))