Go to the documentation of this file.
56 class cyclicPolyPatch;
57 class processorPolyPatch;
58 class symmetryPlanePolyPatch;
59 class symmetryPolyPatch;
71 bool operator==(
const particle&,
const particle&);
73 bool operator!=(
const particle&,
const particle&);
94 template<
class CloudType>
189 const label tetPlaneBasePtI,
191 const label tetFaceI,
203 const label tetPlaneBasePtI,
205 const label tetFaceI,
226 template<
class CloudType>
240 template<
class TrackData>
247 template<
class TrackData>
253 const scalar trackFraction,
258 template<
class TrackData>
263 template<
class TrackData>
272 template<
class TrackData>
276 template<
class TrackData>
280 template<
class TrackData>
290 template<
class TrackData>
294 template<
class TrackData>
304 template<
class TrackData>
341 const label tetFaceI,
352 bool doCellFacePt =
true
512 template<
class TrackData>
521 template<
class TrackData>
548 template<
class TrackData>
553 template<
class TrackData>
560 template<
class CloudType>
564 template<
class CloudType>
bool boundaryFace(const label faceI) const
Is this global face a boundary face?
Templated 3D tensor derived from VectorSpace adding construction from 9 components,...
bool hitPatch(const polyPatch &, TrackData &td, const label patchI, const scalar trackFraction, const tetIndices &tetIs)
Overridable function to handle the particle hitting a.
scalar stepFraction_
Fraction of time-step completed.
bool onBoundary() const
Is the particle on the boundary/(or outside the domain)?
label & face()
Return current face particle is on otherwise -1.
label origId() const
Return const access to the particle id on originating processor.
void hitWedgePatch(const wedgePolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a wedgePatch.
Wedge front and back plane patch.
static const scalar minStepFractionTol
Minimum stepFraction tolerance.
Factory class to read-construct particles used for.
void hitFace(TrackData &td)
Overridable function to handle the particle hitting a face.
virtual scalar wallImpactDistance(const vector &n) const
The nearest distance to a wall that.
scalar trackToFace(const vector &endPosition, TrackData &td)
Track particle to a given position and returns 1.0 if the.
void crossEdgeConnectedFace(const label &cellI, label &tetFaceI, label &tetPtI, const edge &e)
Cross the from the given face across the given edge of the.
scalar & stepFraction()
Return the fraction of time-step completed.
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
CloudType & cloud()
Return a reference to the cloud.
label getNewParticleID() const
Get unique particle creation id.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
bool softImpact() const
Return the impact model to be used, soft or hard (default).
void tetNeighbour(label triI)
Modify the tet owner data by crossing triI.
tmp< fvMatrix< Type > > operator==(const fvMatrix< Type > &, const fvMatrix< Type > &)
scalar tetLambda(const vector &from, const vector &to, const label triI, const vector &tetArea, const label tetPlaneBasePtI, const label cellI, const label tetFaceI, const label tetPtI, const scalar tol) const
Find the lambda value for the line to-from across the.
tetIndices currentTetIndices() const
Return the indices of the current tet that the.
bool internalFace(const label faceI) const
Is this global face an internal face?
label faceInterpolation() const
Return the index of the face to be used in the interpolation.
friend bool operator==(const particle &pA, const particle &pB)
label faceI_
Face index if the particle is on a face otherwise -1.
This function object reads fields from the time directories and adds them to the mesh database for fu...
static label particleCount_
Cumulative particle counter - used to provode unique ID.
void writePosition(Ostream &) const
Write the particle position and cell.
Mesh consisting of general polyhedral cells.
virtual ~particle()
Destructor.
label & cell()
Return current cell particle is in.
Macros for adding to particle property lists.
label & tetFace()
Return current tet face particle is in.
void hitSymmetryPatch(const symmetryPolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Intrusive doubly-linked list.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
label & tetPt()
Return current tet face particle is in.
A patch is a list of labels that address the faces in the global face list.
void hitSymmetryPlanePatch(const symmetryPlanePolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a.
void hitCyclicPatch(const cyclicPolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a cyclicPatch.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Symmetry patch for non-planar or multi-plane patches.
Neighbour processor patch.
const polyMesh & mesh() const
Return the mesh database.
Templated base class for dsmc cloud.
virtual autoPtr< particle > clone() const
Construct a clone.
autoPtr< particle > operator()(Istream &is) const
bool operator!=(const particle &, const particle &)
scalar movingTetLambda(const vector &from, const vector &to, const label triI, const vector &tetArea, const label tetPlaneBasePtI, const label cellI, const label tetFaceI, const label tetPtI, const scalar tol) const
Find the lambda value for a moving tri face.
static const scalar trackingCorrectionTol
Fraction of distance to tet centre to move a particle to.
const double e
Elementary charge.
void correctAfterParallelTransfer(const label patchI, TrackData &td)
Convert processor patch addressing to the global equivalents.
particle(const polyMesh &mesh, const vector &position, const label cellI, const label tetFaceI, const label tetPtI)
Construct from components.
label tetPtI_
Index of the point on the face that defines the decomposed.
void findTris(const vector &position, DynamicList< label > &faceList, const tetPointRef &tet, const FixedList< vector, 4 > &tetAreas, const FixedList< label, 4 > &tetPlaneBasePtIs, const scalar tol) const
Find the tet tri faces between position and tet centre.
friend bool operator!=(const particle &pA, const particle &pB)
label cellI_
Index of the cell it is in.
static const scalar lambdaDistanceToleranceCoeff
Fraction of the cell volume to use in determining tolerance values.
bool switchProcessor
Flag to switch processor.
Storage and named access for the indices of a tet which is part of the decomposition of a cell.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A cloud is a collection of lagrangian particles.
void hitWallPatch(const wallPolyPatch &, TrackData &td, const tetIndices &tetIs)
Overridable function to handle the particle hitting a wallPatch.
void initCellFacePt()
Check the stored cell value (setting if necessary) and.
#define DefinePropertyList(str)
void hitCyclicAMIPatch(const cyclicAMIPolyPatch &, TrackData &td, const vector &direction)
Overridable function to handle the particle hitting a cyclicAMIPatch.
CloudType & cloud_
Reference to the cloud containing (this) particle.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
vector position_
Position of particle.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
label origProc() const
Return const access to the originating processor id.
void hitWallFaces(const CloudType &td, const vector &from, const vector &to, scalar &lambdaMin, tetIndices &closestTetIs)
A 1D vector of objects of type <T> with a fixed size <Size>.
label track(const vector &endPosition, TrackData &td)
Track particle to end of trajectory.
friend Ostream & operator<<(Ostream &, const particle &)
const vector & position() const
Return current particle position.
vector oldNormal() const
Return the normal of the tri on tetFaceI_ for the.
const dimensionedScalar c
Speed of light in a vacuum.
static void readFields(CloudType &c)
Read the fields associated with the owner cloud.
void hitProcessorPatch(const processorPolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a.
label tetFaceI_
Index of the face that owns the decomposed tet that the.
vector normal() const
Return the normal of the tri on tetFaceI_ for the.
scalar currentTime() const
Return the particle current time.
static const std::size_t sizeofFields_
Size in bytes of the fields.
label origProc_
Originating processor id.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
TypeName("particle")
Runtime type information.
iNew(const polyMesh &mesh)
void prepareForParallelTransfer(const label patchI, TrackData &td)
Convert global addressing to the processor patch.
static void writeFields(const CloudType &c)
Write the fields associated with the owner cloud.
label patchFace(const label patchI, const label faceI) const
Which face of this patch is this particle on.
label origId_
Local particle id on originating processor.
label patch(const label faceI) const
Which patch is particle on.
TrackingData(CloudType &cloud)
const polyMesh & mesh_
Reference to the polyMesh database.
tetPointRef currentTet() const
Return the geometry of the current tet that the.
static const std::size_t sizeofPosition_
Size in bytes of the position data.
Cyclic patch for Arbitrary Mesh Interface (AMI)