Thread Previous • Date Previous • Date Next • Thread Next |
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).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);
It solves the problem explained above, but using a different way. Dem3Dof->se31 in _not_ equal to b1->se31, it is a "ghost" position.Another relevant question is, since the position can be obtained from the state pointer, why is it wrapped in Dem3DofGeom?
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
Thread Previous • Date Previous • Date Next • Thread Next |