22 typename contactForceModel,
23 typename geometryMotionModel,
24 template <
class,
class,
class>
class contactListType >
31 auto modelDict = this->fileDict().subDict(
"model");
34 forceModel_ = makeUnique<ContactForceModel>(
40 uint32 nPrtcl = sphParticles_.size();
42 ppContactList_ = makeUnique<ContactListType>(nPrtcl+1);
44 pwContactList_ = makeUnique<ContactListType>(nPrtcl/4+1);
52 typename contactForceModel,
53 typename geometryMotionModel,
54 template <
class,
class,
class>
class contactListType >
61 auto lastItem = ppContactList_().loopCount();
69 sphParticles_.diameter().deviceVectorAll(),
70 sphParticles_.propertyId().deviceVectorAll(),
71 sphParticles_.pointPosition().deviceVectorAll(),
72 sphParticles_.velocity().deviceVectorAll(),
73 sphParticles_.rVelocity().deviceVectorAll(),
74 sphParticles_.contactForce().deviceVectorAll(),
75 sphParticles_.contactTorque().deviceVectorAll()
91 typename contactForceModel,
92 typename geometryMotionModel,
93 template <
class,
class,
class>
class contactListType >
98 int32 lastItem = pwContactList_().loopCount();
99 real t = this->currentTime();
106 geometryMotion_.getTriangleAccessor(),
107 geometryMotion_.getModel(t) ,
108 sphParticles_.diameter().deviceVectorAll() ,
109 sphParticles_.propertyId().deviceVectorAll(),
110 sphParticles_.pointPosition().deviceVectorAll(),
111 sphParticles_.velocity().deviceVectorAll(),
112 sphParticles_.rVelocity().deviceVectorAll() ,
113 sphParticles_.contactForce().deviceVectorAll(),
114 sphParticles_.contactTorque().deviceVectorAll() ,
115 geometryMotion_.triMotionIndex().deviceVectorAll(),
116 geometryMotion_.propertyId().deviceVectorAll(),
117 geometryMotion_.contactForceWall().deviceVectorAll()
120 Kokkos::parallel_for(