Particle class that tracks on triangles of boundary faces. Use trackToEdge similar to trackToFace on particle. More...
#include <wallBoundedParticle.H>


Classes | |
| class | trackingData |
| Class used to pass tracking data to the trackToFace function. More... | |
| class | iNew |
| Factory class to read-construct particles (for parallel transfer). More... | |
Public Member Functions | |
| wallBoundedParticle (const polyMesh &c, const point &position, const label celli, const label tetFacei, const label tetPti, const label meshEdgeStart, const label diagEdge) | |
| Construct from components. | |
| wallBoundedParticle (const polyMesh &c, Istream &is, bool readFields=true, bool newFormat=true) | |
| Construct from Istream. | |
| wallBoundedParticle (const wallBoundedParticle &p) | |
| Construct copy. | |
| virtual autoPtr< particle > | clone () const |
| Return a clone. | |
| label | meshEdgeStart () const noexcept |
| The mesh edge label or -1. | |
| label | diagEdge () const noexcept |
| The diagonal edge label or -1. | |
| template<class TrackCloudType> | |
| scalar | trackToEdge (TrackCloudType &cloud, trackingData &td, const vector &endPosition) |
| Equivalent of trackToFace. | |
| template<class TrackCloudType> | |
| void | patchInteraction (TrackCloudType &cloud, trackingData &td, const scalar trackFraction) |
| Do all patch interaction. | |
| template<class TrackCloudType> | |
| void | hitProcessorPatch (TrackCloudType &cloud, trackingData &td) |
| Overridable function to handle the particle hitting a processorPatch. | |
| template<class TrackCloudType> | |
| void | hitWallPatch (TrackCloudType &cloud, trackingData &td) |
| Overridable function to handle the particle hitting a wallPatch. | |
| InfoProxy< wallBoundedParticle > | info () const noexcept |
| Return info proxy, used to print particle information to a stream. | |
| template<class TrackCloudType> | |
| Foam::scalar | trackToEdge (TrackCloudType &cloud, trackingData &td, const vector &endPosition) |
| template<class TrackCloudType> | |
| void | readFields (TrackCloudType &c) |
| template<class TrackCloudType> | |
| void | writeFields (const TrackCloudType &c) |
| Public Member Functions inherited from particle< Type > | |
| TypeName ("particle") | |
| Runtime type information. | |
| particle (const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti) | |
| Construct from components. | |
| particle (const polyMesh &mesh, const vector &position, const label celli=-1) | |
| Construct from a position and a cell. | |
| particle (const polyMesh &mesh, const vector &position, const label celli, const label tetFacei, const label tetPti, const bool doLocate=true) | |
| Construct from position components. | |
| particle (const polyMesh &mesh, Istream &, const bool readFields=true, const bool newFormat=true, const bool doLocate=true) | |
| Construct from Istream. | |
| particle (const particle &p, const polyMesh &mesh) | |
| Construct as a copy with reference to a mesh. | |
| particle (const particle &p) | |
| Copy construct. | |
| virtual | ~particle ()=default |
| Destructor. | |
| label | getNewParticleID () const |
| Get unique particle creation id. | |
| const polyMesh & | mesh () const noexcept |
| Return the mesh database. | |
| const barycentric & | coordinates () const noexcept |
| Return current particle coordinates. | |
| label | cell () const noexcept |
| Return current cell particle is in. | |
| label & | cell () noexcept |
| Return current cell particle is in for manipulation. | |
| label | tetFace () const noexcept |
| Return current tet face particle is in. | |
| label & | tetFace () noexcept |
| Return current tet face particle is in for manipulation. | |
| label | tetPt () const noexcept |
| Return current tet face particle is in. | |
| label & | tetPt () noexcept |
| Return current tet face particle is in for manipulation. | |
| label | face () const noexcept |
| Return current face particle is on otherwise -1. | |
| label & | face () noexcept |
| Return current face particle is on for manipulation. | |
| scalar | stepFraction () const noexcept |
| Return the fraction of time-step completed. | |
| scalar & | stepFraction () noexcept |
| Return the fraction of time-step completed. | |
| label | origProc () const noexcept |
| Return the originating processor ID. | |
| label & | origProc () noexcept |
| Return the originating processor ID. | |
| label | origId () const noexcept |
| Return the particle ID on the originating processor. | |
| label & | origId () noexcept |
| Return the particle ID on the originating processor. | |
| Pair< scalar > | stepFractionSpan () const |
| Return the step fraction change within the overall time-step. | |
| scalar | currentTimeFraction () const |
| Return the current fraction within the timestep. This differs. | |
| tetIndices | currentTetIndices () const noexcept |
| Return indices of the current tet that the particle occupies. | |
| barycentricTensor | currentTetTransform () const |
| Return the current tet transformation tensor. | |
| vector | normal () const |
| The (unit) normal of the tri on tetFacei_ for the current tet. | |
| bool | onFace () const noexcept |
| Is the particle on a face? | |
| bool | onInternalFace () const noexcept |
| Is the particle on an internal face? | |
| bool | onBoundaryFace () const noexcept |
| Is the particle on a boundary face? | |
| label | patch () const |
| Return the index of patch that the particle is on. | |
| vector | position () const |
| Return current particle position. | |
| void | reset () |
| Reset particle data. | |
| scalar | track (const vector &displacement, const scalar fraction) |
| Track along the displacement for a given fraction of the overall. | |
| 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. | |
| scalar | trackToStationaryTri (const vector &displacement, const scalar fraction, label &tetTriI) |
| As particle::trackToTri, but for stationary meshes. | |
| scalar | trackToMovingTri (const vector &displacement, const scalar fraction, label &tetTriI) |
| As particle::trackToTri, but for moving meshes. | |
| template<class TrackCloudType> | |
| void | hitFace (const vector &direction, TrackCloudType &cloud, trackingData &td) |
| Hit the current face. If the current face is internal than this. | |
| template<class TrackCloudType> | |
| void | trackToAndHitFace (const vector &direction, const scalar fraction, TrackCloudType &cloud, trackingData &td) |
| Convenience function. Combines trackToFace and hitFace. | |
| vector | deviationFromMeshCentre () const |
| Get the displacement from the mesh centre. Used to correct the. | |
| void | patchData (vector &n, vector &U) const |
| Get the normal and velocity of the current patch location. | |
| 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. | |
| void | prepareForParallelTransfer () |
| Convert global addressing to the processor patch local equivalents. | |
| void | correctAfterParallelTransfer (const label patchi, trackingData &td) |
| Convert processor patch addressing to the global equivalents. | |
| void | prepareForInteractionListReferral (const vectorTensorTransform &transform) |
| Break the topology and store the particle position so that the. | |
| void | correctAfterInteractionListReferral (const label celli) |
| Correct the topology after referral. The particle may still be. | |
| label | procTetPt (const polyMesh &procMesh, const label procCell, const label procTetFace) const |
| Return the tet point appropriate for decomposition or reconstruction. | |
| void | autoMap (const vector &position, const mapPolyMesh &mapper) |
| Map after a topology change. | |
| void | relocate (const point &position, const label celli=-1) |
| Set the addressing based on the provided position. | |
| void | writeProperties (Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly) const |
| Write individual particle properties to stream. | |
| void | writeCoordinates (Ostream &os) const |
| Write the particle barycentric coordinates and cell info. | |
| virtual void | writePosition (Ostream &os) const |
| Write the particle position and cell id. | |
| Public Member Functions inherited from DLListBase::link | |
| link () noexcept=default | |
| Default construct. | |
| bool | registered () const noexcept |
| Node registered (linked) in a list? | |
| void | deregister () noexcept |
| Deregister the node (after removal). | |
Static Public Member Functions | |
| template<class CloudType> | |
| static void | readFields (CloudType &) |
| Read. | |
| template<class CloudType> | |
| static void | writeFields (const CloudType &) |
| Write. | |
| Static Public Member Functions inherited from particle< Type > | |
| static string | propertyList () |
| template<class Derived> | |
| static autoPtr< particle > | Clone (const Derived &p) |
| Clone a particle. | |
| template<class Derived> | |
| static autoPtr< particle > | Clone (const Derived &p, const polyMesh &mesh) |
| Clone a particle with a mesh reference. | |
| template<class Type> | |
| static void | writePropertyName (Ostream &os, const word &name, const word &delim) |
| Write the name representation to stream. | |
| template<class Type> | |
| static void | writeProperty (Ostream &os, const word &name, const Type &value, const bool nameOnly, const word &delim, const wordRes &filters=wordRes::null()) |
| Write a named particle property to stream, optionally filtered based on its name. | |
| template<class Type> | |
| static void | writeProperty (Ostream &os, const word &name, const Field< Type > &values, const bool nameOnly, const word &delim, const wordRes &filters=wordRes::null()) |
| Write a named particle property list to stream, optionally filtered based on its name. | |
| template<class TrackCloudType> | |
| static void | readFields (TrackCloudType &c) |
| Read the fields associated with the owner cloud. | |
| template<class TrackCloudType> | |
| static void | writeFields (const TrackCloudType &c) |
| Write the fields associated with the owner cloud. | |
| template<class CloudType> | |
| static void | readObjects (CloudType &c, const objectRegistry &obr) |
| Read particle fields as objects from the obr registry. | |
| template<class CloudType> | |
| static void | writeObjects (const CloudType &c, objectRegistry &obr) |
| Write particle fields as objects into the obr registry. | |
Static Public Attributes | |
| static const std::size_t | sizeofFields_ |
| Size in bytes of the fields. | |
| Static Public Attributes inherited from particle< Type > | |
| static string | propertyList_ = Foam::particle::propertyList() |
| String representation of properties. | |
| static label | particleCount_ = 0 |
| Cumulative particle counter - used to provide unique ID. | |
| static bool | writeLagrangianCoordinates = true |
| Write particle coordinates file (v1712 and later) Default is true. | |
| static bool | writeLagrangianPositions |
| Write particle positions file (v1706 format and earlier) Default is true (disable in etc/controlDict). | |
Protected Member Functions | |
| edge | currentEdge () const |
| Construct current edge. | |
| void | crossEdgeConnectedFace (const label &celli, label &tetFacei, label &tetPti, const edge &e) |
| Replacement for particle::crossEdgeConnectedFace that avoids bombing. | |
| void | crossEdgeConnectedFace (const edge &meshEdge) |
| Cross mesh edge into different face on same cell. | |
| void | crossDiagonalEdge () |
| Cross diagonal edge into different triangle on same face,cell. | |
| scalar | trackFaceTri (const vector &n, const vector &endPosition, label &) |
| Track through single triangle. | |
| bool | isTriAlongTrack (const vector &n, const point &endPosition) const |
| Is current triangle in the track direction. | |
| Protected Member Functions inherited from particle< Type > | |
| void | readData (Istream &is, point &position, const bool readFields, const bool newFormat, const bool doLocate) |
| Read particle from stream. Optionally (for old format) return. | |
| template<class TrackCloudType> | |
| bool | hitPatch (TrackCloudType &, trackingData &) |
| Overridable function to handle the particle hitting a patch. | |
| template<class TrackCloudType> | |
| void | hitWedgePatch (TrackCloudType &, trackingData &) |
| Overridable function to handle the particle hitting a wedgePatch. | |
| template<class TrackCloudType> | |
| void | hitSymmetryPlanePatch (TrackCloudType &, trackingData &) |
| Overridable function to handle the particle hitting a. | |
| template<class TrackCloudType> | |
| void | hitSymmetryPatch (TrackCloudType &, trackingData &) |
| Overridable function to handle the particle hitting a symmetryPatch. | |
| template<class TrackCloudType> | |
| void | hitCyclicPatch (TrackCloudType &, trackingData &) |
| Overridable function to handle the particle hitting a cyclicPatch. | |
| template<class TrackCloudType> | |
| void | hitCyclicAMIPatch (TrackCloudType &, trackingData &, const vector &) |
| Overridable function to handle the particle hitting a cyclicAMIPatch. | |
| template<class TrackCloudType> | |
| void | hitCyclicACMIPatch (TrackCloudType &, trackingData &, const vector &) |
| Overridable function to handle the particle hitting a. | |
| template<class TrackCloudType> | |
| void | hitProcessorPatch (TrackCloudType &, trackingData &) |
| Overridable function to handle the particle hitting a processorPatch. | |
| template<class TrackCloudType> | |
| void | hitWallPatch (TrackCloudType &, trackingData &) |
| Overridable function to handle the particle hitting a wallPatch. | |
| template<class TrackCloudType> | |
| void | hitBoundaryFace (const vector &direction, TrackCloudType &cloud, trackingData &td) |
| Dispatch function for boundary face interaction. Calls one of. | |
Protected Attributes | |
| point | localPosition_ |
| Particle position is updated locally as opposed to via track. | |
| label | meshEdgeStart_ |
| Particle is on mesh edge: | |
| label | diagEdge_ |
| Particle is on diagonal edge: | |
Friends | |
| Ostream & | operator<< (Ostream &, const wallBoundedParticle &) |
| Ostream & | operator<< (Ostream &, const InfoProxy< wallBoundedParticle > &) |
Additional Inherited Members | |
| Public Attributes inherited from DLListBase::link | |
| link * | prev_ = nullptr |
| Pointer to prev entry in list. | |
| link * | next_ = nullptr |
| Pointer to next entry in list. | |
Particle class that tracks on triangles of boundary faces. Use trackToEdge similar to trackToFace on particle.
Definition at line 57 of file wallBoundedParticle.H.
| wallBoundedParticle | ( | const polyMesh & | c, |
| const point & | position, | ||
| const label | celli, | ||
| const label | tetFacei, | ||
| const label | tetPti, | ||
| const label | meshEdgeStart, | ||
| const label | diagEdge ) |
Construct from components.
Definition at line 404 of file wallBoundedParticle.C.
References diagEdge(), diagEdge_, localPosition_, particle< Type >::mesh(), meshEdgeStart(), meshEdgeStart_, particle< Type >::particle(), and particle< Type >::position().
Referenced by wallBoundedParticle::iNew::operator()(), operator<<, readFields(), wallBoundedStreamLineParticle::trackingData::trackingData(), wallBoundedParticle(), wallBoundedStreamLineParticle::wallBoundedStreamLineParticle(), wallBoundedStreamLineParticle::wallBoundedStreamLineParticle(), wallBoundedStreamLineParticle::wallBoundedStreamLineParticle(), and writeFields().


| wallBoundedParticle | ( | const polyMesh & | c, |
| Istream & | is, | ||
| bool | readFields = true, | ||
| bool | newFormat = true ) |
Construct from Istream.
Definition at line 422 of file wallBoundedParticle.C.
References IOstreamOption::ASCII, IOstream::check(), diagEdge_, IOstream::fatalCheckNativeSizes(), IOstreamOption::format(), FUNCTION_NAME, localPosition_, particle< Type >::mesh(), meshEdgeStart_, particle< Type >::particle(), Istream::read(), readFields(), and sizeofFields_.

| wallBoundedParticle | ( | const wallBoundedParticle & | p | ) |
Construct copy.
Definition at line 451 of file wallBoundedParticle.C.
References diagEdge_, localPosition_, meshEdgeStart_, p, particle< Type >::particle(), and wallBoundedParticle().

|
protected |
Construct current edge.
Definition at line 34 of file wallBoundedParticle.C.
References Foam::abort(), diagEdge_, f(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, info(), particle< Type >::mesh(), meshEdgeStart_, polyMesh::tetBasePtIs(), and particle< Type >::tetFace().
Referenced by isTriAlongTrack(), trackFaceTri(), and trackToEdge().


|
protected |
Replacement for particle::crossEdgeConnectedFace that avoids bombing.
out on invalid tet decomposition (tetBasePtIs = -1)
Definition at line 75 of file wallBoundedParticle.C.
References primitiveMesh::cells(), e, f(), polyMesh::faces(), mesh, Foam::neg(), pFaces, and polyMesh::tetBasePtIs().
Referenced by crossEdgeConnectedFace(), and trackToEdge().


|
protected |
Cross mesh edge into different face on same cell.
Definition at line 183 of file wallBoundedParticle.C.
References Foam::abort(), particle< Type >::cell(), crossEdgeConnectedFace(), diagEdge_, f(), particle< Type >::face(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, info(), mesh, meshEdgeStart_, particle< Type >::tetFace(), and particle< Type >::tetPt().

|
protected |
Cross diagonal edge into different triangle on same face,cell.
Definition at line 232 of file wallBoundedParticle.C.
References Foam::abort(), diagEdge_, f(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, info(), mesh, meshEdgeStart_, particle< Type >::tetFace(), and particle< Type >::tetPt().
Referenced by trackToEdge().


|
protected |
Track through single triangle.
Definition at line 278 of file wallBoundedParticle.C.
References currentEdge(), particle< Type >::currentTetIndices(), diagEdge_, FixedList< T, N >::fcIndex(), forAll, localPosition_, Foam::mag(), mesh, meshEdgeStart_, n, Vector< Cmpt >::normalise(), polyMesh::points(), and s().
Referenced by trackToEdge().


Is current triangle in the track direction.
Definition at line 357 of file wallBoundedParticle.C.
References Foam::abort(), currentEdge(), particle< Type >::currentTetIndices(), Foam::FatalError, FatalErrorInFunction, FixedList< T, N >::fcIndex(), forAll, FixedList< T, N >::found(), info(), localPosition_, mesh, n, and polyMesh::points().
Referenced by trackToEdge().


Return a clone.
Reimplemented from particle< Type >.
Reimplemented in wallBoundedStreamLineParticle.
Definition at line 208 of file wallBoundedParticle.H.
References particle< Type >::Clone().

|
inlinenoexcept |
The mesh edge label or -1.
Definition at line 247 of file wallBoundedParticle.H.
References meshEdgeStart_, and Foam::noexcept.
Referenced by readFields(), wallBoundedParticle(), wallBoundedStreamLineParticle::wallBoundedStreamLineParticle(), and writeFields().

|
inlinenoexcept |
The diagonal edge label or -1.
Definition at line 252 of file wallBoundedParticle.H.
References diagEdge_, and Foam::noexcept.
Referenced by readFields(), wallBoundedParticle(), wallBoundedStreamLineParticle::wallBoundedStreamLineParticle(), and writeFields().

| scalar trackToEdge | ( | TrackCloudType & | cloud, |
| trackingData & | td, | ||
| const vector & | endPosition ) |
Equivalent of trackToFace.
References td().
Referenced by wallBoundedStreamLineParticle::move().


| void patchInteraction | ( | TrackCloudType & | cloud, |
| trackingData & | td, | ||
| const scalar | trackFraction ) |
Do all patch interaction.
Definition at line 27 of file wallBoundedParticleTemplates.C.
References polyMesh::boundaryMesh(), particle< Type >::face(), Foam::isA(), particle< Type >::mesh(), p, particle< Type >::patch(), and td().
Referenced by trackToEdge().


| void hitProcessorPatch | ( | TrackCloudType & | cloud, |
| trackingData & | td ) |
Overridable function to handle the particle hitting a processorPatch.
Definition at line 374 of file wallBoundedParticleTemplates.C.
References diagEdge_, f(), particle< Type >::face(), polyMesh::faces(), mesh, meshEdgeStart_, and td().

| void hitWallPatch | ( | TrackCloudType & | cloud, |
| trackingData & | td ) |
Overridable function to handle the particle hitting a wallPatch.
Definition at line 403 of file wallBoundedParticleTemplates.C.
References td().

|
inlinenoexcept |
Return info proxy, used to print particle information to a stream.
Definition at line 310 of file wallBoundedParticle.H.
References Foam::noexcept.
Referenced by crossDiagonalEdge(), crossEdgeConnectedFace(), currentEdge(), and isTriAlongTrack().

Read.
Referenced by wallBoundedStreamLineParticle::readFields(), and wallBoundedParticle().

Write.
Referenced by wallBoundedStreamLineParticle::writeFields().

| Foam::scalar trackToEdge | ( | TrackCloudType & | cloud, |
| trackingData & | td, | ||
| const vector & | endPosition ) |
Definition at line 72 of file wallBoundedParticleTemplates.C.
References Foam::abort(), particle< Type >::cell(), crossDiagonalEdge(), crossEdgeConnectedFace(), currentEdge(), particle< Type >::currentTetIndices(), diagEdge_, f(), particle< Type >::face(), tetIndices::face(), primitiveMesh::faceCentres(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), polyMesh::faces(), tetIndices::faceTri(), Foam::FatalError, FatalErrorInFunction, isTriAlongTrack(), localPosition_, Foam::mag(), particle< Type >::mesh(), mesh, meshBb(), meshEdgeStart_, n, patchInteraction(), path(), polyMesh::points(), points, td(), tetIndices::tet(), particle< Type >::tetFace(), particle< Type >::tetPt(), trackFaceTri(), tetIndices::triIs(), and triFace::unitNormal().

| void readFields | ( | TrackCloudType & | c | ) |
Definition at line 412 of file wallBoundedParticleTemplates.C.
References diagEdge(), meshEdgeStart(), IOobjectOption::MUST_READ, p, particle< Type >::readFields(), and wallBoundedParticle().

| void writeFields | ( | const TrackCloudType & | c | ) |
Definition at line 452 of file wallBoundedParticleTemplates.C.
References diagEdge(), meshEdgeStart(), IOobjectOption::NO_READ, p, wallBoundedParticle(), regIOobject::write(), and particle< Type >::writeFields().

|
friend |
References wallBoundedParticle().
|
friend |
|
protected |
Particle position is updated locally as opposed to via track.
functions of the base Foam::particle class
Definition at line 98 of file wallBoundedParticle.H.
Referenced by isTriAlongTrack(), wallBoundedStreamLineParticle::move(), wallBoundedStreamLineParticle::sample(), trackFaceTri(), trackToEdge(), wallBoundedParticle(), wallBoundedParticle(), and wallBoundedParticle().
|
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 109 of file wallBoundedParticle.H.
Referenced by crossDiagonalEdge(), crossEdgeConnectedFace(), currentEdge(), hitProcessorPatch(), meshEdgeStart(), trackFaceTri(), trackToEdge(), wallBoundedParticle(), wallBoundedParticle(), and wallBoundedParticle().
|
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 119 of file wallBoundedParticle.H.
Referenced by crossDiagonalEdge(), crossEdgeConnectedFace(), currentEdge(), diagEdge(), hitProcessorPatch(), trackFaceTri(), trackToEdge(), wallBoundedParticle(), wallBoundedParticle(), and wallBoundedParticle().
|
static |
Size in bytes of the fields.
Definition at line 170 of file wallBoundedParticle.H.
Referenced by Foam::operator<<(), and wallBoundedParticle().