← Back to team overview

yade-users team mailing list archive

Re: [Question #429604]: Cylinder and periodic boundary conditions

 

Question #429604 on Yade changed:
https://answers.launchpad.net/yade/+question/429604

    Status: Open => Answered

Bruno Chareyre proposed the following answer:
Hi,
In short you found that Law2_ScGeom_ViscElPhys_Basic does not implement periodicity and that it uses inexact expressions of the relative displacement.
I can confirm that. :)

The problem with the branch vector is because when two computational particles interact they have centers which can be arbitrarily far away - say, in different periodic windows of the periodic space. A consistent interaction geometry thus requires in principle to shift one of them to the same period where the other one is (so that (center - contactPoint) is a consistent branch vector). It is done for instance in [1]:
	applyForceAtContactPoint(-phys->normalForce-shearForce, geom->contactPoint, id1, de1->se3.position, id2, de2->se3.position + (scene->isPeriodic ? scene->cell->intrShiftPos(contact->cellDist): Vector3r::Zero()));

However if the branch vector can be defined independently (like with
just radius and normal, the case of CundallStrack) there is no need for
a shift. The two approaches are mathematically equivalent.

You can access interaction->geom->getIncidentVel(...) where CundallStrack access interaction->geom->shearInc.
However shearInc is a cached value while getIncidentVel triggers complex calculations and needs input parameters (with possible mistakes); so I would suggest to use shearInc/scene->dt instead of getIncidentVel(...).

If improvements are in view, it may be much simpler and less energy-dissipative to introduce the viscous term directly into the CundallStrack family of functors (and leave ViscElPhys_Basic behind as it is). Since you only found "some" of the problems with this law functor.
Cheers
Bruno

[1]
https://github.com/yade/trunk/blob/master/pkg/dem/CohesiveFrictionalContactLaw.cpp#L163

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.