58 class cyclicPolyPatch;
59 class cyclicAMIPolyPatch;
60 class processorPolyPatch;
61 class symmetryPlanePolyPatch;
62 class symmetryPolyPatch;
74 bool operator==(
const particle&,
const particle&);
76 bool operator!=(
const particle&,
const particle&);
89 static const std::size_t sizeofPosition_;
92 static const std::size_t sizeofFields_;
96 static const label maxNTracksBehind_;
125 template <
class TrackCloudType>
163 scalar stepFraction_;
166 scalar stepFractionBehind_;
185 label nTracksBehind_;
201 inline void stationaryTetGeometry
223 void stationaryTetReverseTransform
233 inline void movingTetGeometry
235 const scalar endStepFraction,
248 const scalar endStepFraction
257 void movingTetReverseTransform
259 const scalar endStepFraction,
284 void changeTet(
const label tetTriI);
287 void changeFace(
const label tetTriI);
300 const bool boundaryFail,
301 const string boundaryMsg
311 template<
class TrackCloudType>
315 template<
class TrackCloudType>
320 template<
class TrackCloudType>
324 template<
class TrackCloudType>
328 template<
class TrackCloudType>
332 template<
class TrackCloudType>
335 const vector& displacement,
336 const scalar fraction,
337 TrackCloudType&
cloud,
343 template<
class TrackCloudType>
346 const vector& displacement,
347 const scalar fraction,
349 TrackCloudType& cloud,
354 template<
class TrackCloudType>
358 template<
class TrackCloudType>
372 "(coordinatesa coordinatesb coordinatesc coordinatesd) " 373 "celli tetFacei tetPti facei stepFraction " 374 "behind nBehind origProc origId" 389 const label tetFacei,
511 inline bool onFace()
const;
530 inline void reset(
const scalar stepFraction);
541 const vector& displacement,
542 const scalar fraction
548 const vector& displacement,
549 const scalar fraction
555 const vector& displacement,
556 const scalar fraction
564 const vector& displacement,
565 const scalar fraction,
572 const vector& displacement,
573 const scalar fraction,
580 const vector& displacement,
581 const scalar fraction,
588 template<
class TrackCloudType>
591 const vector& displacement,
592 const scalar fraction,
593 TrackCloudType&
cloud,
598 template<
class TrackCloudType>
601 const vector& displacement,
602 const scalar fraction,
603 TrackCloudType& cloud,
683 const label procCell,
684 const label procTetFace
697 template<
class TrackCloudType>
701 template<
class TrackCloudType>
Template class for intrusive linked lists.
void reset(const scalar stepFraction)
Set the step fraction and clear the behind data in preparation for.
void hitFace(const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
Hit the current face. If the current face is internal than this.
label origProc() const
Return the originating processor ID.
const polyMesh & mesh() const
Return the mesh database.
trackingData(const TrackCloudType &cloud)
vector deviationFromMeshCentre() const
Get the displacement from the mesh centre. Used to correct the.
void prepareForProcessorTransfer(trackingData &td)
Make changes prior to a transfer across a processor boundary.
virtual autoPtr< particle > clone() const
Construct a clone.
A 1D vector of objects of type <T> with a fixed size <Size>.
bool onBoundaryFace() const
Is the particle on a boundary face?
friend bool operator!=(const particle &pA, const particle &pB)
Macros for adding to particle property lists.
label procTetPt(const polyMesh &procMesh, const label procCell, const label procTetFace) const
Return the tet point appropriate for decomposition or reconstruction.
void correctAfterParallelTransfer(trackingData &td)
Make changes following a parallel transfer. Runs either processor.
void correctAfterNonConformalCyclicTransfer(const label sendToPatch)
Make changes following a transfer across a non conformal cyclic.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
scalar trackToFace(const vector &displacement, const scalar fraction)
As particle::track, but stops when a face is hit.
scalar trackToTri(const vector &displacement, const scalar fraction, label &tetTriI)
As particle::trackToFace, but stops when a tet triangle is hit. On.
void autoMap(const vector &position, const polyTopoChangeMap &mapper)
Map after a topology change.
scalar trackToAndHitFace(const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
Convenience function. Combines trackToFace and hitFace.
void hitWallPatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a wallPatch.
void hitSymmetryPlanePatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a.
Pair< scalar > stepFractionSpan() const
Return the step fraction change within the overall time-step.
scalar trackToCell(const vector &displacement, const scalar fraction)
As particle::track, but stops when a new cell is reached.
label sendFromPatch
Patch from which to send the particle.
virtual void transformProperties(const transformer &)
Transform the physical properties of the particle.
void hitSymmetryPatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a symmetryPatch.
const dimensionedScalar c
Speed of light in a vacuum.
label tetPt() const
Return current tet face particle is in.
friend Ostream & operator<<(Ostream &, const particle &)
vector normal() const
Return the normal of the tri on tetFacei_ for the.
void patchData(vector &normal, vector &displacement) const
Get the normal and displacement of the current patch location.
label cell() const
Return current cell particle is in.
void prepareForInteractionListReferral(const transformer &transform)
Break the topology and store the cartesian position so that the.
An ordered pair of two objects of type <T> with first() and second() elements.
TypeName("particle")
Runtime type information.
label face() const
Return current face particle is on otherwise -1.
Intrusive doubly-linked list.
void hitProcessorPatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a processorPatch.
tmp< fvMatrix< Type > > operator==(const fvMatrix< Type > &, const fvMatrix< Type > &)
void prepareForParallelTransfer(trackingData &td)
Make changes prior to a parallel transfer. Runs either processor or.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
particle(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from components.
A cloud is a collection of lagrangian particles.
void correctAfterInteractionListReferral(const label celli)
Correct the topology after referral. Locates the particle relative.
void hitCyclicPatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a cyclicPatch.
Storage and named access for the indices of a tet which is part of the decomposition of a cell...
barycentricTensor currentTetTransform() const
Return the current tet transformation tensor.
label origId() const
Return the particle ID on the originating processor.
bool onFace() const
Is the particle on a face?
label tetFace() const
Return current tet face particle is in.
label getNewParticleID() const
Get unique particle creation id.
Factory class to read-construct particles used for.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
void hitWedgePatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a wedgePatch.
scalar stepFraction() const
Return the fraction of time-step completed.
tetIndices currentTetIndices() const
Return the indices of the current tet that the.
scalar trackToMovingTri(const vector &displacement, const scalar fraction, label &tetTriI)
As particle::trackToTri, but for moving meshes.
label sendToPatch
Patch to which to send the particle.
void correctAfterProcessorTransfer(trackingData &td)
Make changes following a transfer across a processor boundary.
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
static void readFields(TrackCloudType &c)
Read the fields associated with the owner cloud.
void writePosition(Ostream &) const
Write the particle position and cell.
static void writeFields(const TrackCloudType &c)
Write the fields associated with the owner cloud.
Templated 4x3 tensor derived from VectorSpace. Has 12 components. Can represent a barycentric transfo...
friend bool operator==(const particle &pA, const particle &pB)
bool hitPatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a patch.
const barycentric & coordinates() const
Return current particle coordinates.
static label particleCount_
Cumulative particle counter - used to provide unique ID.
void prepareForNonConformalCyclicTransfer(const label sendToPatch, const label sendToPatchFace)
Make changes prior to a transfer across a non conformal cyclic.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
bool onInternalFace() const
Is the particle on an internal face?
void hitCyclicAMIPatch(const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a cyclicAMIPatch.
Mesh consisting of general polyhedral cells.
scalar trackToStationaryTri(const vector &displacement, const scalar fraction, label &tetTriI)
As particle::trackToTri, but for stationary meshes.
#define DefinePropertyList(str)
virtual ~particle()
Destructor.
scalar track(const vector &displacement, const scalar fraction)
Track along the displacement for a given fraction of the overall.
bool operator!=(const particle &, const particle &)
bool hitNonConformalCyclicPatch(const vector &displacement, const scalar fraction, const label patchi, TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting an.
label sendToProc
Processor to send the particle to. -1 indicates that this.
vector position() const
Return current particle position.
label patch() const
Return the index of patch that the particle is on.
dimensionSet transform(const dimensionSet &)
label sendToPatchFace
Patch face to which to send the particle.
scalar currentTimeFraction() const
Return the current fraction within the timestep. This differs.