All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
trackedParticle Class Reference

Particle class that marks cells it passes through. Used to mark cells visited by feature edges. More...

Inheritance diagram for trackedParticle:
Collaboration diagram for trackedParticle:

Classes

class  iNew
 Factory class to read-construct particles used for. More...
 
class  trackingData
 Class used to pass tracking data to the trackToFace function. More...
 

Public Member Functions

 trackedParticle (const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPtI, const point &end, const label level, const label i, const label j, const label k)
 Construct from components. More...
 
 trackedParticle (const polyMesh &mesh, const vector &position, const label celli, const point &end, const label level, const label i, const label j, const label k)
 Construct from a position and a cell, searching for the rest of the. More...
 
 trackedParticle (const polyMesh &mesh, Istream &is, bool readFields=true)
 Construct from Istream. More...
 
autoPtr< particleclone () const
 Construct and return a clone. More...
 
pointstart ()
 Point to track from. More...
 
pointend ()
 Point to track to. More...
 
label i () const
 Transported label. More...
 
labeli ()
 Transported label. More...
 
label j () const
 Transported label. More...
 
labelj ()
 Transported label. More...
 
label k () const
 Transported label. More...
 
labelk ()
 Transported label. More...
 
bool move (Cloud< trackedParticle > &, trackingData &, const scalar)
 Track all particles to their end point. More...
 
