32 template<
class ParcelType>
35 const CollidingParcel<ParcelType>&
p 40 angularMomentum_(
p.angularMomentum_),
42 collisionRecords_(
p.collisionRecords_)
46 template<
class ParcelType>
49 const CollidingParcel<ParcelType>&
p,
55 angularMomentum_(
p.angularMomentum_),
57 collisionRecords_(
p.collisionRecords_)
63 template<
class ParcelType>
64 template<
class TrackCloudType>
67 TrackCloudType&
cloud,
69 const scalar trackTime
72 typename TrackCloudType::parcelType&
p =
73 static_cast<typename TrackCloudType::parcelType&
>(*this);
75 td.keepParticle =
true;
76 td.switchProcessor =
false;
80 case trackingData::tpVelocityHalfStep:
85 p.U() += 0.5*trackTime*
p.f()/
p.mass();
87 p.angularMomentum() += 0.5*trackTime*
p.torque();
89 td.keepParticle =
true;
90 td.switchProcessor =
false;
95 case trackingData::tpLinearTrack:
97 ParcelType::move(
cloud,
td, trackTime);
102 case trackingData::tpRotationalTrack:
112 <<
td.part() <<
" is an invalid part of the tracking method." 117 return td.keepParticle;
121 template<
class ParcelType>
124 ParcelType::transformProperties(
T);
128 angularMomentum_ =
transform(
T, angularMomentum_);
134 template<
class ParcelType>
140 ParcelType::transformProperties(separation);
ParcelType::trackingData trackingData
Use base tracking data.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
A cloud is a registry collection of lagrangian particles.
errorManip< error > abort(error &err)
bool move(TrackCloudType &cloud, trackingData &td, const scalar trackTime)
Move the parcel.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
CollidingParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from mesh, coordinates and topology.
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.