40 <<
"Particle counter has overflowed. This might cause problems"
41 <<
" when reconstructing particle tracks." <<
endl;
125 return tetIndices(celli_, tetFacei_, tetPti_);
131 return currentTetIndices(
mesh).faceTri(
mesh).normal();
176 stepFraction_ = stepFraction;
177 stepFractionBehind_ = 0;
189 if (!onBoundaryFace(
mesh))
192 <<
"Patch data was requested for a particle that isn't on a patch"
207 normal = normalAndDisplacement.
first();
208 displacement = normalAndDisplacement.
second();
An ordered pair of two objects of type <Type> with first() and second() elements.
const Type & second() const
Return second.
const Type & first() const
Return first.
label face() const
Return current face particle is on otherwise -1.
vector normal(const polyMesh &mesh) const
Return the normal of the tri on tetFacei_ for the.
label tetPt() const
Return current tet face particle is in.
label origProc() const
Return the originating processor ID.
const barycentric & coordinates() const
Return current particle coordinates.
label cell() const
Return current cell particle is in.
void reset(const scalar stepFraction)
Set the step fraction and clear the behind data in preparation.
label patch(const polyMesh &mesh) const
Return the index of patch that the particle is on.
scalar stepFraction() const
Return the fraction of time-step completed.
bool onFace() const
Is the particle on a face?
void patchData(const polyMesh &mesh, vector &normal, vector &displacement) const
Get the normal and displacement of the current patch location.
bool onBoundaryFace(const polyMesh &mesh) const
Is the particle on a boundary face?
tetIndices currentTetIndices(const polyMesh &mesh) const
Return the indices of the current tet that the.
bool onInternalFace(const polyMesh &mesh) const
Is the particle on an internal face?
vector position(const polyMesh &mesh) const
Return current particle position.
label getNewParticleIndex() const
Get unique particle creation id.
label origId() const
Return the particle ID on the originating processor.
static label particleCount
Cumulative particle counter - used to provide unique ID.
label tetFace() const
Return current tet face particle is in.
label whichPatch(const label faceIndex) const
Return patch index for a given face label.
Mesh consisting of general polyhedral cells.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
bool isInternalFace(const label faceIndex) const
Return true if given face label is internal to the mesh.
Storage and named access for the indices of a tet which is part of the decomposition of a cell.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define WarningInFunction
Report a warning using Foam::Warning.
Pair< vector > faceNormalAndDisplacement(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label facei, const label faceTrii, const scalar stepFraction)
Return the normal of the corresponding point on the associated face and.
point position(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label facei, const label faceTrii, const scalar stepFraction)
Return the position given the coordinates and tet topology.
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
static const label labelMax