Particle class that tracks on triangles of boundary faces. Use trackToEdge similar to trackToFace on particle. More...
Data Structures | |
class | iNew |
Factory class to read-construct particles used for. More... | |
class | TrackingData |
Class used to pass tracking data to the trackToFace function. More... | |
Public Member Functions | |
wallBoundedParticle (const polyMesh &c, const vector &position, const label cellI, const label tetFaceI, const label tetPtI, const label meshEdgeStart, const label diagEdge) | |
Construct from components. More... | |
wallBoundedParticle (const polyMesh &c, Istream &is, bool readFields=true) | |
Construct from Istream. More... | |
wallBoundedParticle (const wallBoundedParticle &p) | |
Construct copy. More... | |
autoPtr< particle > | clone () const |
Construct and return a clone. More... | |
label | meshEdgeStart () const |
-1 or label of mesh edge More... | |
label | diagEdge () const |
-1 or diagonal edge More... | |
template<class TrackData > | |
scalar | trackToEdge (TrackData &td, const vector &endPosition) |
Equivalent of trackToFace. More... | |
InfoProxy< wallBoundedParticle > | info () const |
Return info proxy. More... | |
template<class TrackData > | |
Foam::scalar | trackToEdge (TrackData &td, const vector &endPosition) |
Track particle to a given position and returns 1.0 if the. More... | |
![]() | |
TypeName ("particle") | |
Runtime type information. More... | |
particle (const polyMesh &mesh, const vector &position, const label cellI, const label tetFaceI, const label tetPtI) | |
Construct from components. More... | |
particle (const polyMesh &mesh, const vector &position, const label cellI, bool doCellFacePt=true) | |
Construct from components, tetFaceI_ and tetPtI_ are not. More... | |
particle (const polyMesh &mesh, Istream &, bool readFields=true) | |
Construct from Istream. More... | |
particle (const particle &p) | |
Construct as a copy. More... | |
particle (const particle &p, const polyMesh &mesh) | |
Construct as a copy with refernce to a new mesh. More... | |
virtual | ~particle () |
Destructor. More... | |
label | getNewParticleID () const |
Get unique particle creation id. More... | |
const polyMesh & | mesh () const |
Return the mesh database. More... | |
const vector & | position () const |
Return current particle position. More... | |
vector & | position () |
Return current particle position. More... | |
label & | cell () |
Return current cell particle is in. More... | |
label | cell () const |
Return current cell particle is in. More... | |
label & | tetFace () |
Return current tet face particle is in. More... | |
label | tetFace () const |
Return current tet face particle is in. More... | |
label & | tetPt () |
Return current tet face particle is in. More... | |
label | tetPt () const |
Return current tet face particle is in. More... | |
tetIndices | currentTetIndices () const |
Return the indices of the current tet that the. More... | |
tetPointRef | currentTet () const |
Return the geometry of the current tet that the. More... | |
vector | normal () const |
Return the normal of the tri on tetFaceI_ for the. More... | |
vector | oldNormal () const |
Return the normal of the tri on tetFaceI_ for the. More... | |
label & | face () |
Return current face particle is on otherwise -1. More... | |
label | face () const |
Return current face particle is on otherwise -1. More... | |
bool | softImpact () const |
Return the impact model to be used, soft or hard (default). More... | |
scalar | currentTime () const |
Return the particle current time. More... | |
void | initCellFacePt () |
Check the stored cell value (setting if necessary) and. More... | |
bool | onBoundary () const |
Is the particle on the boundary/(or outside the domain)? More... | |
bool | internalFace (const label faceI) const |
Is this global face an internal face? More... | |
bool | boundaryFace (const label faceI) const |
Is this global face a boundary face? More... | |
label | patch (const label faceI) const |
Which patch is particle on. More... | |
label | patchFace (const label patchI, const label faceI) const |
Which face of this patch is this particle on. More... | |
scalar & | stepFraction () |
Return the fraction of time-step completed. More... | |
scalar | stepFraction () const |
Return the fraction of time-step completed. More... | |
label | origProc () const |
Return const access to the originating processor id. More... | |
label & | origProc () |
Return the originating processor id for manipulation. More... | |
label | origId () const |
Return const access to the particle id on originating processor. More... | |
label & | origId () |
Return the particle id on originating processor for manipulation. More... | |
template<class TrackData > | |
label | track (const vector &endPosition, TrackData &td) |
Track particle to end of trajectory. More... | |
template<class TrackData > | |
scalar | trackToFace (const vector &endPosition, TrackData &td) |
Track particle to a given position and returns 1.0 if the. More... | |
label | faceInterpolation () const |
Return the index of the face to be used in the interpolation. More... | |
virtual void | transformProperties (const tensor &T) |
Transform the physical properties of the particle. More... | |
virtual void | transformProperties (const vector &separation) |
Transform the physical properties of the particle. More... | |
virtual scalar | wallImpactDistance (const vector &n) const |
The nearest distance to a wall that. More... | |
template<class TrackData > | |
void | prepareForParallelTransfer (const label patchI, TrackData &td) |
Convert global addressing to the processor patch. More... | |
template<class TrackData > | |
void | correctAfterParallelTransfer (const label patchI, TrackData &td) |
Convert processor patch addressing to the global equivalents. More... | |
void | writePosition (Ostream &) const |
Write the particle position and cell. More... | |
template<class TrackData > | |
Foam::label | track (const vector &endPosition, TrackData &td) |
template<class TrackData > | |
Foam::scalar | trackToFace (const vector &endPosition, TrackData &td) |
Static Public Member Functions | |
template<class CloudType > | |
static void | readFields (CloudType &) |
Read. More... | |
template<class CloudType > | |
static void | writeFields (const CloudType &) |
Write. More... | |
![]() | |
static string | propertyList () |
template<class CloudType > | |
static void | readFields (CloudType &c) |
Read the fields associated with the owner cloud. More... | |
template<class CloudType > | |
static void | writeFields (const CloudType &c) |
Write the fields associated with the owner cloud. More... | |
Protected Member Functions | |
edge | currentEdge () const |
Construct current edge. More... | |
void | crossEdgeConnectedFace (const edge &meshEdge) |
Cross mesh edge into different face on same cell. More... | |
void | crossDiagonalEdge () |
Cross diagonal edge into different triangle on same face,cell. More... | |
scalar | trackFaceTri (const vector &endPosition, label &minEdgeI) |
Track through single triangle. More... | |
bool | isTriAlongTrack (const point &endPosition) const |
Is current triangle in the track direction. More... | |
template<class TrackData > | |
void | patchInteraction (TrackData &td, const scalar trackFraction) |
Do all patch interaction. More... | |
template<class TrackData > | |
bool | hitPatch (const polyPatch &, TrackData &td, const label patchI, const scalar trackFraction, const tetIndices &tetIs) |
Overridable function to handle the particle hitting a patch. More... | |
template<class TrackData > | |
void | hitWedgePatch (const wedgePolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a wedge. More... | |
template<class TrackData > | |
void | hitSymmetryPlanePatch (const symmetryPlanePolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a. More... | |
template<class TrackData > | |
void | hitSymmetryPatch (const symmetryPolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a. More... | |
template<class TrackData > | |
void | hitCyclicPatch (const cyclicPolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a cyclic. More... | |
template<class TrackData > | |
void | hitProcessorPatch (const processorPolyPatch &, TrackData &td) |
template<class TrackData > | |
void | hitWallPatch (const wallPolyPatch &, TrackData &td, const tetIndices &) |
Overridable function to handle the particle hitting a wallPatch. More... | |
template<class TrackData > | |
void | hitPatch (const polyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a polyPatch. More... | |
![]() | |
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. More... | |
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. More... | |
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. More... | |
void | tetNeighbour (label triI) |
Modify the tet owner data by crossing triI. More... | |
void | crossEdgeConnectedFace (const label &cellI, label &tetFaceI, label &tetPtI, const edge &e) |
Cross the from the given face across the given edge of the. More... | |
template<class CloudType > | |
void | hitWallFaces (const CloudType &td, const vector &from, const vector &to, scalar &lambdaMin, tetIndices &closestTetIs) |
template<class TrackData > | |
void | hitFace (TrackData &td) |
Overridable function to handle the particle hitting a face. More... | |
template<class TrackData > | |
bool | hitPatch (const polyPatch &, TrackData &td, const label patchI, const scalar trackFraction, const tetIndices &tetIs) |
Overridable function to handle the particle hitting a. More... | |
template<class TrackData > | |
void | hitWedgePatch (const wedgePolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a wedgePatch. More... | |
template<class TrackData > | |
void | hitSymmetryPlanePatch (const symmetryPlanePolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a. More... | |
template<class TrackData > | |
void | hitSymmetryPatch (const symmetryPolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a. More... | |
template<class TrackData > | |
void | hitCyclicPatch (const cyclicPolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a cyclicPatch. More... | |
template<class TrackData > | |
void | hitCyclicAMIPatch (const cyclicAMIPolyPatch &, TrackData &td, const vector &direction) |
Overridable function to handle the particle hitting a cyclicAMIPatch. More... | |
template<class TrackData > | |
void | hitProcessorPatch (const processorPolyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a. More... | |
template<class TrackData > | |
void | hitWallPatch (const wallPolyPatch &, TrackData &td, const tetIndices &tetIs) |
Overridable function to handle the particle hitting a wallPatch. More... | |
template<class TrackData > | |
void | hitPatch (const polyPatch &, TrackData &td) |
Overridable function to handle the particle hitting a. More... | |
Protected Attributes | |
label | meshEdgeStart_ |
Particle is on mesh edge: More... | |
label | diagEdge_ |
Particle is on diagonal edge: More... | |
![]() | |
const polyMesh & | mesh_ |
Reference to the polyMesh database. More... | |
vector | position_ |
Position of particle. More... | |
label | cellI_ |
Index of the cell it is in. More... | |
label | faceI_ |
Face index if the particle is on a face otherwise -1. More... | |
scalar | stepFraction_ |
Fraction of time-step completed. More... | |
label | tetFaceI_ |
Index of the face that owns the decomposed tet that the. More... | |
label | tetPtI_ |
Index of the point on the face that defines the decomposed. More... | |
label | origProc_ |
Originating processor id. More... | |
label | origId_ |
Local particle id on originating processor. More... | |
Static Private Attributes | |
static const std::size_t | sizeofFields_ |
Size in bytes of the fields. More... | |
Friends | |
Ostream & | operator<< (Ostream &, const wallBoundedParticle &) |
Ostream & | operator<< (Ostream &, const InfoProxy< wallBoundedParticle > &) |
Additional Inherited Members | |
![]() | |
static string | propertyList_ = Foam::particle::propertyList() |
String representation of properties. More... | |
static label | particleCount_ = 0 |
Cumulative particle counter - used to provode unique ID. More... | |
static const scalar | trackingCorrectionTol = 1e-5 |
Fraction of distance to tet centre to move a particle to. More... | |
static const scalar | lambdaDistanceToleranceCoeff = 1e3*SMALL |
Fraction of the cell volume to use in determining tolerance values. More... | |
static const scalar | minStepFractionTol = 1e5*SMALL |
Minimum stepFraction tolerance. More... | |
Particle class that tracks on triangles of boundary faces. Use trackToEdge similar to trackToFace on particle.
Definition at line 52 of file wallBoundedParticle.H.
wallBoundedParticle | ( | const polyMesh & | c, |
const vector & | position, | ||
const label | cellI, | ||
const label | tetFaceI, | ||
const label | tetPtI, | ||
const label | meshEdgeStart, | ||
const label | diagEdge | ||
) |
Construct from components.
Definition at line 297 of file wallBoundedParticle.C.
Referenced by wallBoundedParticle::clone(), and wallBoundedParticle::iNew::operator()().
wallBoundedParticle | ( | const polyMesh & | c, |
Istream & | is, | ||
bool | readFields = true |
||
) |
Construct from Istream.
Definition at line 314 of file wallBoundedParticle.C.
References IOstream::ASCII, IOstream::check(), IOstream::format(), and Istream::read().
wallBoundedParticle | ( | const wallBoundedParticle & | p | ) |
Construct copy.
Definition at line 344 of file wallBoundedParticle.C.
|
protected |
Construct current edge.
Definition at line 38 of file wallBoundedParticle.C.
References Foam::abort(), wallBoundedParticle::diagEdge_, f(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, wallBoundedParticle::info(), particle< Type >::mesh_, wallBoundedParticle::meshEdgeStart_, polyMesh::tetBasePtIs(), and particle< Type >::tetFace().
|
protected |
Cross mesh edge into different face on same cell.
Definition at line 68 of file wallBoundedParticle.C.
References Foam::abort(), particle< Type >::crossEdgeConnectedFace(), f(), Foam::FatalError, FatalErrorInFunction, and Foam::findIndex().
|
protected |
Cross diagonal edge into different triangle on same face,cell.
Definition at line 119 of file wallBoundedParticle.C.
References Foam::abort(), f(), Foam::FatalError, and FatalErrorInFunction.
Track through single triangle.
Definition at line 166 of file wallBoundedParticle.C.
References FixedList::fcIndex(), forAll, Foam::mag(), n, triFace::normal(), and s().
|
protected |
Is current triangle in the track direction.
Definition at line 247 of file wallBoundedParticle.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, FixedList::fcIndex(), Foam::findIndex(), forAll, Foam::mag(), n, and triFace::normal().
|
protected |
Do all patch interaction.
Definition at line 32 of file wallBoundedParticleTemplates.C.
References polyPatch::boundaryMesh(), and p.
|
protected |
Overridable function to handle the particle hitting a patch.
Executed before other patch-hitting functions
Definition at line 385 of file wallBoundedParticleTemplates.C.
|
protected |
Overridable function to handle the particle hitting a wedge.
Definition at line 400 of file wallBoundedParticleTemplates.C.
|
protected |
Overridable function to handle the particle hitting a.
symmetry plane
Definition at line 412 of file wallBoundedParticleTemplates.C.
|
protected |
Overridable function to handle the particle hitting a.
symmetry patch
Definition at line 424 of file wallBoundedParticleTemplates.C.
|
protected |
Overridable function to handle the particle hitting a cyclic.
Definition at line 436 of file wallBoundedParticleTemplates.C.
|
protected |
Overridable function to handle the particle hitting a processorPatch
Definition at line 448 of file wallBoundedParticleTemplates.C.
References f().
|
protected |
Overridable function to handle the particle hitting a wallPatch.
Definition at line 477 of file wallBoundedParticleTemplates.C.
|
protected |
Overridable function to handle the particle hitting a polyPatch.
Definition at line 487 of file wallBoundedParticleTemplates.C.
Construct and return a clone.
Reimplemented from particle< Type >.
Reimplemented in wallBoundedStreamLineParticle.
Definition at line 236 of file wallBoundedParticle.H.
References wallBoundedParticle::wallBoundedParticle().
|
inline |
-1 or label of mesh edge
Definition at line 272 of file wallBoundedParticle.H.
References wallBoundedParticle::meshEdgeStart_.
Referenced by wallBoundedParticle::readFields().
|
inline |
-1 or diagonal edge
Definition at line 278 of file wallBoundedParticle.H.
References wallBoundedParticle::diagEdge_.
Referenced by wallBoundedParticle::readFields().
scalar trackToEdge | ( | TrackData & | td, |
const vector & | endPosition | ||
) |
Equivalent of trackToFace.
|
inline |
Return info proxy.
Used to print particle information to a stream
Definition at line 299 of file wallBoundedParticle.H.
Referenced by wallBoundedParticle::currentEdge().
|
static |
Read.
Definition at line 498 of file wallBoundedParticleTemplates.C.
References Foam::constant::universal::c, wallBoundedParticle::diagEdge(), forAllIter, wallBoundedParticle::meshEdgeStart(), IOobject::MUST_READ, and particle< Type >::readFields().
|
static |
Write.
Definition at line 529 of file wallBoundedParticleTemplates.C.
References Foam::constant::universal::c, forAllConstIter(), IOobject::NO_READ, regIOobject::write(), and particle< Type >::writeFields().
Foam::scalar trackToEdge | ( | TrackData & | td, |
const vector & | endPosition | ||
) |
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 137 of file wallBoundedParticleTemplates.C.
References Foam::abort(), f(), tetIndices::face(), tetIndices::faceBasePt(), tetIndices::facePtA(), tetIndices::facePtB(), tetIndices::faceTri(), Foam::FatalError, FatalErrorInFunction, Foam::mag(), n, triFace::normal(), and triangle::normal().
|
friend |
|
friend |
|
staticprivate |
Size in bytes of the fields.
Definition at line 59 of file wallBoundedParticle.H.
|
protected |
Particle is on mesh edge:
const face& f = mesh.faces()[tetFace()] const edge e(f[meshEdgeStart_], f.nextLabel(meshEdgeStart_)); Note that this real edge is also one of the edges of the face-triangle (from tetFace()+tetPt()).
Definition at line 102 of file wallBoundedParticle.H.
Referenced by wallBoundedParticle::currentEdge(), and wallBoundedParticle::meshEdgeStart().
|
protected |
Particle is on diagonal edge:
const face& f = mesh.faces()[tetFace()] label faceBasePtI = mesh.tetBasePtIs()[faceI]; label diagPtI = (faceBasePtI+diagEdge_)f.size(); const edge e(f[faceBasePtI], f[diagPtI]);
Definition at line 109 of file wallBoundedParticle.H.
Referenced by wallBoundedParticle::currentEdge(), and wallBoundedParticle::diagEdge().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.