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
81 if (td.
part() == trackingData::tpVelocityHalfStep0)
86 v_ += 0.5*trackTime*a_;
88 pi_ += 0.5*trackTime*tau_;
90 else if (td.
part() == trackingData::tpLinearTrack)
96 const scalar
f = 1 - stepFraction();
97 trackToAndHitFace(
f*trackTime*v_,
f,
cloud, td);
100 else if (td.
part() == trackingData::tpRotationalTrack)
139 setSitePositions(td.
mesh, constProps);
141 else if (td.
part() == trackingData::tpVelocityHalfStep1)
146 scalar m = constProps.
mass();
161 v_ += 0.5*trackTime*a_;
163 pi_ += 0.5*trackTime*tau_;
182 << td.
part() <<
" is an invalid part of the integration method."
210 if (special_ == SPECIAL_TETHERED)
212 specialPosition_ =
transform.transformPosition(specialPosition_);
231 sitePositions_.setSize(size);
233 siteForces_.setSize(size);
240 const scalar vn = v_ & nw;
#define forAll(list, i)
Loop across all elements in list.
scalar deltaTValue() const
Return time step value.
A cloud is a collection of lagrangian particles.
friend dimensionSet transform(const dimensionSet &)
Class to hold molecule constant properties.
const diagTensor & momentOfInertia() const
bool pointMolecule() const
const Field< vector > & siteReferencePositions() const
bool linearMolecule() const
Class used to pass tracking data to the trackToFace function.
trackPart part() const
Return the part of the tracking operation taking place.
void setSiteSizes(label size)
void setSitePositions(const polyMesh &mesh, const constantProperties &constProps)
bool move(moleculeCloud &, trackingData &)
virtual void transformProperties(const transformer &)
Transform the physical properties of the particle.
void hitWallPatch(moleculeCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
Calculates the inertia tensor and principal axes and moments of a polyhedra/cells/triSurfaces....
const Time & time() const
Return time.
label sendToProc
Processor to send the particle to. -1 indicates that this.
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
const polyMesh & mesh
Reference to the mesh.
virtual void transformProperties(const transformer &)
Transform the physical properties of the particle.
Mesh consisting of general polyhedral cells.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
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.name(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Tensor< scalar > tensor
Tensor of scalars.
errorManip< error > abort(error &err)
dimensionedScalar sin(const dimensionedScalar &ds)
dimensionSet transform(const dimensionSet &)
Field< vector > vectorField
Specialisation of Field<T> for vector.
static scalar R(const scalar a, const scalar x)
dimensionedScalar cos(const dimensionedScalar &ds)