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  trackingData
 Class used to pass tracking data to the trackToFace function. More...
 

Public Member Functions

 trackedParticle (const meshSearch &searchEngine, const vector &position, const label celli, label &nLocateBoundaryHits, 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 (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...
 
scalar & fraction ()
 Fraction of the distance left to track. 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 (lagrangian::Cloud< trackedParticle > &, trackingData &)
 Track all particles to their end point. More...
 
void hitWedgePatch (lagrangian::Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a wedge. More...
 
void hitSymmetryPlanePatch (lagrangian::Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
void hitSymmetryPatch (lagrangian::Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
void hitCyclicPatch (lagrangian::Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a cyclic. More...
 
void hitWallPatch (lagrangian::Cloud< trackedParticle > &, trackingData &)
 Overridable function to handle the particle hitting a wallPatch. More...
 
void correctAfterParallelTransfer (lagrangian::Cloud< trackedParticle > &, trackingData &)
 Do corrections to the particle and tracking data following a. More...
 
- Public Member Functions inherited from particle
 TypeName ("particle")
 Runtime type information. More...
 
 particle (const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti, const label facei)
 Construct from components. More...
 
 particle (const meshSearch &searchEngine, const vector &position, const label celli, label &nLocateBoundaryHits)
 Construct from a position and a cell, searching for the rest of the. More...
 
 particle (Istream &, bool readFields=true)
 Construct from Istream. More...
 
 particle (const particle &p)
 Construct as a copy. More...
 
virtual ~particle ()
 Destructor. More...
 
label getNewParticleIndex () const
 Get unique particle creation id. 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...
 
labelface ()
 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...
 
tetIndices currentTetIndices (const polyMesh &mesh) const
 Return the indices of the current tet that the. More...
 
vector normal (const polyMesh &mesh) 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 polyMesh &mesh) const
 Is the particle on an internal face? More...
 
bool onBoundaryFace (const polyMesh &mesh) const
 Is the particle on a boundary face? More...
 
label patch (const polyMesh &mesh) const
 Return the index of patch that the particle is on. More...
 
vector position (const polyMesh &mesh) const
 Return current particle position. More...
 
void reset (const scalar stepFraction)
 Set the step fraction and clear the behind data in preparation. More...
 
bool locate (const meshSearch &searchEngine, const vector &position, label celli)
 Locate the particle at the given position. Returns whether or. More...
 
scalar track (const polyMesh &mesh, const vector &displacement, const scalar fraction)
 Track along the displacement for a given fraction of the overall. More...
 
scalar trackToCell (const polyMesh &mesh, const vector &displacement, const scalar fraction)
 As particle::track, but stops when a new cell is reached. More...
 
scalar trackToFace (const polyMesh &mesh, const vector &displacement, const scalar fraction)
 As particle::track, but stops when a face is hit. 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 >
scalar trackToAndHitFace (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Convenience function. Combines trackToFace and hitFace. More...
 
vector deviationFromMeshCentre (const polyMesh &mesh) const
 Get the displacement from the mesh centre. Used to correct the. More...
 
void patchData (const polyMesh &mesh, 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...
 
template<class TrackCloudType >
void prepareForParallelTransfer (TrackCloudType &, trackingData &)
 Make changes prior to a parallel transfer. Runs either. More...
 
template<class TrackCloudType >
void correctAfterParallelTransfer (TrackCloudType &, trackingData &)
 Make changes following a parallel transfer. Runs either. More...
 
void prepareForProcessorTransfer (trackingData &td)
 Make changes prior to a transfer across a processor boundary. More...
 
void correctAfterProcessorTransfer (trackingData &td)
 Make changes following a transfer across a processor boundary. More...
 
void prepareForNonConformalCyclicTransfer (const polyMesh &mesh, const label sendToPatch, const label sendToPatchFace, const vector &sendToPosition)
 Make changes prior to a transfer across a non conformal cyclic. More...
 
void correctAfterNonConformalCyclicTransfer (const polyMesh &mesh, const label sendToPatch, labelList &patchNLocateBoundaryHits)
 Make changes following a transfer across a non conformal cyclic. More...
 
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. More...
 
template<class TrackCloudType >
void hitCyclicPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
template<class TrackCloudType >
bool hitNonConformalCyclicPatch (const vector &displacement, const scalar fraction, const label patchi, 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. More...
 
template<class TrackCloudType >
void hitWallPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a wallPatch. More...
 
template<class TrackCloudType >
void hitBasicPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a basic. More...
 
void prepareForInteractionListReferral (const polyMesh &mesh, const transformer &transform)
 Break the topology and store the cartesian position so that the. More...
 
void correctAfterInteractionListReferral (const polyMesh &mesh, const label celli)
 Correct the topology after referral. Locates the particle. More...
 
label procTetPt (const polyMesh &mesh, const polyMesh &procMesh, const label procCell, const label procTetFace) const
 Return the tet point appropriate for decomposition or. 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)
 

Static Public Member Functions

static autoPtr< trackedParticleNew (Istream &is)
 Construct from Istream and return. More...
 
- Static Public Member Functions inherited from particle
static string propertyList ()
 
static autoPtr< particleNew (Istream &is)
 Construct from Istream and return. More...
 
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

static const bool instantaneous = true
 Streamlines are computed at an instant. More...
 
- Static Public Attributes inherited from particle
static string propertyList_ = Foam::particle::propertyList()
 String representation of properties. More...
 
static label particleCount = 0
 Cumulative particle counter - used to provide unique ID. More...
 
static const bool instantaneous = false
 Particles are not instantaneous by default. More...
 

Friends

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

Detailed Description

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

Source files

Definition at line 58 of file trackedParticle.H.

Constructor & Destructor Documentation

◆ trackedParticle() [1/2]

trackedParticle ( const meshSearch searchEngine,
const vector position,
const label  celli,
label nLocateBoundaryHits,
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 31 of file trackedParticle.C.

Referenced by trackedParticle::clone(), and trackedParticle::New().

Here is the caller graph for this function:

◆ trackedParticle() [2/2]

trackedParticle ( Istream is,
bool  readFields = true 
)

Construct from Istream.

Definition at line 55 of file trackedParticle.C.

References IOstream::ASCII, IOstream::check(), IOstream::format(), Istream::read(), particle::readFields(), 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.

Definition at line 151 of file trackedParticle.H.

References trackedParticle::trackedParticle().

Here is the call graph for this function:

◆ New()

static autoPtr<trackedParticle> New ( Istream is)
inlinestatic

Construct from Istream and return.

Definition at line 157 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 166 of file trackedParticle.H.

◆ end()

point& end ( )
inline

Point to track to.

Definition at line 172 of file trackedParticle.H.

◆ fraction()

scalar& fraction ( )
inline

Fraction of the distance left to track.

Definition at line 178 of file trackedParticle.H.

◆ i() [1/2]

label i ( ) const
inline

Transported label.

Definition at line 184 of file trackedParticle.H.

◆ i() [2/2]

label& i ( )
inline

Transported label.

Definition at line 190 of file trackedParticle.H.

◆ j() [1/2]

label j ( ) const
inline

Transported label.

Definition at line 196 of file trackedParticle.H.

◆ j() [2/2]

label& j ( )
inline

Transported label.

Definition at line 202 of file trackedParticle.H.

◆ k() [1/2]

label k ( ) const
inline

Transported label.

Definition at line 208 of file trackedParticle.H.

◆ k() [2/2]

label& k ( )
inline

Transported label.

Definition at line 214 of file trackedParticle.H.

◆ move()

bool move ( lagrangian::Cloud< trackedParticle > &  cloud,
trackingData td 
)

Track all particles to their end point.

Definition at line 91 of file trackedParticle.C.

References particle::trackingData::keepParticle, Foam::max(), trackedParticle::trackingData::maxLevel_, particle::trackingData::mesh, and particle::trackingData::sendToProc.

Here is the call graph for this function:

◆ hitWedgePatch()

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

Overridable function to handle the particle hitting a wedge.

Definition at line 118 of file trackedParticle.C.

References particle::trackingData::keepParticle.

◆ hitSymmetryPlanePatch()

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

Overridable function to handle the particle hitting a.

symmetry plane

Definition at line 129 of file trackedParticle.C.

References particle::trackingData::keepParticle.

◆ hitSymmetryPatch()

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

Overridable function to handle the particle hitting a.

symmetry patch

Definition at line 140 of file trackedParticle.C.

References particle::trackingData::keepParticle.

◆ hitCyclicPatch()

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

Overridable function to handle the particle hitting a cyclic.

Definition at line 151 of file trackedParticle.C.

References particle::trackingData::keepParticle.

◆ hitWallPatch()

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

Overridable function to handle the particle hitting a wallPatch.

Definition at line 162 of file trackedParticle.C.

References particle::trackingData::keepParticle.

◆ correctAfterParallelTransfer()

void correctAfterParallelTransfer ( lagrangian::Cloud< trackedParticle > &  cloud,
trackingData td 
)

Do corrections to the particle and tracking data following a.

transfer between processors

Definition at line 173 of file trackedParticle.C.

References particle::correctAfterParallelTransfer(), trackedParticle::trackingData::featureEdgeVisited_, and k.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ lagrangian::Cloud< trackedParticle >

friend class lagrangian::Cloud< trackedParticle >
friend

Definition at line 83 of file trackedParticle.H.

◆ operator<<

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

Member Data Documentation

◆ instantaneous

const bool instantaneous = true
static

Streamlines are computed at an instant.

Definition at line 127 of file trackedParticle.H.


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