Go to the documentation of this file.
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);
A templated (3 x 3) tensor of objects of <T> derived from MatrixSpace.
dimensionSet transform(const dimensionSet &ds)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
errorManip< error > abort(error &err)
virtual void transformProperties(const tensor &T)
A cloud is a registry collection of lagrangian particles.
#define FatalErrorInFunction
ParcelType::trackingData trackingData
bool move(TrackCloudType &cloud, trackingData &td, const scalar trackTime)
CollidingParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Tensor< scalar > tensor
Tensor of scalars, i.e. Tensor<scalar>.