yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #02574
Re: Sign convention contact laws
> sorry but I cannot get this point:
>
> ***
> normal = body2_pos - body1_pos,
> so we should have
> relative_vel = body1_vel - body2_vel
> in order to rel_vel>0 if loading and rel_vel<0 if unloading
> ***
>
> How can you derive that? First the relative velocity is a vector so
> you cannot say that has a sign (positive or negative). In case it
> holds a sense.
normal is the vector from the body1 to body2.
But rel_vel is the velocity of the _body1_ relative body2.
So, if normal.Dot(rel_vel)>0 => body1 moves towards the body2. In this
sense.
Next. Contact force acts from body1 towards body2 (as the normal),
so shearForce acts on body2, so it have same direction as shearVelocity,
because shearVelocity is the velocity of _body1_, so body2 have
-shearVel velocity,
and shearForce acts in opposite direction of body2's velocity, as should
be friction force.
So, we have
shearForce += ks*shearVelocity
Hope, that help...
S.
Follow ups
References