Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
molecule Class Reference

Foam::molecule. More...

Inheritance diagram for molecule:
Inheritance graph
[legend]
Collaboration diagram for molecule:
Collaboration graph
[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 vector &position, 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, Istream &is, bool readFields=true)
 Construct from Istream. More...
 
autoPtr< particleclone () const
 Construct and return a clone. More...
 
bool move (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 (const polyPatch &, trackingData &td, const label patchI, const scalar trackFraction, const tetIndices &tetIs)
 Overridable function to handle the particle hitting a patch. More...
 
void hitProcessorPatch (const processorPolyPatch &, trackingData &td)
 Overridable function to handle the particle hitting a processorPatch. More...
 
void hitWallPatch (const wallPolyPatch &, trackingData &td, const tetIndices &)
 Overridable function to handle the particle hitting a wallPatch. More...
 
void hitPatch (const polyPatch &, trackingData &td)
 Overridable function to handle the particle hitting a polyPatch. More...
 
- Public Member Functions inherited from particle< Type >
 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 polyMeshmesh () const
 Return the mesh database. More...
 
const vectorposition () const
 Return current particle position. More...
 
vectorposition ()
 Return current particle position. More...
 
labelcell ()
 Return current cell particle is in. More...
 
label cell () const
 Return current cell particle is in. More...
 
labeltetFace ()
 Return current tet face particle is in. More...
 
label tetFace () const
 Return current tet face particle is in. More...
 
labeltetPt ()
 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...
 
labelface ()
 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...
 
labelorigProc ()
 Return the originating processor id for manipulation. More...
 
label origId () const
 Return const access to the particle id on originating processor. More...
 
labelorigId ()
 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 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)
 
- Public Member Functions inherited from DLListBase::link
 link ()
 Null construct. More...
 
bool registered () const
 Check if the link is registered with the DLListBase. More...
 
void deregister ()
 Deregister the link after removal. 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 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...
 

Friends

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

Additional Inherited Members

- Public Attributes inherited from DLListBase::link
linkprev_
 Pointer to next entry in list. More...
 
linknext_
 
- 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 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...
 
- Protected Member Functions inherited from particle< Type >
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 inherited from particle< Type >
const polyMeshmesh_
 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...
 

Detailed Description

Foam::molecule.

Source files

Definition at line 56 of file molecule.H.

Member Enumeration Documentation

Enumerator
SPECIAL_TETHERED 
SPECIAL_FROZEN 
NOT_SPECIAL 
SPECIAL_USER 

Definition at line 72 of file molecule.H.

Constructor & Destructor Documentation

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

References Foam::abort(), Foam::FatalError, FatalErrorIn, Foam::findIndex(), forAll, molecule::id(), Foam::mag(), Foam::nl, molecule::setSitePositions(), List< T >::setSize(), molecule::constantProperties::siteIds(), and List< T >::size().

Referenced by molecule::clone(), molecule::constantProperties::constantProperties(), and molecule::iNew::operator()().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Construct from Istream.

Definition at line 41 of file moleculeIO.C.

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

Here is the call graph for this function:

Member Function Documentation

autoPtr<particle> clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented from particle< Type >.

Definition at line 257 of file molecule.H.

References particle< Type >::mesh_, and molecule::molecule().

Here is the call graph for this function:

bool move ( molecule::trackingData td,
const scalar  trackTime 
)
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 192 of file molecule.C.

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

Referenced by molecule::iNew::operator()().

Here is the call graph for this function:

Here is the caller graph for this function:

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 214 of file molecule.C.

References molecule::SPECIAL_TETHERED, and particle< Type >::transformProperties().

Here is the call graph for this function:

void setSitePositions ( const constantProperties constProps)

Definition at line 227 of file molecule.C.

References particle< Type >::position_, and molecule::constantProperties::siteReferencePositions().

Referenced by molecule::molecule(), molecule::move(), and molecule::iNew::operator()().

Here is the call graph for this function:

Here is the caller graph for this function:

void setSiteSizes ( label  size)

Definition at line 233 of file molecule.C.

References molecule::hitPatch(), and List< T >::setSize().

Referenced by molecule::iNew::operator()().

Here is the call graph for this function:

Here is the caller graph for this function:

const Foam::tensor & Q ( ) const
inline

Definition at line 468 of file moleculeI.H.

Referenced by molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

Foam::tensor & Q ( )
inline

Definition at line 474 of file moleculeI.H.

const Foam::vector & v ( ) const
inline

Definition at line 480 of file moleculeI.H.

Referenced by molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

Foam::vector & v ( )
inline

Definition at line 486 of file moleculeI.H.

const Foam::vector & a ( ) const
inline

Definition at line 492 of file moleculeI.H.

Referenced by molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

Foam::vector & a ( )
inline

Definition at line 498 of file moleculeI.H.

const Foam::vector & pi ( ) const
inline

Definition at line 504 of file moleculeI.H.

Referenced by molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

Foam::vector & pi ( )
inline

Definition at line 510 of file moleculeI.H.

const Foam::vector & tau ( ) const
inline

Definition at line 516 of file moleculeI.H.

Referenced by molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

Foam::vector & tau ( )
inline

Definition at line 522 of file moleculeI.H.

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

Definition at line 528 of file moleculeI.H.

Referenced by molecule::iNew::operator()().

Here is the caller graph for this function:

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

Definition at line 534 of file moleculeI.H.

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

Definition at line 540 of file moleculeI.H.

Referenced by molecule::iNew::operator()().

Here is the caller graph for this function:

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

Definition at line 546 of file moleculeI.H.

const Foam::vector & specialPosition ( ) const
inline

Definition at line 552 of file moleculeI.H.

Referenced by molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

Foam::vector & specialPosition ( )
inline

Definition at line 558 of file moleculeI.H.

Foam::scalar potentialEnergy ( ) const
inline

Definition at line 564 of file moleculeI.H.

Referenced by molecule::iNew::operator()().

Here is the caller graph for this function:

Foam::scalar & potentialEnergy ( )
inline

Definition at line 570 of file moleculeI.H.

const Foam::tensor & rf ( ) const
inline

Definition at line 576 of file moleculeI.H.

Referenced by molecule::iNew::operator()().

Here is the caller graph for this function:

Foam::tensor & rf ( )
inline

Definition at line 582 of file moleculeI.H.

Foam::label special ( ) const
inline

Definition at line 588 of file moleculeI.H.

Referenced by molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

bool tethered ( ) const
inline

Definition at line 594 of file moleculeI.H.

References molecule::SPECIAL_TETHERED.

Referenced by molecule::iNew::operator()().

Here is the caller graph for this function:

Foam::label id ( ) const
inline

Definition at line 600 of file moleculeI.H.

Referenced by molecule::molecule(), molecule::iNew::operator()(), molecule::readFields(), and molecule::writeFields().

Here is the caller graph for this function:

bool hitPatch ( const polyPatch ,
trackingData td,
const label  patchI,
const scalar  trackFraction,
const tetIndices tetIs 
)

Overridable function to handle the particle hitting a patch.

Executed before other patch-hitting functions

Definition at line 242 of file molecule.C.

References molecule::hitProcessorPatch().

Referenced by molecule::hitWallPatch(), molecule::iNew::operator()(), and molecule::setSiteSizes().

Here is the call graph for this function:

Here is the caller graph for this function:

void hitProcessorPatch ( const processorPolyPatch ,
trackingData td 
)

Overridable function to handle the particle hitting a processorPatch.

Definition at line 255 of file molecule.C.

References molecule::hitWallPatch(), and particle< Type >::TrackingData< CloudType >::switchProcessor.

Referenced by molecule::hitPatch(), and molecule::iNew::operator()().

Here is the call graph for this function:

Here is the caller graph for this function:

void hitWallPatch ( const wallPolyPatch wpp,
trackingData td,
const tetIndices tetIs 
)

Overridable function to handle the particle hitting a wallPatch.

Definition at line 265 of file molecule.C.

References molecule::hitPatch(), Foam::mag(), particle< Type >::normal(), and nw.

Referenced by molecule::hitProcessorPatch(), and molecule::iNew::operator()().

Here is the call graph for this function:

Here is the caller graph for this function:

void hitPatch ( const polyPatch ,
trackingData td 
)

Overridable function to handle the particle hitting a polyPatch.

Definition at line 287 of file molecule.C.

References particle< Type >::TrackingData< CloudType >::keepParticle.

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

Friends And Related Function Documentation

friend class Cloud< molecule >
friend

Definition at line 225 of file molecule.H.

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

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