34 Foam::tensor Foam::molecule::rotationTensorX(scalar phi)
const
45 Foam::tensor Foam::molecule::rotationTensorY(scalar phi)
const
56 Foam::tensor Foam::molecule::rotationTensorZ(scalar phi)
const
82 if (td.
part() == trackingData::tpVelocityHalfStep0)
87 v_ += 0.5*trackTime*a_;
89 pi_ += 0.5*trackTime*tau_;
91 else if (td.
part() == trackingData::tpLinearTrack)
97 const scalar
f = 1 - stepFraction();
98 trackToAndHitFace(
f*trackTime*v_,
f,
cloud, td);
101 else if (td.
part() == trackingData::tpRotationalTrack)
140 setSitePositions(td.
mesh, constProps);
142 else if (td.
part() == trackingData::tpVelocityHalfStep1)
147 scalar m = constProps.
mass();
162 v_ += 0.5*trackTime*a_;
164 pi_ += 0.5*trackTime*tau_;
183 << td.
part() <<
" is an invalid part of the integration method."
201 pi_ = Q_.T() &
transform.transform(Q_ & pi_);
203 tau_ = Q_.T() &
transform.transform(Q_ & tau_);
211 if (special_ == SPECIAL_TETHERED)
213 specialPosition_ =
transform.transformPosition(specialPosition_);
232 sitePositions_.setSize(size);
234 siteForces_.setSize(size);
241 const scalar vn = v_ & nw;
#define forAll(list, i)
Loop across all elements in list.
scalar deltaTValue() const
Return time step value.
Base class for clouds. Provides a basic evolution algorithm, models, and a database for caching deriv...
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.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), lagrangian::cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
point position(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label facei, const label faceTrii, const scalar stepFraction)
Return the position given the coordinates and tet topology.
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.
void transform(GeometricField< Type, GeoMesh > &rtf, const GeometricField< tensor, GeoMesh > &trf, const GeometricField< Type, GeoMesh > &tf)
errorManip< error > abort(error &err)
dimensionedScalar sin(const dimensionedScalar &ds)
Field< vector > vectorField
Specialisation of Field<T> for vector.
static scalar R(const scalar a, const scalar x)
dimensionedScalar cos(const dimensionedScalar &ds)