bool hitPatch (Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a patch. More...
 
void hitWedgePatch (Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a wedge. More...
 
void hitSymmetryPlanePatch (Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
void hitSymmetryPatch (Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
void hitCyclicPatch (Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a cyclic. More...
 
void hitCyclicAMIPatch (const vector &, const scalar, Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a cyclicAMI. More...
 
void hitCyclicACMIPatch (const vector &, const scalar, Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a cyclicACMI. More...
 
void hitCyclicRepeatAMIPatch (const vector &, const scalar, Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
void hitProcessorPatch (Cloud< trackedParticle > &, trackingData &)
 
void hitWallPatch (Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a wallPatch. More...
 
void correctAfterParallelTransfer (const label, trackingData &)
 Convert processor patch addressing to the global equivalents. More...
 
- Public Member Functions inherited from particle< Type >
 TypeName ("particle")
 Runtime type information. More...
 
 particle (const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
 Construct from components. More...
 
 particle (const polyMesh &mesh, const vector &position, const label celli)
 Construct from a position and a cell, searching for the rest of the. More...
 
 particle (const polyMesh &mesh, Istream &, bool readFields=true)
 Construct from Istream. More...
 
 particle (const particle &p)
 Construct as a copy. More...
 
 particle (const particle &p, const polyMesh &mesh)
 Construct as a copy with references to a new mesh. More...
 
virtual ~particle ()
 Destructor. More...
 
label getNewParticleID () const
 Get unique particle creation id. More...
 
const polyMeshmesh () const
 Return the mesh database. More...
 
const barycentriccoordinates () const
 Return current particle coordinates. More...
 
label cell () const
 Return current cell particle is in. More...
 
label tetFace () const
 Return current tet face particle is in. More...
 
label tetPt () const
 Return current tet face particle is in. More...
 
label face () const
 Return current face particle is on otherwise -1. More...
 
scalar stepFraction () const
 Return the fraction of time-step completed. More...
 
scalar & stepFraction ()
 Return the fraction of time-step completed. More...
 
label origProc () const
 Return the originating processor ID. More...
 
labelorigProc ()
 Return the originating processor ID. More...
 
label origId () const
 Return the particle ID on the originating processor. More...
 
labelorigId ()
 Return the particle ID on the originating processor. More...
 
Pair< scalar > stepFractionSpan () const
 Return the step fraction change within the overall time-step. More...
 
scalar currentTimeFraction () const
 Return the current fraction within the timestep. This differs. More...
 
tetIndices currentTetIndices () const
 Return the indices of the current tet that the. More...
 
barycentricTensor currentTetTransform () const
 Return the current tet transformation tensor. More...
 
vector normal () const
 Return the normal of the tri on tetFacei_ for the. More...
 
bool onFace () const
 Is the particle on a face? More...
 
bool onInternalFace () const
 Is the particle on an internal face? More...
 
bool onBoundaryFace () const
 Is the particle on a boundary face? More...
 
label patch () const
 Return the index of patch that the particle is on. More...
 
vector position () const
 Return current particle position. More...
 
void reset ()
 Set step fraction and behind data to zero in preparation for a new. More...
 
scalar track (const vector &displacement, const scalar fraction)
 Track along the displacement for a given fraction of the overall. More...
 
scalar trackToCell (const vector &displacement, const scalar fraction)
 As particle::track, but stops when a new cell is reached. More...
 
scalar trackToFace (const vector &displacement, const scalar fraction)
 As particle::track, but stops when a face is hit. More...
 
scalar trackToTri (const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToFace, but stops when a tet triangle is hit. On. More...
 
scalar trackToStationaryTri (const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToTri, but for stationary meshes. More...
 
scalar trackToMovingTri (const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToTri, but for moving meshes. More...
 
template<class TrackCloudType >
void hitFace (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Hit the current face. If the current face is internal than this. More...
 
template<class TrackCloudType >
void hitFaceNoChangeToMasterPatch (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 As above, but does not change the master patch. Needed in order for. More...
 
template<class TrackCloudType >
scalar trackToAndHitFace (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Convenience function. Combines trackToFace and hitFace. More...
 
vector deviationFromMeshCentre () const
 Get the displacement from the mesh centre. Used to correct the. More...
 
void patchData (vector &normal, vector &displacement) const
 Get the normal and displacement of the current patch location. More...
 
virtual void transformProperties (const transformer &)
 Transform the physical properties of the particle. More...
 
void prepareForParallelTransfer ()
 Convert global addressing to the processor patch local equivalents. More...
 
void correctAfterParallelTransfer (const label patchi, trackingData &td)
 Convert processor patch addressing to the global equivalents. More...
 
void prepareForInteractionListReferral (const transformer &transform)
 Break the topology and store the particle position so that the. More...
 
void correctAfterInteractionListReferral (const label celli)
 Correct the topology after referral. The particle may still be. More...
 
label procTetPt (const polyMesh &procMesh, const label procCell, const label procTetFace) const
 Return the tet point appropriate for decomposition or reconstruction. More...
 
void autoMap (const vector &position, const mapPolyMesh &mapper)
 Map after a topology change. More...
 
void writePosition (Ostream &) const
 Write the particle position and cell. More...
 
template<class TrackCloudType >
Foam::scalar trackToAndHitFace (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 

Friends

class Cloud< trackedParticle >
 
Ostreamoperator<< (Ostream &, const trackedParticle &)
 

Additional Inherited Members

- Static Public Member Functions inherited from particle< Type >
static string propertyList ()
 
template<class TrackCloudType >
static void readFields (TrackCloudType &c)
 Read the fields associated with the owner cloud. More...
 
template<class TrackCloudType >
static void writeFields (const TrackCloudType &c)
 Write the fields associated with the owner cloud. More...
 
- Static Public Attributes inherited from particle< Type >
static string propertyList_ = Foam::particle::propertyList()
 String representation of properties. More...
 
static label particleCount_ = 0
 Cumulative particle counter - used to provide unique ID. More...
 
- Protected Member Functions inherited from particle< Type >
template<class TrackCloudType >
bool hitPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a patch. More...
 
template<class TrackCloudType >
void hitWedgePatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a wedgePatch. More...
 
template<class TrackCloudType >
void hitSymmetryPlanePatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
template<class TrackCloudType >
void hitSymmetryPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a symmetryPatch. More...
 
template<class TrackCloudType >
void hitCyclicPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a cyclicPatch. More...
 
template<class TrackCloudType >
void hitCyclicAMIPatch (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Overridable function to handle the particle hitting a cyclicAMIPatch. More...
 
template<class TrackCloudType >
void hitCyclicACMIPatch (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Overridable function to handle the particle hitting a. More...
 
template<class TrackCloudType >
void hitCyclicRepeatAMIPatch (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Overridable function to handle the particle hitting an. More...
 
template<class TrackCloudType >
void hitProcessorPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a processorPatch. More...
 
template<class TrackCloudType >
void hitWallPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a wallPatch. More...
 

Detailed Description

Particle class that marks cells it passes through. Used to mark cells visited by feature edges.

Source files

Definition at line 60 of file trackedParticle.H.

Constructor & Destructor Documentation

◆ trackedParticle() [1/3]

trackedParticle ( const polyMesh mesh,
const barycentric coordinates,
const label  celli,
const label  tetFacei,
const label  tetPtI,
const point end,
const label  level,
const label  i,
const label  j,
const label  k 
)

Construct from components.

Definition at line 32 of file trackedParticle.C.

Referenced by trackedParticle::clone(), trackedParticle::iNew::operator()(), trackedParticle::trackedParticle(), and trackedParticle::trackingData::trackingData().

Here is the caller graph for this function:

◆ trackedParticle() [2/3]

trackedParticle ( const polyMesh mesh,
const vector position,
const label  celli,
const point end,
const label  level,
const label  i,
const label  j,
const label  k 
)

Construct from a position and a cell, searching for the rest of the.

required topology

Definition at line 56 of file trackedParticle.C.

References trackedParticle::trackedParticle().

Here is the call graph for this function:

◆ trackedParticle() [3/3]

trackedParticle ( const polyMesh mesh,
Istream is,
bool  readFields = true 
)

Construct from Istream.

Definition at line 78 of file trackedParticle.C.

References IOstream::check(), IOstream::format(), trackedParticle::move(), Istream::read(), and Foam::readLabel().

Here is the call graph for this function:

Member Function Documentation

◆ clone()

autoPtr<particle> clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented from particle< Type >.

Definition at line 159 of file trackedParticle.H.

References trackedParticle::trackedParticle().

Here is the call graph for this function:

◆ start()

point& start ( )
inline

Point to track from.

Definition at line 190 of file trackedParticle.H.

◆ end()

point& end ( )
inline

Point to track to.

Definition at line 196 of file trackedParticle.H.

Referenced by trackedParticle::trackingData::trackingData().

Here is the caller graph for this function:

◆ i() [1/2]

label i ( ) const
inline

Transported label.

Definition at line 202 of file trackedParticle.H.

Referenced by trackedParticle::correctAfterParallelTransfer(), and trackedParticle::trackingData::trackingData().

Here is the caller graph for this function:

◆ i() [2/2]

label& i ( )
inline

Transported label.

Definition at line 208 of file trackedParticle.H.

◆ j() [1/2]

label j ( ) const
inline

Transported label.

Definition at line 214 of file trackedParticle.H.

Referenced by trackedParticle::trackingData::trackingData().

Here is the caller graph for this function:

◆ j() [2/2]

label& j ( )
inline

Transported label.

Definition at line 220 of file trackedParticle.H.

◆ k() [1/2]

label k ( ) const
inline

Transported label.

Definition at line 226 of file trackedParticle.H.

Referenced by trackedParticle::correctAfterParallelTransfer(), and trackedParticle::trackingData::trackingData().

Here is the caller graph for this function:

◆ k() [2/2]

◆ move()

bool move ( Cloud< trackedParticle > &  cloud,
trackingData td,
const scalar  trackTime 
)

Track all particles to their end point.

Definition at line 119 of file trackedParticle.C.

References f(), particle< Type >::trackingData::keepParticle, Foam::max(), trackedParticle::trackingData::maxLevel_, s(), and particle< Type >::trackingData::switchProcessor.

Referenced by trackedParticle::k(), and trackedParticle::trackedParticle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitPatch()

bool hitPatch ( Cloud< trackedParticle > &  ,
trackingData  
)

Overridable function to handle the particle hitting a patch.

Executed before other patch-hitting functions

Definition at line 157 of file trackedParticle.C.

References trackedParticle::hitWedgePatch().

Referenced by trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitWedgePatch()

void hitWedgePatch ( Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a wedge.

Definition at line 164 of file trackedParticle.C.

References trackedParticle::hitSymmetryPlanePatch(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitSymmetryPlanePatch()

void hitSymmetryPlanePatch ( Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a.

symmetry plane

Definition at line 175 of file trackedParticle.C.

References trackedParticle::hitSymmetryPatch(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitWedgePatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitSymmetryPatch()

void hitSymmetryPatch ( Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a.

symmetry patch

Definition at line 186 of file trackedParticle.C.

References trackedParticle::hitCyclicPatch(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitSymmetryPlanePatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitCyclicPatch()

void hitCyclicPatch ( Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a cyclic.

Definition at line 197 of file trackedParticle.C.

References trackedParticle::hitCyclicAMIPatch(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitSymmetryPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitCyclicAMIPatch()

void hitCyclicAMIPatch ( const vector ,
const scalar  ,
Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a cyclicAMI.

Definition at line 208 of file trackedParticle.C.

References trackedParticle::hitCyclicACMIPatch(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitCyclicPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitCyclicACMIPatch()

void hitCyclicACMIPatch ( const vector ,
const scalar  ,
Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a cyclicACMI.

Definition at line 221 of file trackedParticle.C.

References trackedParticle::hitCyclicRepeatAMIPatch(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitCyclicAMIPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitCyclicRepeatAMIPatch()

void hitCyclicRepeatAMIPatch ( const vector ,
const scalar  ,
Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a.

cyclicRepeatAMI

Definition at line 234 of file trackedParticle.C.

References trackedParticle::hitProcessorPatch(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitCyclicACMIPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitProcessorPatch()

void hitProcessorPatch ( Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a processorPatch

Definition at line 247 of file trackedParticle.C.

References trackedParticle::hitWallPatch(), and particle< Type >::trackingData::switchProcessor.

Referenced by trackedParticle::hitCyclicRepeatAMIPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hitWallPatch()

void hitWallPatch ( Cloud< trackedParticle > &  ,
trackingData td 
)

Overridable function to handle the particle hitting a wallPatch.

Definition at line 258 of file trackedParticle.C.

References trackedParticle::correctAfterParallelTransfer(), and particle< Type >::trackingData::keepParticle.

Referenced by trackedParticle::hitProcessorPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ correctAfterParallelTransfer()

void correctAfterParallelTransfer ( const label  patchi,
trackingData td 
)

Convert processor patch addressing to the global equivalents.

and set the celli to the face-neighbour

Definition at line 269 of file trackedParticle.C.

References particle< Type >::correctAfterParallelTransfer(), trackedParticle::trackingData::featureEdgeVisited_, trackedParticle::i(), and trackedParticle::k().

Referenced by trackedParticle::hitWallPatch(), and trackedParticle::k().

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ Cloud< trackedParticle >

friend class Cloud< trackedParticle >
friend

Definition at line 87 of file trackedParticle.H.

◆ operator<<

Ostream& operator<< ( Ostream ,
const trackedParticle  
)
friend

Referenced by trackedParticle::k().


The documentation for this class was generated from the following files: