(discussion moved to yade-dev)
Dem3DofGeom_SphereSphere.cpp:76 reads :
Vector3r diff=.5*(sqrt(currDistSq)/displacementTMax-1)*(p2-p1);
setTgPlanePts(p1+diff,p2-diff);
What about this instead :
Vector3r diff=.5*(displacementTMax/sqrt(currDistSq)-1)*(p2-p1);
setTgPlanePts(p1-diff,p2+diff);
It gives stable results and no effect of friction. :)
Still curious about the previous "weighted average".
Bruno
Bruno Chareyre a écrit :
The reason is still not clear but I think I located the problem.
slipToDisplacementTmax is not doing what it should.
Outputing data from inside the if(plasticity) condition of
Law2_Dem3DofGeom_FrictPhys_Basic, I find this :
trialFs.norm(): 113037 vs. maxFs: 14.9277 Fn: 170.629 ks: 338110
tanFric: 0.0874861
displacementT() before slip: 0.33432
displacementT() after slip: 0.126106
corrected trialFs: -4.40076 9.24839 10.8599
The force is divided by ~10,000, as it should, but the displacement
returned by displacementT is only divided by 3.
Actually, trialFs is always orders of magnitude higher than maxFs,
even after many iterations in a stable packing. It explains why
changing friction gives higher forces immediatly.
I've been looking into relocateContactPoints, could you explain
this. What is this equation for? It looks like a weird weighted
average :
/Vector3r midPt=(effR1/(effR1+effR2))*(p1+p2); // proportionally to
radii, so that angle would be the same/
Cheers.
Bruno
_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp