33 Foam::tensor Foam::molecule::rotationTensorX(scalar phi)
const 44 Foam::tensor Foam::molecule::rotationTensorY(scalar phi)
const 55 Foam::tensor Foam::molecule::rotationTensorZ(scalar phi)
const 80 v_ += 0.5*trackTime*a_;
82 pi_ += 0.5*trackTime*tau_;
84 else if (td.
part() == 1)
94 scalar dt =
min(dtMax, tEnd);
102 else if (td.
part() == 2)
108 if (!constProps.pointMolecule())
114 if (!constProps.linearMolecule())
133 if (!constProps.linearMolecule())
143 else if (td.
part() == 3)
148 scalar m = constProps.mass();
160 tau_ += (constProps.siteReferencePositions()[
s] ^ (Q_.
T() &
f));
163 v_ += 0.5*trackTime*a_;
165 pi_ += 0.5*trackTime*tau_;
167 if (constProps.pointMolecule())
174 if (constProps.linearMolecule())
184 << td.
part() <<
" is an invalid part of the integration method." 210 siteForces_ = T & siteForces_;
220 specialPosition_ += separation;
223 sitePositions_ = sitePositions_ + separation;
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void hitProcessorPatch(const processorPolyPatch &, trackingData &td)
Overridable function to handle the particle hitting a processorPatch.
Class to hold molecule constant properties.
void setSitePositions(const constantProperties &constProps)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
vector position_
Position of particle.
Neighbour processor patch.
scalar & stepFraction()
Return the fraction of time-step completed.
CloudType & cloud()
Return a reference to the cloud.
const vector & position() const
Return current particle position.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
dimensionedScalar cos(const dimensionedScalar &ds)
const Field< vector > & siteReferencePositions() const
void hitWallPatch(const wallPolyPatch &, trackingData &td, const tetIndices &)
Overridable function to handle the particle hitting a wallPatch.
bool move(trackingData &, const scalar trackTime)
const List< molecule::constantProperties > constProps() const
vector normal() const
Return the normal of the tri on tetFacei_ for the.
Storage and named access for the indices of a tet which is part of the decomposition of a cell...
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
errorManip< error > abort(error &err)
dimensionedScalar sin(const dimensionedScalar &ds)
Tensor< Cmpt > T() const
Return transpose.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
scalar trackToFace(const vector &endPosition, TrackData &td)
Track particle to a given position and returns 1.0 if the.
void setSize(const label)
Reset size of List.
bool hitPatch(const polyPatch &, trackingData &td, const label patchi, const scalar trackFraction, const tetIndices &tetIs)
Overridable function to handle the particle hitting a patch.
#define R(A, B, C, D, E, F, K, M)
Class used to pass tracking data to the trackToFace function.
void setSiteSizes(label size)
dimensioned< scalar > mag(const dimensioned< Type > &)
Calculates the inertia tensor and principal axes and moments of a polyhedra/cells/triSurfaces. Inertia can either be of the solid body or of a thin shell.
bool switchProcessor
Flag to switch processor.
A patch is a list of labels that address the faces in the global face list.
Tensor< scalar > tensor
Tensor of scalars.
dimensionSet transform(const dimensionSet &)