FreeFOAM The Cross-Platform CFD Toolkit
ExactParticle< ParticleType > Class Template Reference

Special version of Particle to do tracking on non-convex cells. More...

#include <autoMesh/ExactParticle.H>


Detailed Description

template<class ParticleType>
class Foam::ExactParticle< ParticleType >

Special version of Particle to do tracking on non-convex cells.

Definition at line 64 of file ExactParticle.H.

+ Inheritance diagram for ExactParticle< ParticleType >:
+ Collaboration diagram for ExactParticle< ParticleType >:

List of all members.

Classes

class  iNew
 Factory class to read-construct particles used for parallel transfer. More...

Public Member Functions

 ExactParticle (const Cloud< ParticleType > &cloud, const vector &position, const label celli)
 Construct from components.
 ExactParticle (const Cloud< ParticleType > &cloud, Istream &is, bool readFields=true)
 Construct from Istream.
virtual ~ExactParticle ()
template<class TrackingData >
label track (const vector &endPosition, TrackingData &td)
 Track particle to end of trajectory.
label track (const vector &endPosition)
 Calls the templated track with dummy TrackingData.
template<class TrackingData >
scalar trackToFace (const vector &endPosition, TrackingData &td)
 Track particle to a given position and returns 1.0 if the.
scalar trackToFace (const vector &endPosition)
 Calls the templated trackToFace with dummy TrackingData.
- Public Member Functions inherited from Particle< ParticleType >
 TypeName ("Particle")
 Runtime type information.
 Particle (const Cloud< ParticleType > &, const vector &position, const label celli)
 Construct from components.
 Particle (const Cloud< ParticleType > &, Istream &, bool readFields=true)
 Construct from Istream.
 Particle (const Particle &p)
 Construct as a copy.
autoPtr< ParticleType > clone () const
 Construct a clone.
virtual ~Particle ()
 Destructor.
bool inCell () const
 Return true if particle is in cell.
bool inCell (const vector &position, const label celli, const scalar stepFraction) const
 Return true if position is in cell i.
const vectorposition () const
 Return current particle position.
vectorposition ()
 Return current particle position.
label & cell ()
 Return current cell particle is in.
label cell () const
 Return current cell particle is in.
label face () const
 Return current face particle is on otherwise -1.
const Cloud< ParticleType > & cloud () const
 Return reference to the particle cloud.
bool softImpact () const
 Return the impact model to be used, soft or hard (default).
scalar currentTime () const
 Return the particle current time.
bool onBoundary () const
 Is the particle on the boundary/(or outside the domain)?
label patch (const label facei) const
 Which patch is particle on.
label patchFace (const label patchi, const label facei) const
 Which face of this patch is this particle on.
scalar wallImpactDistance (const vector &n) const
 The nearest distance to a wall that.
scalar & stepFraction ()
 Return the fraction of time-step completed.
scalar stepFraction () const
 Return the fraction of time-step completed.
label origProc () const
 Return the originating processor id.
label origId () const
 Return the particle id on originating processor.
template<class TrackData >
label track (const vector &endPosition, TrackData &td)
 Track particle to end of trajectory.
template<class TrackData >
scalar trackToFace (const vector &endPosition, TrackData &td)
 Track particle to a given position and returns 1.0 if the.
label faceInterpolation () const
 Return the index of the face to be used in the interpolation.
void write (Ostream &os, bool writeFields) const
 Write the particle data.

Friends

class Cloud< ParticleType >
Ostreamoperator (Ostream &, const ExactParticle< ParticleType > &)

Additional Inherited Members

- Static Public Member Functions inherited from Particle< ParticleType >
static void readFields (Cloud< ParticleType > &c)
 Read the fields associated with the owner cloud.
static void writeFields (const Cloud< ParticleType > &c)
 Write the fields associated with the owner cloud.
- Static Public Attributes inherited from Particle< ParticleType >
static string propHeader = "(Px Py Pz) cellI origProc origId"
 String representation of properties.
- Protected Member Functions inherited from Particle< ParticleType >
scalar lambda (const vector &from, const vector &to, const label facei, const scalar stepFraction) const
 Return the 'lambda' value for the position, p, on the face,.
scalar lambda (const vector &from, const vector &to, const label facei) const
 Return the 'lambda' value for the position, p, on the face,.
void findFaces (const vector &position, DynamicList< label > &faceList) const
 Find the faces between position and cell centre.
