Loading...
Searching...
No Matches
injectedParticle Class Reference

Primarily stores particle properties so that it can be injected at a later time. Note that this stores its own local position as opposed to the base particle class barycentric coordinates since the particle is not (usually) attached to a mesh, and instead used for post-processing. More...

#include <injectedParticle.H>

Inheritance diagram for injectedParticle:
Collaboration diagram for injectedParticle:

Classes

class  iNew
 Factory class to read-construct particles (for parallel transfer). More...

Public Member Functions

 TypeName ("injectedParticle")
 Runtime type information.
 AddToPropertyList (particle, " tag"+" soi"+" d"+" (Ux Uy Uz)";)
 String representation of properties.
 injectedParticle (const polyMesh &mesh, const vector &position, const label celli=-1)
 Construct from a position and a cell.
 injectedParticle (const polyMesh &mesh, const vector &position, const label tag, const scalar soi, const scalar d, const vector &U, const bool doLocate=true)
 Construct from components.
 injectedParticle (const polyMesh &mesh, Istream &is, bool readFields=true, bool newFormat=true)
 Construct from Istream.
 injectedParticle (const injectedParticle &p)
 Construct as a copy.
 injectedParticle (const injectedParticle &p, const polyMesh &mesh)
 Construct as a copy.
virtual autoPtr< particleclone () const
 Return a (basic particle) clone.
virtual autoPtr< particleclone (const polyMesh &mesh) const
 Construct and return a (basic particle) clone.
label tag () const noexcept
 Return const access to the tag.
scalar soi () const noexcept
 Return const access to the start of injection.
scalar d () const noexcept
 Return const access to diameter.
const vectorU () const noexcept
 Return const access to velocity.
label & tag () noexcept
 Return the tag.
scalar & soi () noexcept
 Return the start of injection.
scalar & d () noexcept
 Return access to diameter.
vectorU () noexcept
 Return access to velocity.
void writeProperties (Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly) const
 Write individual parcel properties to stream.
virtual void writePosition (Ostream &) const
 Write the particle position and cell.
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 polyMeshmesh () const noexcept
 Return the mesh database.
const barycentriccoordinates () 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.

Static Public Member Functions

static void readFields (Cloud< injectedParticle > &c)
 Read fields.
static void writeFields (const Cloud< injectedParticle > &c)
 Write fields.
static void readObjects (Cloud< injectedParticle > &c, const objectRegistry &obr)
 Read particle fields as objects from the obr registry.
static void writeObjects (const Cloud< injectedParticle > &c, objectRegistry &obr)
 Write particle fields as objects into the obr registry.
Static Public Member Functions inherited from particle< Type >
static string propertyList ()
template<class Derived>
static autoPtr< particleClone (const Derived &p)
 Clone a particle.
