Go to the documentation of this file.
80 v_ += 0.5*trackTime*a_;
82 pi_ += 0.5*trackTime*tau_;
84 else if (td.
part() == 1)
88 scalar tEnd = (1.0 - stepFraction())*trackTime;
94 scalar dt =
min(dtMax, tEnd);
96 dt *= trackToFace(position() + dt*v_, td);
99 stepFraction() = 1.0 - tEnd/trackTime;
102 else if (td.
part() == 2)
141 setSitePositions(constProps);
143 else if (td.
part() == 3)
148 scalar m = constProps.
mass();
163 v_ += 0.5*trackTime*a_;
165 pi_ += 0.5*trackTime*tau_;
184 << td.
part() <<
" is an invalid part of the integration method."
208 sitePositions_ = position_ + (
T & (sitePositions_ - position_));
210 siteForces_ =
T & siteForces_;
218 if (special_ == SPECIAL_TETHERED)
220 specialPosition_ += separation;
223 sitePositions_ = sitePositions_ + separation;
235 sitePositions_.setSize(size);
237 siteForces_.setSize(size);
Templated 3D tensor derived from VectorSpace adding construction from 9 components,...
tensor rotationTensorY(scalar deltaT) const
tensor rotationTensorZ(scalar deltaT) const
#define forAll(list, i)
Loop across all elements in list.
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
dimensionedScalar sin(const dimensionedScalar &ds)
Tensor< scalar > tensor
Tensor of scalars.
CloudType & cloud()
Return a reference to the cloud.
dimensioned< scalar > mag(const dimensioned< Type > &)
dimensionSet transform(const dimensionSet &)
void setSitePositions(const constantProperties &constProps)
bool pointMolecule() const
const List< molecule::constantProperties > constProps() const
#define R(A, B, C, D, E, F, K, M)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A patch is a list of labels that address the faces in the global face list.
const Field< vector > & siteReferencePositions() const
const diagTensor & momentOfInertia() const
bool linearMolecule() const
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Class used to pass tracking data to the trackToFace function.
Neighbour processor patch.
void setSiteSizes(label size)
errorManip< error > abort(error &err)
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))
bool switchProcessor
Flag to switch processor.
Storage and named access for the indices of a tet which is part of the decomposition of a cell.
Calculates the inertia tensor and principal axes and moments of a polyhedra/cells/triSurfaces....
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
void hitWallPatch(const wallPolyPatch &, trackingData &td, const tetIndices &)
Overridable function to handle the particle hitting a wallPatch.
tensor rotationTensorX(scalar deltaT) const
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
bool hitPatch(const polyPatch &, trackingData &td, const label patchI, const scalar trackFraction, const tetIndices &tetIs)
Overridable function to handle the particle hitting a patch.
Class to hold molecule constant properties.
void hitProcessorPatch(const processorPolyPatch &, trackingData &td)
Overridable function to handle the particle hitting a processorPatch.
bool move(trackingData &, const scalar trackTime)
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
A normal distribution model.
dimensionedScalar cos(const dimensionedScalar &ds)