59 class cyclicPolyPatch;
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_;
102 static const scalar negativeSpaceDisplacementFactor;
107 template<
class CloudType>
172 scalar stepFraction_;
188 void stationaryTetGeometry
210 void stationaryTetReverseTransform
220 void movingTetGeometry
222 const scalar endStepFraction,
235 const scalar endStepFraction
244 void movingTetReverseTransform
246 const scalar endStepFraction,
271 void changeTet(
const label tetTriI);
274 void changeFace(
const label tetTriI);
288 const bool boundaryFail,
289 const string boundaryMsg
298 template<
class TrackData>
305 template<
class TrackData>
311 const scalar trackFraction,
316 template<
class TrackData>
321 template<
class TrackData>
330 template<
class TrackData>
334 template<
class TrackData>
338 template<
class TrackData>
348 template<
class TrackData>
352 template<
class TrackData>
362 template<
class TrackData>
376 "(Px Py Pz) celli tetFacei tetPti " 377 "facei stepFraction origProc origId" 392 const label tetFacei,
519 inline bool onFace()
const;
545 const vector& displacement,
546 const scalar fraction
552 const vector& displacement,
553 const scalar fraction
561 const vector& displacement,
562 const scalar fraction,
569 const vector& displacement,
570 const scalar fraction,
577 const vector& displacement,
578 const scalar fraction,
584 template<
class TrackData>
587 const vector& displacement,
588 const scalar fraction,
622 template<
class TrackData>
627 template<
class TrackData>
652 const label procCell,
653 const label procTetFace
666 template<
class CloudType>
670 template<
class CloudType>
Symmetry patch for non-planar or multi-plane patches.
Template class for intrusive linked lists.
void hitSymmetryPlanePatch(const symmetryPlanePolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a.
label origProc() const
Return the originating processor ID.
const polyMesh & mesh() const
Return the mesh database.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void prepareForParallelTransfer(const label patchi, TrackData &td)
Convert global addressing to the processor patch.
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 approproate for decomposition or reconstruction.
void hitWallPatch(const wallPolyPatch &, TrackData &td, const tetIndices &tetIs)
Overridable function to handle the particle hitting a wallPatch.
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 also stops on internal faces.
scalar trackToTri(const vector &displacement, const scalar fraction, label &tetTriI)
As particle::trackToFace, but also stops on tet triangles. On.
Pair< scalar > stepFractionSpan() const
Return the step fraction change within the overall time-step.
static void readFields(CloudType &c)
Read the fields associated with the owner cloud.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
bool hitPatch(const polyPatch &, TrackData &td, const label patchi, const scalar trackFraction, const tetIndices &tetIs)
Overridable function to handle the particle hitting a.
void hitCyclicAMIPatch(const cyclicAMIPolyPatch &, TrackData &td, const vector &direction)
Overridable function to handle the particle hitting a cyclicAMIPatch.
vector oldNormal() const
Return the normal of the tri on tetFacei_ for the.
void prepareForInteractionListReferral(const vectorTensorTransform &transform)
Break the topology and store the particle position so that the.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
label tetPt() const
Return current tet face particle is in.
Neighbour processor patch.
friend Ostream & operator<<(Ostream &, const particle &)
vector normal() const
Return the normal of the tri on tetFacei_ for the.
CloudType & cloud()
Return a reference to the cloud.
void hitProcessorPatch(const processorPolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a.
label cell() const
Return current cell particle is in.
An ordered pair of two objects of type <T> with first() and second() elements.
void patchData(vector &n, vector &U) const
Get the normal and velocity of the current patch location.
TypeName("particle")
Runtime type information.
label face() const
Return current face particle is on otherwise -1.
static void writeFields(const CloudType &c)
Write the fields associated with the owner cloud.
Intrusive doubly-linked list.
tmp< fvMatrix< Type > > operator==(const fvMatrix< Type > &, const fvMatrix< Type > &)
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.
Wedge front and back plane patch.
void correctAfterInteractionListReferral(const label celli)
Correct the topology after referral. The particle may still be.
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.
Cyclic patch for Arbitrary Mesh Interface (AMI)
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
virtual scalar wallImpactDistance(const vector &n) const
The nearest distance to a wall that.
void hitWedgePatch(const wedgePolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a wedgePatch.
void hitFace(TrackData &td)
Overridable function to handle the particle hitting a face.
label origId() const
Return the particle ID on the originating processor.
void autoMap(const vector &position, const mapPolyMesh &mapper)
Map after a topology change.
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)
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.
void writePosition(Ostream &) const
Write the particle position and cell.
const dimensionedScalar c
Speed of light in a vacuum.
Templated 4x3 tensor derived from VectorSpace. Has 12 components. Can represent a barycentric transfo...
friend bool operator==(const particle &pA, const particle &pB)
const barycentric & coordinates() const
Return current particle coordinates.
static label particleCount_
Cumulative particle counter - used to provode unique ID.
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?
Mesh consisting of general polyhedral cells.
void correctAfterParallelTransfer(const label patchi, TrackData &td)
Convert processor patch addressing to the global equivalents.
scalar trackToStationaryTri(const vector &displacement, const scalar fraction, label &tetTriI)
As particle::trackToTri, but for stationary meshes.
#define DefinePropertyList(str)
bool switchProcessor
Flag to switch processor.
A patch is a list of labels that address the faces in the global face list.
virtual ~particle()
Destructor.
TrackingData(CloudType &cloud)
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 &)
void constrainToMeshCentre()
Set the constrained components of the particle position to the.
Templated base class for dsmc cloud.
vector position() const
Return current particle position.
void hitCyclicPatch(const cyclicPolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a cyclicPatch.
label patch() const
Return the index of patch that the particle is on.
dimensionSet transform(const dimensionSet &)
void hitSymmetryPatch(const symmetryPolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a.
scalar currentTimeFraction() const
Return the current fraction within the timestep. This differs.