template<class Derived>
static autoPtr< particleClone (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 Attributes

point position_
 Position.
label tag_
 Tag.
scalar soi_
 Start of injection [s].
scalar d_
 Diameter [m].
vector U_
 Velocity [m/s].

Friends

Ostreamoperator<< (Ostream &, const injectedParticle &)

Additional Inherited Members

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.

Detailed Description

Primarily stores particle properties so that it can be injected at a later time. Note that this stores its own local position as opposed to the base particle class barycentric coordinates since the particle is not (usually) attached to a mesh, and instead used for post-processing.

Source files
See also
Foam::functionObjects::extractEulerianParticles

Definition at line 58 of file injectedParticle.H.

Constructor & Destructor Documentation

◆ injectedParticle() [1/5]

injectedParticle ( const polyMesh & mesh,
const vector & position,
const label celli = -1 )
inline

Construct from a position and a cell.

Searches for the rest of the required topology. Other properties are zero initialised.

Definition at line 23 of file injectedParticleI.H.

References d_, particle< Type >::mesh(), particle< Type >::particle(), particle< Type >::position(), position_, soi_, tag_, U_, and Foam::Zero.

Referenced by AddToPropertyList(), injectedParticle(), injectedParticle(), operator<<, readFields(), readObjects(), writeFields(), and writeObjects().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ injectedParticle() [2/5]

injectedParticle ( const polyMesh & mesh,
const vector & position,
const label tag,
const scalar soi,
const scalar d,
const vector & U,
const bool doLocate = true )
inline

Construct from components.

Definition at line 39 of file injectedParticleI.H.

References d(), d_, particle< Type >::mesh(), particle< Type >::particle(), particle< Type >::position(), position_, soi(), soi_, tag(), tag_, U(), and U_.

Here is the call graph for this function:

◆ injectedParticle() [3/5]

injectedParticle ( const polyMesh & mesh,
Istream & is,
bool readFields = true,
bool newFormat = true )

◆ injectedParticle() [4/5]

injectedParticle ( const injectedParticle & p)

Construct as a copy.

Definition at line 33 of file injectedParticle.C.

References d_, injectedParticle(), p, particle< Type >::particle(), position_, soi_, tag_, and U_.

Here is the call graph for this function:

◆ injectedParticle() [5/5]

injectedParticle ( const injectedParticle & p,
const polyMesh & mesh )

Construct as a copy.

Definition at line 44 of file injectedParticle.C.

References d_, injectedParticle(), particle< Type >::mesh(), p, particle< Type >::particle(), position_, soi_, tag_, and U_.

Here is the call graph for this function:

Member Function Documentation

◆ TypeName()

TypeName ( "injectedParticle" )

Runtime type information.

◆ AddToPropertyList()

AddToPropertyList ( particle ,
" tag"+" soi"+" d"+" (Ux Uy Uz)";  )

String representation of properties.

References d(), injectedParticle(), particle< Type >::mesh(), p, particle< Type >::particle(), particle< Type >::position(), readFields(), soi(), tag(), and U().

Here is the call graph for this function:

◆ clone() [1/2]

virtual autoPtr< particle > clone ( ) const
inlinevirtual

Return a (basic particle) clone.

Reimplemented from particle< Type >.

Definition at line 174 of file injectedParticle.H.

References particle< Type >::Clone().

Here is the call graph for this function:

◆ clone() [2/2]

virtual autoPtr< particle > clone ( const polyMesh & mesh) const
inlinevirtual

Construct and return a (basic particle) clone.

Definition at line 182 of file injectedParticle.H.

References particle< Type >::Clone(), and particle< Type >::mesh().

Here is the call graph for this function:

◆ tag() [1/2]

label tag ( ) const
inlinenoexcept

Return const access to the tag.

Definition at line 215 of file injectedParticle.H.

References Foam::noexcept, and tag_.

Referenced by AddToPropertyList(), injectedParticle(), readFields(), readObjects(), writeFields(), and writeObjects().

Here is the caller graph for this function:

◆ soi() [1/2]

scalar soi ( ) const
inlinenoexcept

Return const access to the start of injection.

Definition at line 220 of file injectedParticle.H.

References Foam::noexcept, and soi_.

Referenced by AddToPropertyList(), injectedParticle(), readFields(), readObjects(), writeFields(), and writeObjects().

Here is the caller graph for this function:

◆ d() [1/2]

scalar d ( ) const
inlinenoexcept

Return const access to diameter.

Definition at line 225 of file injectedParticle.H.

References d_, and Foam::noexcept.

Referenced by AddToPropertyList(), injectedParticle(), readFields(), readObjects(), writeFields(), and writeObjects().

Here is the caller graph for this function:

◆ U() [1/2]

const vector & U ( ) const
inlinenoexcept

Return const access to velocity.

Definition at line 230 of file injectedParticle.H.

References Foam::noexcept, and U_.

Referenced by AddToPropertyList(), injectedParticle(), readFields(), readObjects(), writeFields(), and writeObjects().

Here is the caller graph for this function:

◆ tag() [2/2]

label & tag ( )
inlinenoexcept

Return the tag.

Definition at line 238 of file injectedParticle.H.

References Foam::noexcept, and tag_.

◆ soi() [2/2]

scalar & soi ( )
inlinenoexcept

Return the start of injection.

Definition at line 243 of file injectedParticle.H.

References Foam::noexcept, and soi_.

◆ d() [2/2]

scalar & d ( )
inlinenoexcept

Return access to diameter.

Definition at line 248 of file injectedParticle.H.

References d_, and Foam::noexcept.

◆ U() [2/2]

vector & U ( )
inlinenoexcept

Return access to velocity.

Definition at line 253 of file injectedParticle.H.

References Foam::noexcept, and U_.

◆ readFields()

void readFields ( Cloud< injectedParticle > & c)
static

Read fields.

Definition at line 80 of file injectedParticleIO.C.

References d(), injectedParticle(), IOobjectOption::MUST_READ, p, particle< Type >::readFields(), soi(), tag(), U(), and U.

Referenced by AddToPropertyList(), injectedParticle(), and injectedParticleCloud::injectedParticleCloud().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeProperties()

void writeProperties ( Ostream & os,
const wordRes & filters,
const word & delim,
const bool namesOnly ) const

Write individual parcel properties to stream.

Definition at line 159 of file injectedParticleIO.C.

References d_, os(), soi_, tag_, U_, writeProp, and particle< Type >::writeProperties().

Here is the call graph for this function:

◆ writeFields()

void writeFields ( const Cloud< injectedParticle > & c)
static

◆ readObjects()

void readObjects ( Cloud< injectedParticle > & c,
const objectRegistry & obr )
static

Read particle fields as objects from the obr registry.

Definition at line 182 of file injectedParticleIO.C.

References d(), injectedParticle(), cloud::lookupIOField(), p, particle< Type >::readObjects(), soi(), tag(), and U().

Referenced by injectedParticleCloud::readObjects().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeObjects()

void writeObjects ( const Cloud< injectedParticle > & c,
objectRegistry & obr )
static

Write particle fields as objects into the obr registry.

Definition at line 211 of file injectedParticleIO.C.

References cloud::createIOField(), d(), injectedParticle(), p, soi(), tag(), U(), and particle< Type >::writeObjects().

Referenced by injectedParticleCloud::writeObjects().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writePosition()

void writePosition ( Ostream & os) const
virtual

Write the particle position and cell.

Note: This uses the local particle position, and bypasses the barycentric description

Reimplemented from particle< Type >.

Definition at line 241 of file injectedParticleIO.C.

References IOstreamOption::ASCII, particle< Type >::cell(), FUNCTION_NAME, os(), p, particle< Type >::position(), position_, s(), and token::SPACE.

Here is the call graph for this function:

◆ operator<<

Ostream & operator<< ( Ostream & ,
const injectedParticle &  )
friend

References injectedParticle().

Member Data Documentation

◆ position_

point position_
protected

◆ tag_

◆ soi_

scalar soi_
protected

◆ d_

scalar d_
protected

◆ U_

vector U_
protected

◆ sizeofFields

const std::size_t sizeofFields
static

Size in bytes of the fields.

Definition at line 101 of file injectedParticle.H.

Referenced by injectedParticle(), and Foam::operator<<().


The documentation for this class was generated from the following files: