Force on a clump member

Asked by Nishant

Hi,

I am interested in understanding when a force is applied ONLY to a member of the clump, how it is transferred to the clump.

Bottom line is clump is/move always together, right?

Here is the code:

########################
O.materials.append(FrictMat(density=2e3,young=30e9,poisson=.3,frictionAngle=.5236)) # Material Used

##################### Defining Clump
O.bodies.appendClumped([sphere([5,5,5],1),sphere([7,5,5],1) ])
O.bodies.updateClumpProperties(discretization=100)
###############################

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb()]),
 InteractionLoop(
  [Ig2_Sphere_Sphere_ScGeom()],
  [Ip2_FrictMat_FrictMat_FrictPhys()],
  [Law2_ScGeom_FrictPhys_CundallStrack(sphericalBodies=False)]
 ),
 PyRunner(command = 'applied_force()', iterPeriod = 1, label = "checker"),
 NewtonIntegrator(gravity=(0,0,0),damping = 0)
]

###############################
def applied_force():
 O.forces.setPermF(0, Vector3(0,1.0,0))

O.dt = 5e-1*PWaveTimeStep()
O.stopAtIter= int(1e8)
O.run()
########################

The code works fine, shows the expected rotation and clump member stay together.

O.forces.f(1) is Vector3(0,0,0) and O.bodies[1].state.vel is non-zero and changing.

So how/step the applied force to a member via setPermF is transferred to the clumped body to make it move as a single entity?

Can you please direct me to the right scripts?

Thanks.
Nishant

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Nishant
Solved:
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hi Nishant,

have a look at [1]

### pseudo code
F,T = (0,0,0), (0,0,0)
for each clump member:
   f = force of member
   t = torque (moment) of member
   F += f # simply added force
   T += t + (memberPos-clumpPos).cross(f) # added torque plus moment effect of the force with respect to the clump "center"
###

cheers
Jan

[1] https://github.com/yade/trunk/blob/master/core/Clump.cpp#L55

Revision history for this message
Nishant (nishantk) said :
#2

That was exactly what I was looking for.

Thanks Jan for an understandable explanation!