# yade-users team mailing list archive

## Re: DEM equations, written down.

```Up on this one. I don't see how formulas for incremental shear
computation you present in the pdf [3] correspond to the code. IIRC
those formulas were supposed to describe CohesiveFrictionalLaw, right?
In particular:

(14), (15) compute ΔV_s and ΔX_s. Fair enough.

(16) is supposed to update shear force F_s (vector):

F_s=F_s+K_s*ΔX_s

but this is not correct, since you add ΔX_s (which is in the _current_
contact plane) to F_s (which is shear force from the previous step, i.e.
in the _previous_ contact plane)!! Not a single word about transforming
F_s to the current plane first, which must be done and really happens in

Anyone has a good reference to a serious (preferrably reviewed &
published) paper [1] describing the incremental algorithm accurately?
(I'm writing a few lines about different algorithms to compute shear

Thanks.

Vaclav

---------

[1] I know about F. Alonso-Marroquin &co: Micro-mechanical investigation
never show how they evaluate the integral (2) expressing total shear
displacement.

[2] pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.cpp:102:

axis    = currentContactPhysics->prevNormal.Cross ( currentContactGeometry->normal );
shearForce         -= shearForce.Cross ( axis );
angle    = dt*0.5*currentContactGeometry->normal.Dot ( Body::byId ( id1 )->state->angVel+Body::byId ( id2 )->state->angVel );
axis    = angle*currentContactGeometry->normal;
shearForce         -= shearForce.Cross ( axis );
// the comes the part described in (14) and (15)