molecule Class Reference

Foam::molecule. More...

Inheritance diagram for molecule:
Collaboration diagram for molecule:

Classes

class  constantProperties
 Class to hold molecule constant properties. 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 vector &position, const label celli, label &nLocateBoundaryHits, 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 (Istream &is, bool readFields=true)
 Construct from Istream. More...
 
autoPtr< particleclone () const
 Construct and return a clone. More...
 
bool move (moleculeCloud &, trackingData &)
 
virtual void transformProperties (const transformer &)
 Transform the physical properties of the particle. More...
 
void setSitePositions (const polyMesh &mesh, 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
 
void hitWallPatch (moleculeCloud &cloud, trackingData &td)
 Overridable function to handle the particle hitting a wallPatch. More...
 
- Public Member Functions inherited from particle
 TypeName ("particle")
 Runtime type information. More...
 
 particle (const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti, const label facei)
 Construct from components. More...
 
 particle (const polyMesh &mesh, const vector &position, const label celli, label &nLocateBoundaryHits)
 Construct from a position and a cell, searching for the rest of the. More...
 
 particle (Istream &, bool readFields=true)
 Construct from Istream. More...
 
 particle (const particle &p)
 Construct as a copy. More...
 
virtual ~particle ()
 Destructor. More...
 
label getNewParticleIndex () const
 Get unique particle creation id. More...
 
const barycentriccoordinates () const
 Return current particle coordinates. More...
 
label cell () const
 Return current cell particle is in. More...
 
label tetFace () const
 Return current tet face particle is in. More...
 
label tetPt () const
 Return current tet face particle is in. More...
 
label face () const
 Return current face particle is on otherwise -1. More...
 
labelface ()
 Return current face particle is on otherwise -1. More...
 
scalar stepFraction () const
 Return the fraction of time-step completed. More...
 
scalar & stepFraction ()
 Return the fraction of time-step completed. More...
 
label origProc () const
 Return the originating processor ID. More...
 
labelorigProc ()
 Return the originating processor ID. More...
 
label origId () const
 Return the particle ID on the originating processor. More...
 
labelorigId ()
 Return the particle ID on the originating processor. More...
 
tetIndices currentTetIndices (const polyMesh &mesh) const
 Return the indices of the current tet that the. More...
 
barycentricTensor currentTetTransform (const polyMesh &mesh) const
 Return the current tet transformation tensor. More...
 
vector normal (const polyMesh &mesh) const
 Return the normal of the tri on tetFacei_ for the. More...
 
bool onFace () const
 Is the particle on a face? More...
 
bool onInternalFace (const polyMesh &mesh) const
 Is the particle on an internal face? More...
 
bool onBoundaryFace (const polyMesh &mesh) const
 Is the particle on a boundary face? More...
 
label patch (const polyMesh &mesh) const
 Return the index of patch that the particle is on. More...
 
vector position (const polyMesh &mesh) const
 Return current particle position. More...
 
void reset (const scalar stepFraction)
 Set the step fraction and clear the behind data in preparation. More...
 
bool locate (const polyMesh &mesh, const vector &position, label celli)
 Locate the particle at the given position. More...
 
scalar track (const polyMesh &mesh, const vector &displacement, const scalar fraction)
 Track along the displacement for a given fraction of the overall. More...
 
scalar trackToCell (const polyMesh &mesh, const vector &displacement, const scalar fraction)
 As particle::track, but stops when a new cell is reached. More...
 
scalar trackToFace (const polyMesh &mesh, const vector &displacement, const scalar fraction)
 As particle::track, but stops when a face is hit. More...
 
scalar trackToTri (const polyMesh &mesh, const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToFace, but stops when a tet triangle is hit. More...
 
scalar trackToStationaryTri (const polyMesh &mesh, const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToTri, but for stationary meshes. More...
 
scalar trackToMovingTri (const polyMesh &mesh, const vector &displacement, const scalar fraction, label &tetTriI)
 As particle::trackToTri, but for moving meshes. More...
 
template<class TrackCloudType >
void hitFace (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Hit the current face. If the current face is internal than this. More...
 
template<class TrackCloudType >
scalar trackToAndHitFace (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 Convenience function. Combines trackToFace and hitFace. More...
 
vector deviationFromMeshCentre (const polyMesh &mesh) const
 Get the displacement from the mesh centre. Used to correct the. More...
 
void patchData (const polyMesh &mesh, vector &normal, vector &displacement) const
 Get the normal and displacement of the current patch location. More...
 
template<class TrackCloudType >
void prepareForParallelTransfer (TrackCloudType &, trackingData &)
 Make changes prior to a parallel transfer. Runs either. More...
 
template<class TrackCloudType >
void correctAfterParallelTransfer (TrackCloudType &, trackingData &)
 Make changes following a parallel transfer. Runs either. More...
 
void prepareForProcessorTransfer (trackingData &td)
 Make changes prior to a transfer across a processor boundary. More...
 
void correctAfterProcessorTransfer (trackingData &td)
 Make changes following a transfer across a processor boundary. More...
 
void prepareForNonConformalCyclicTransfer (const polyMesh &mesh, const label sendToPatch, const label sendToPatchFace, const vector &sendToPosition)
 Make changes prior to a transfer across a non conformal cyclic. More...
 
void correctAfterNonConformalCyclicTransfer (const polyMesh &mesh, const label sendToPatch, labelList &patchNLocateBoundaryHits)
 Make changes following a transfer across a non conformal cyclic. 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. More...
 
template<class TrackCloudType >
void hitCyclicPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
template<class TrackCloudType >
bool hitNonConformalCyclicPatch (const vector &displacement, const scalar fraction, const label patchi, TrackCloudType &cloud, trackingData &td)
 Overridable function to handle the particle hitting an. More...
 
template<class TrackCloudType >
void hitProcessorPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a. More...
 
template<class TrackCloudType >
void hitWallPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a wallPatch. More...
 
template<class TrackCloudType >
void hitBasicPatch (TrackCloudType &, trackingData &)
 Overridable function to handle the particle hitting a basic. More...
 
void prepareForInteractionListReferral (const polyMesh &mesh, const transformer &transform)
 Break the topology and store the cartesian position so that the. More...
 
void correctAfterInteractionListReferral (const polyMesh &mesh, const label celli)
 Correct the topology after referral. Locates the particle. More...
 
label procTetPt (const polyMesh &mesh, const polyMesh &procMesh, const label procCell, const label procTetFace) const
 Return the tet point appropriate for decomposition or. More...
 
void writePosition (Ostream &) const
 Write the particle position and cell. More...
 
template<class TrackCloudType >
Foam::scalar trackToAndHitFace (const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
 

Static Public Member Functions

static autoPtr< moleculeNew (Istream &is)
 Construct from Istream and return. More...
 
static void readFields (Cloud< molecule > &mC)
 
static void writeFields (const Cloud< molecule > &mC)
 
- Static Public Member Functions inherited from particle
static string propertyList ()
 
static autoPtr< particleNew (Istream &is)
 Construct from Istream and return. More...
 
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...
 

Friends

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

Additional Inherited Members

- Static Public Attributes inherited from particle
static string propertyList_ = Foam::particle::propertyList()
 String representation of properties. More...
 
static label particleCount_ = 0
 Cumulative particle counter - used to provide unique ID. More...
 

Detailed Description

Foam::molecule.

Source files

Definition at line 65 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/2]

molecule ( const polyMesh mesh,
const vector position,
const label  celli,
label nLocateBoundaryHits,
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 222 of file moleculeI.H.

References molecule::setSitePositions().

Referenced by molecule::clone(), and molecule::New().

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

◆ molecule() [2/2]

molecule ( Istream is,
bool  readFields = true 
)

Construct from Istream.

Definition at line 40 of file moleculeIO.C.

References IOstream::ASCII, IOstream::check(), IOstream::format(), Istream::read(), molecule::readFields(), Foam::readLabel(), and Foam::readScalar().

Here is the call graph for this function:

Member Function Documentation

◆ clone()

autoPtr<particle> clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented from particle.

Definition at line 284 of file molecule.H.

References molecule::molecule().

Here is the call graph for this function:

◆ New()

static autoPtr<molecule> New ( Istream is)
inlinestatic

Construct from Istream and return.

Definition at line 290 of file molecule.H.

References molecule::molecule().

Here is the call graph for this function:

◆ move()

◆ transformProperties()

void transformProperties ( const transformer )
virtual

Transform the physical properties of the particle.

according to the given transformation tensor

Reimplemented from particle.

Definition at line 190 of file molecule.C.

References Foam::transform(), dimensionSet::transform, and particle::transformProperties().

Here is the call graph for this function:

◆ setSitePositions()

void setSitePositions ( const polyMesh mesh,
const constantProperties constProps 
)

Definition at line 217 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 229 of file molecule.C.

◆ Q() [1/2]

const Foam::tensor & Q ( ) const
inline

Definition at line 467 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 473 of file moleculeI.H.

◆ v() [1/2]

const Foam::vector & v ( ) const
inline

Definition at line 479 of file moleculeI.H.

◆ v() [2/2]

Foam::vector & v ( )
inline

Definition at line 485 of file moleculeI.H.

◆ a() [1/2]

const Foam::vector & a ( ) const
inline

Definition at line 491 of file moleculeI.H.

◆ a() [2/2]

Foam::vector & a ( )
inline

Definition at line 497 of file moleculeI.H.

◆ pi() [1/2]

const Foam::vector & pi ( ) const
inline

Definition at line 503 of file moleculeI.H.

◆ pi() [2/2]

Foam::vector & pi ( )
inline

Definition at line 509 of file moleculeI.H.

◆ tau() [1/2]

const Foam::vector & tau ( ) const
inline

Definition at line 515 of file moleculeI.H.

◆ tau() [2/2]

Foam::vector & tau ( )
inline

Definition at line 521 of file moleculeI.H.

◆ siteForces() [1/2]

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

Definition at line 527 of file moleculeI.H.

◆ siteForces() [2/2]

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

Definition at line 533 of file moleculeI.H.

◆ sitePositions() [1/2]

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

Definition at line 539 of file moleculeI.H.

◆ sitePositions() [2/2]

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

Definition at line 545 of file moleculeI.H.

◆ specialPosition() [1/2]

const Foam::vector & specialPosition ( ) const
inline

Definition at line 551 of file moleculeI.H.

◆ specialPosition() [2/2]

Foam::vector & specialPosition ( )
inline

Definition at line 557 of file moleculeI.H.

◆ potentialEnergy() [1/2]

Foam::scalar potentialEnergy ( ) const
inline

Definition at line 563 of file moleculeI.H.

◆ potentialEnergy() [2/2]

Foam::scalar & potentialEnergy ( )
inline

Definition at line 569 of file moleculeI.H.

◆ rf() [1/2]

const Foam::tensor & rf ( ) const
inline

Definition at line 575 of file moleculeI.H.

◆ rf() [2/2]

Foam::tensor & rf ( )
inline

Definition at line 581 of file moleculeI.H.

◆ special()

Foam::label special ( ) const
inline

Definition at line 587 of file moleculeI.H.

◆ tethered()

bool tethered ( ) const
inline

Definition at line 593 of file moleculeI.H.

◆ id()

Foam::label id ( ) const
inline

Definition at line 599 of file moleculeI.H.

◆ hitWallPatch()

void hitWallPatch ( moleculeCloud cloud,
trackingData td 
)

Overridable function to handle the particle hitting a wallPatch.

Definition at line 237 of file molecule.C.

References particle::trackingData::mesh.

◆ readFields()

void readFields ( Cloud< molecule > &  mC)
static

◆ writeFields()

Friends And Related Function Documentation

◆ Cloud< molecule >

friend class Cloud< molecule >
friend

Definition at line 252 of file molecule.H.

◆ operator<<

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

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