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 72 const scalar trackTime
85 v_ += 0.5*trackTime*a_;
87 pi_ += 0.5*trackTime*tau_;
89 else if (td.
part() == 1)
99 else if (td.
part() == 2)
105 if (!constProps.pointMolecule())
111 if (!constProps.linearMolecule())
130 if (!constProps.linearMolecule())
140 else if (td.
part() == 3)
145 scalar m = constProps.mass();
157 tau_ += (constProps.siteReferencePositions()[
s] ^ (Q_.
T() &
f));
160 v_ += 0.5*trackTime*a_;
162 pi_ += 0.5*trackTime*tau_;
164 if (constProps.pointMolecule())
171 if (constProps.linearMolecule())
181 << td.
part() <<
" is an invalid part of the integration method." 207 siteForces_ = T & siteForces_;
217 specialPosition_ += separation;
220 sitePositions_ = sitePositions_ + separation;
253 const scalar vn = v_ &
nw;
#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.
Class to hold molecule constant properties.
void setSitePositions(const constantProperties &constProps)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
bool hitPatch(moleculeCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a patch.
Tensor< Cmpt > T() const
Return transpose.
scalar trackToAndHitFace(const vector &displacement, const scalar fraction, TrackCloudType &cloud, trackingData &td)
Convenience function. Combines trackToFace and hitFace.
void hitProcessorPatch(moleculeCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a processorPatch.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
bool move(moleculeCloud &, trackingData &, const scalar trackTime)
vector normal() const
Return the normal of the tri on tetFacei_ for the.
const Field< vector > & siteReferencePositions() const
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)
bool switchProcessor
Flag to switch processor.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
errorManip< error > abort(error &err)
void hitWallPatch(moleculeCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
dimensionedScalar sin(const dimensionedScalar &ds)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalar stepFraction() const
Return the fraction of time-step completed.
void setSize(const label)
Reset size of List.
#define R(A, B, C, D, E, F, K, M)
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
Class used to pass tracking data to the trackToFace function.
void setSiteSizes(label size)
const List< molecule::constantProperties > constProps() const
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.
vector position() const
Return current particle position.
Tensor< scalar > tensor
Tensor of scalars.
dimensionSet transform(const dimensionSet &)