← Back to team overview

yade-users team mailing list archive

Re: Periodic triaxial

 


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





Follow ups

References