molecule Class Reference

Foam::molecule. More...

Inheritance diagram for molecule:
[legend]
Collaboration diagram for molecule:
[legend]

Classes

class  constantProperties
 Class to hold molecule constant properties. More...
 
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 Types

enum  specialTypes { SPECIAL_TETHERED = -1 , SPECIAL_FROZEN = -2 , NOT_SPECIAL = 0 , SPECIAL_USER = 1 }
 

Public Member Functions

 molecule (const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti, const tensor &Q, const vector &v, const vector &a, const vector &pi, const vector &tau, const vector &specialPosition, const constantProperties &constProps, const label special, const label id)
 Construct from components. More...
 
 molecule (const polyMesh &mesh, const vector &position, const label celli, const tensor &Q, const vector &v, const vector &a, const vector &pi, const vector &tau, const vector &specialPosition, const constantProperties &constProps, const label special, const label id)
 Construct from a position and a cell, searching for the rest of the. More...
 
 molecule (const polyMesh &mesh, Istream &is, bool readFields=true, bool newFormat=true)
 Construct from Istream. More...
 
autoPtr< particleclone () const
 Construct and return a clone. More...
 
bool move (moleculeCloud &, trackingData &, const scalar trackTime)
 
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...
 
void setSitePositions (const constantProperties &constProps)
 
void setSiteSizes (label size)
 
const tensorQ () const
 
tensorQ ()
 
const vectorv () const
 
vectorv ()
 
const vectora () const
 
vectora ()
 
const vectorpi () const
 
vectorpi ()
 
const vectortau () const
 
vectortau ()
 
const List< vector > & siteForces () const
 
List< vector > & siteForces ()
 
const List< vector > & sitePositions () const
 
List< vector > & sitePositions ()
 
const vectorspecialPosition () const
 
vectorspecialPosition ()
 
scalar potentialEnergy () const
 
scalar & potentialEnergy ()
 
const tensorrf () const
 
tensorrf ()
 
label special () const
 
bool tethered () const
 
label id () const
 
bool hitPatch (moleculeCloud &cloud, trackingData &td)
 Overridable function to handle the particle hitting a patch. More...
 
void hitProcessorPatch (moleculeCloud &cloud, trackingData &td)
 Overridable function to handle the particle hitting a processorPatch. More...
 
void hitWallPatch (moleculeCloud &cloud, trackingData &td)
 Overridable function to handle the particle hitting a wallPatch. More...
 
- Public Member Functions inherited from particle< Type >
 TypeName ("particle")
 Runtime type information. More...
 
 particle (const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
 Construct from components. More...
 
 particle (const polyMesh &mesh, const vector &position, const label celli=-1)
 Construct from a position and a cell. More...
 
 particle (const polyMesh &mesh, const vector &position, const label celli, const label tetFacei, const label tetPti, const bool doLocate=true)
 Construct from position components. More...
 
 particle (const polyMesh &mesh, Istream &, const bool readFields=true, const bool newFormat=true, const bool doLocate=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 reference to a new mesh. More...
 
virtual autoPtr< particleclone () const
 Construct a clone. More...
 
virtual ~particle ()=default
 Destructor. More...
 
label getNewParticleID () const
 Get unique particle creation id. More...
 
const polyMeshmesh () const noexcept
 Return the mesh database. More...
 
const barycentriccoordinates () const noexcept
 Return current particle coordinates. More...
 
label cell () const noexcept
 Return current cell particle is in. More...
 
label & cell () noexcept
 Return current cell particle is in for manipulation. More...
 
label tetFace () const noexcept
 Return current tet face particle is in. More...
 
label & tetFace () noexcept
 Return current tet face particle is in for manipulation. More...
 
label tetPt () const noexcept
 Return current tet face particle is in. More...
 
label & tetPt () noexcept
 Return current tet face particle is in for manipulation. More...
 
label face () const noexcept
 Return current face particle is on otherwise -1. More...
 
label & face () noexcept
 Return current face particle is on for manipulation. More...
 
scalar stepFraction () const noexcept
 Return the fraction of time-step completed. More...
 
scalar & stepFraction () noexcept
 Return the fraction of time-step completed. More...
 
label origProc () const noexcept
 Return the originating processor ID. More...
 
label & origProc () noexcept
 Return the originating processor ID. More...
 
label origId () const noexcept
 Return the particle ID on the originating processor. More...
 
label & origId () noexcept
 Return the particle ID on the originating processor. More...
 
Pair< scalar > stepFractionSpan () const
 Return the step fraction change within the overall time-step. More...
 
scalar currentTimeFraction () const
 Return the current fraction within the timestep. This differs. More...
 
tetIndices currentTetIndices () const noexcept
 Return indices of the current tet that the particle occupies. More...
 
barycentricTensor currentTetTransform () const
 Return the current tet transformation tensor. More...
 
vector normal () const
 The (unit) normal of the tri on tetFacei_ for the current tet. More...
 
bool onFace () const noexcept
 Is the particle on a face? More...
 
bool onInternalFace () const noexcept
 Is the particle on an internal face? More...
 
bool onBoundaryFace () const noexcept
 Is the particle on a boundary face? More...
 
label patch () const
 Return the index of patch that the particle is on. More...
 
vector position () const
 Return current particle position. More...
 
void reset ()
 Reset particle data. More...
 
scalar track (const vector &displacement, const scalar fraction)
 Track along the displacement for a given fraction of the overall. More...
 
scalar trackToFace (const vector &displacement, const scalar fraction)
 As particle::track, but also stops on internal faces. More...
 
scalar trackToTri (const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToFace, but also stops on tet triangles. On. More...
 
scalar trackToStationaryTri (const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToTri, but for stationary meshes. More...
 
scalar trackToMovingTri (const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToTri, but for moving meshes. More...
 
template<class TrackCloudType >
void hitFace (const vector &direction, TrackCloudType &cloud, trackingData &td)
 Hit the current face. If the current face is internal than this. More...
 
template<class TrackCloudType >
void trackToAndHitFace (const vector &direction, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Convenience function. Combines trackToFace and hitFace. More...
 
vector deviationFromMeshCentre () const
 Get the displacement from the mesh centre. Used to correct the. More...
 
void patchData (vector &n, vector &U) const
 Get the normal and velocity of the current patch location. 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...
 
void prepareForParallelTransfer ()
 Convert global addressing to the processor patch local equivalents. More...
 
void correctAfterParallelTransfer (const label patchi, trackingData &td)
 Convert processor patch addressing to the global equivalents. More...
 
void prepareForInteractionListReferral (const vectorTensorTransform &transform)
 Break the topology and store the particle position so that the. More...
 
void correctAfterInteractionListReferral (const label celli)
 Correct the topology after referral. The particle may still be. More...
 
label procTetPt (const polyMesh &procMesh, const label procCell, const label procTetFace) const
 Return the tet point appropriate for decomposition or reconstruction. More...
 
void autoMap (const vector &position, const mapPolyMesh &mapper)
 Map after a topology change. More...
 
void relocate (const point &position, const label celli=-1)
 Set the addressing based on the provided position. More...
 
void writeProperties (Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly) const
 Write individual particle properties to stream. More...
 
void writeCoordinates (Ostream &os) const
 Write the particle barycentric coordinates and cell info. More...
 
virtual void writePosition (Ostream &os) const
 Write the particle position and cell id. More...
 

Static Public Member Functions

static void readFields (Cloud< molecule > &mC)
 
static void writeFields (const Cloud< molecule > &mC)
 
- Static Public Member Functions inherited from particle< Type >
static string propertyList ()
 
template<class Type >
static void writePropertyName (Ostream &os, const word &name, const word &delim)
 Write the name representation to stream. More...
 
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())
 
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())
 
template<class TrackCloudType >
static void readFields (TrackCloudType &c)
 Read the fields associated with the owner cloud. More...
 
template<class TrackCloudType >
static void writeFields (const TrackCloudType &c)
 Write the fields associated with the owner cloud. More...
 
template<class CloudType >
static void readObjects (CloudType &c, const objectRegistry &obr)
 Read particle fields as objects from the obr registry. More...
 
template<class CloudType >
static void writeObjects (const CloudType &c, objectRegistry &obr)
 Write particle fields as objects into the obr registry. More...
 

Static Public Attributes

static const std::size_t sizeofFields
 Size in bytes of the fields. More...
 
- Static Public Attributes inherited from particle< Type >
static string propertyList_ = Foam::particle::propertyList()
 String representation of properties. More...
 
static label particleCount_ = 0
 Cumulative particle counter - used to provide unique ID. More...
 
static bool writeLagrangianCoordinates = true
 
static bool writeLagrangianPositions
 

Friends

class Cloud< molecule >
 
Ostreamoperator<< (Ostream &, const molecule &)
 

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. More...
 
template<class TrackCloudType >
bool hitPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a patch. More...
 
template<class TrackCloudType >
void hitWedgePatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a wedgePatch. More...
 
template<class TrackCloudType >
void hitSymmetryPlanePatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
template<class TrackCloudType >
void hitSymmetryPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a symmetryPatch. More...
 
template<class TrackCloudType >
void hitCyclicPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a cyclicPatch. More...
 
template<class TrackCloudType >
void hitCyclicAMIPatch (TrackCloudType &, trackingData &, const vector &)
 Overridable function to handle the particle hitting a cyclicAMIPatch. More...
 
template<class TrackCloudType >
void hitCyclicACMIPatch (TrackCloudType &, trackingData &, const vector &)
 Overridable function to handle the particle hitting a. More...
 
template<class TrackCloudType >
void hitProcessorPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a processorPatch. More...
 
template<class TrackCloudType >
void hitWallPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a wallPatch. More...
 
template<class TrackCloudType >
void hitBoundaryFace (const vector &direction, TrackCloudType &cloud, trackingData &td)
 Dispatch function for boundary face interaction. Calls one of. More...
 

Detailed Description

Foam::molecule.

Source files

Definition at line 67 of file molecule.H.

Member Enumeration Documentation

◆ specialTypes

Enumerator
SPECIAL_TETHERED 
SPECIAL_FROZEN 
NOT_SPECIAL 
SPECIAL_USER 

Definition at line 81 of file molecule.H.

Constructor & Destructor Documentation

◆ molecule() [1/3]

molecule ( const polyMesh mesh,
const barycentric coordinates,
const label  celli,
const label  tetFacei,
const label  tetPti,
const tensor Q,
const vector v,
const vector a,
const vector pi,
const vector tau,
const vector specialPosition,
const constantProperties constProps,
const label  special,
const label  id 
)
inline

Construct from components.

Definition at line 225 of file moleculeI.H.

References molecule::setSitePositions().

Here is the call graph for this function:

◆ molecule() [2/3]

molecule ( const polyMesh mesh,
const vector position,
const label  celli,
const tensor Q,
const vector v,
const vector a,
const vector pi,
const vector tau,
const vector specialPosition,
const constantProperties constProps,
const label  special,
const label  id 
)
inline

Construct from a position and a cell, searching for the rest of the.

required topology

Definition at line 262 of file moleculeI.H.

References molecule::setSitePositions().

Here is the call graph for this function:

◆ molecule() [3/3]

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

Member Function Documentation

◆ clone()

autoPtr< particle > clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented from particle< Type >.

Definition at line 286 of file molecule.H.

◆ move()

◆ transformProperties() [1/2]

void transformProperties ( const tensor T)
virtual

Transform the physical properties of the particle.

according to the given transformation tensor

Reimplemented from particle< Type >.

Definition at line 191 of file molecule.C.

References T, Foam::transform(), and particle< Type >::transformProperties().

Here is the call graph for this function:

◆ transformProperties() [2/2]

void transformProperties ( const vector separation)
virtual

Transform the physical properties of the particle.

according to the given separation vector

Reimplemented from particle< Type >.

Definition at line 213 of file molecule.C.

References particle< Type >::transformProperties().

Here is the call graph for this function:

◆ setSitePositions()

void setSitePositions ( const constantProperties constProps)

Definition at line 226 of file molecule.C.

References molecule::constantProperties::siteReferencePositions().

Referenced by molecule::molecule().

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

◆ setSiteSizes()

void setSiteSizes ( label  size)

Definition at line 232 of file molecule.C.

◆ Q() [1/2]

const Foam::tensor & Q ( ) const
inline

Definition at line 509 of file moleculeI.H.

Referenced by molecule::constantProperties::constantProperties().

Here is the caller graph for this function:

◆ Q() [2/2]

Foam::tensor & Q ( )
inline

Definition at line 515 of file moleculeI.H.

◆ v() [1/2]

const Foam::vector & v ( ) const
inline

Definition at line 521 of file moleculeI.H.

Referenced by moleculeCloud::applyConstraintsAndThermostats().

Here is the caller graph for this function:

◆ v() [2/2]

Foam::vector & v ( )
inline

Definition at line 527 of file moleculeI.H.

◆ a() [1/2]

const Foam::vector & a ( ) const
inline

Definition at line 533 of file moleculeI.H.

◆ a() [2/2]

Foam::vector & a ( )
inline

Definition at line 539 of file moleculeI.H.

◆ pi() [1/2]

const Foam::vector & pi ( ) const
inline

Definition at line 545 of file moleculeI.H.

Referenced by moleculeCloud::applyConstraintsAndThermostats().

Here is the caller graph for this function:

◆ pi() [2/2]

Foam::vector & pi ( )
inline

Definition at line 551 of file moleculeI.H.

◆ tau() [1/2]

const Foam::vector & tau ( ) const
inline

Definition at line 557 of file moleculeI.H.

◆ tau() [2/2]

Foam::vector & tau ( )
inline

Definition at line 563 of file moleculeI.H.

◆ siteForces() [1/2]

const Foam::List< Foam::vector > & siteForces ( ) const
inline

Definition at line 569 of file moleculeI.H.

Referenced by moleculeCloud::calculateForce().

Here is the caller graph for this function:

◆ siteForces() [2/2]

Foam::List< Foam::vector > & siteForces ( )
inline

Definition at line 575 of file moleculeI.H.

◆ sitePositions() [1/2]

const Foam::List< Foam::vector > & sitePositions ( ) const
inline

Definition at line 581 of file moleculeI.H.

Referenced by moleculeCloud::writeXYZ().

Here is the caller graph for this function:

◆ sitePositions() [2/2]

Foam::List< Foam::vector > & sitePositions ( )
inline

Definition at line 587 of file moleculeI.H.

◆ specialPosition() [1/2]

const Foam::vector & specialPosition ( ) const
inline

Definition at line 593 of file moleculeI.H.

◆ specialPosition() [2/2]

Foam::vector & specialPosition ( )
inline

Definition at line 599 of file moleculeI.H.

◆ potentialEnergy() [1/2]

Foam::scalar potentialEnergy ( ) const
inline

Definition at line 605 of file moleculeI.H.

Referenced by moleculeCloud::calculateForce().

Here is the caller graph for this function:

◆ potentialEnergy() [2/2]

Foam::scalar & potentialEnergy ( )
inline

Definition at line 611 of file moleculeI.H.

◆ rf() [1/2]

const Foam::tensor & rf ( ) const
inline

Definition at line 617 of file moleculeI.H.

Referenced by moleculeCloud::calculateForce().

Here is the caller graph for this function:

◆ rf() [2/2]

Foam::tensor & rf ( )
inline

Definition at line 623 of file moleculeI.H.

◆ special()

Foam::label special ( ) const
inline

Definition at line 629 of file moleculeI.H.

◆ tethered()

bool tethered ( ) const
inline

Definition at line 635 of file moleculeI.H.

◆ id()

Foam::label id ( ) const
inline

Definition at line 641 of file moleculeI.H.

Referenced by moleculeCloud::writeXYZ().

Here is the caller graph for this function:

◆ hitPatch()

bool hitPatch ( moleculeCloud cloud,
trackingData td 
)

Overridable function to handle the particle hitting a patch.

Executed before other patch-hitting functions

Definition at line 240 of file molecule.C.

◆ hitProcessorPatch()

void hitProcessorPatch ( moleculeCloud cloud,
trackingData td 
)

Overridable function to handle the particle hitting a processorPatch.

Definition at line 246 of file molecule.C.

References particle< Type >::trackingData::switchProcessor.

◆ hitWallPatch()

void hitWallPatch ( moleculeCloud cloud,
trackingData td 
)

Overridable function to handle the particle hitting a wallPatch.

Definition at line 252 of file molecule.C.

◆ readFields()

void readFields ( Cloud< molecule > &  mC)
static

Definition at line 111 of file moleculeIO.C.

References Cloud< ParticleType >::checkFieldIOobject(), Cloud< ParticleType >::fieldIOobject(), IOobject::MUST_READ, and HashTable< T, Key, Hash >::size().

Referenced by molecule::molecule().

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

◆ writeFields()

void writeFields ( const Cloud< molecule > &  mC)
static

Definition at line 166 of file moleculeIO.C.

References Foam::endl(), Cloud< ParticleType >::fieldIOobject(), Foam::Info, moleculeCloud::mesh(), IOobject::name(), IOobject::NO_READ, cloud::prefix, HashTable< T, Key, Hash >::size(), objectRegistry::time(), Time::timePath(), regIOobject::write(), fieldAverage::writeFields(), and moleculeCloud::writeXYZ().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ Cloud< molecule >

friend class Cloud< molecule >
friend

Definition at line 230 of file molecule.H.

◆ operator<<

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

Member Data Documentation

◆ sizeofFields

const std::size_t sizeofFields
static

Size in bytes of the fields.

Definition at line 74 of file molecule.H.

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


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