void findFaces (const vector &position, const label celli, const scalar stepFraction, DynamicList< label > &faceList) const
 Find the faces between position and cell centre.
template<class TrackData >
bool hitPatch (const polyPatch &, TrackData &td, const label patchI)
 Overridable function to handle the particle hitting a patch.
template<class TrackData >
void hitWedgePatch (const wedgePolyPatch &, TrackData &td)
 Overridable function to handle the particle hitting a wedgePatch.
template<class TrackData >
void hitSymmetryPatch (const symmetryPolyPatch &, TrackData &td)
 Overridable function to handle the particle hitting a.
template<class TrackData >
void hitCyclicPatch (const cyclicPolyPatch &, TrackData &td)
 Overridable function to handle the particle hitting a cyclicPatch.
template<class TrackData >
void hitProcessorPatch (const processorPolyPatch &, TrackData &td)
 Overridable function to handle the particle hitting a.
template<class TrackData >
void hitWallPatch (const wallPolyPatch &, TrackData &td)
 Overridable function to handle the particle hitting a wallPatch.
template<class TrackData >
void hitPatch (const polyPatch &, TrackData &td)
 Overridable function to handle the particle hitting a.
virtual void transformPosition (const tensor &T)
 Transform the position the particle.
virtual void transformProperties (const tensor &T)
 Transform the physical properties of the particle.
virtual void transformProperties (const vector &separation)
 Transform the physical properties of the particle.
template<class TrackData >
void prepareForParallelTransfer (const label patchi, TrackData &td)
 Convert global addressing to the processor patch.
template<class TrackData >
void correctAfterParallelTransfer (const label patchi, TrackData &td)
 Convert processor patch addressing to the global equivalents.
- Protected Attributes inherited from Particle< ParticleType >
const Cloud< ParticleType > & cloud_
 Reference to the particle cloud.
vector position_
 Position of particle.
label celli_
 Index of the cell it is in.
label facei_
 Face index if the particle is on a face otherwise -1.
scalar stepFraction_
 Fraction of time-step completed.
label origProc_
 Originating processor id.
label origId_
 Local particle id on originating processor.

Constructor & Destructor Documentation

ExactParticle ( const Cloud< ParticleType > &  cloud,
const vector position,
const label  celli 
)
inline

Construct from components.

Definition at line 78 of file ExactParticle.H.

ExactParticle ( const Cloud< ParticleType > &  cloud,
Istream is,
bool  readFields = true 
)
inline

Construct from Istream.

Definition at line 90 of file ExactParticle.H.

virtual ~ExactParticle ( )
inlinevirtual

Definition at line 128 of file ExactParticle.H.


Member Function Documentation

Foam::label track ( const vector endPosition,
TrackingData &  td 
)

Track particle to end of trajectory.

or until it hits the boundary. On entry 'stepFraction()' should be set to the fraction of the time-step at which the tracking starts and on exit it contains the fraction of the time-step completed. Returns the boundary face index if the track stops at the boundary, -1 otherwise.

Definition at line 33 of file ExactParticle.C.

Foam::label track ( const vector endPosition)

Calls the templated track with dummy TrackingData.

Reimplemented from Particle< ParticleType >.

Definition at line 54 of file ExactParticle.C.

Foam::scalar trackToFace ( const vector endPosition,
TrackingData &  td 
)

Track particle to a given position and returns 1.0 if the.

trajectory is completed without hitting a face otherwise stops at the face and returns the fraction of the trajectory completed. on entry 'stepFraction()' should be set to the fraction of the time-step at which the tracking starts.

Definition at line 66 of file ExactParticle.C.

References Foam::abort(), polyMesh::boundaryMesh(), primitiveMesh::cellCentres(), primitiveMesh::cells(), PointHit< Point >::distance(), primitiveMesh::faceCentres(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), polyMesh::faces(), Foam::FatalError, FatalErrorIn, forAll, PointHit< Point >::hit(), PointHit< Point >::hitPoint(), mesh, Foam::nl, p, patchi, and polyMesh::points().

Foam::scalar trackToFace ( const vector endPosition)

Calls the templated trackToFace with dummy TrackingData.

Reimplemented from Particle< ParticleType >.

Definition at line 241 of file ExactParticle.C.


Friends And Related Function Documentation

friend class Cloud< ParticleType >
friend

Reimplemented from Particle< ParticleType >.

Definition at line 71 of file ExactParticle.H.

Ostream& operator ( Ostream ,
const ExactParticle< ParticleType > &   
)
friend

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