It was claimed that the reason ScGeom can't use applyForceAtContact is that the position is not wrapped. But the position attribute can be assessed from the "state" pointer:
applyForceAtContactPoint(-currentContactPhysics->normalForce-shearForce, currentContactGeometry->contactPoint, id1, de1->se3.position, id2, de2->se3.position, ncb);
If bodies from different periods are in contact, you need to translate
at least one of them to its ghost position in order to define the local
geometry, or (b->pos - contactPoint) can be anything, even larger than
the period itself. Actually, in periodic ScGeom we have no position and
no contact point (at least we don't use them).
Another relevant question is, since the position can be obtained from the state
pointer, why is it wrapped in Dem3DofGeom?
It solves the problem explained above, but using a different way.
Dem3Dof->se31 in _not_ equal to b1->se31, it is a "ghost" position.
Related to HomotheticResize. May I know the difference between velocity and displacement update for HomotheticResize? Cundall and Thornton use displacement update.
The way positions were updated was not correct, it was just a quick
hack. After looking at the different facets of the problem for some
time, I concluded that updating velocity was more elegant and the
implementation was way simpler (it fits in just one line in Newton).
If you update positions, it raises questions on what is the true
velocity (and you definitely need correct velocities for viscous laws or
incremental elastic-plastic laws). OTOH if you update velocities, it is
reflected in positions automatically. It should be equivalent with Cundall.
Bruno
_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp