(moving to yade-dev) The current getStress gives exactly the same stress as PeriTriaxController (verified).
hSize*cellDist gives a translation that must be applied on b2 to move it in the same period as b1. In PeriTriaxController we have: Vector3r branch=Body::byId(I->getId2(),scene)->state->pos + scene->cell->hSize*I->cellDist.cast<Real>() -Body::byId(I->getId1(),scene)->state->pos; In getStress, the branch is defined with the opposite sign, so we have -hSize*cellDist instead of +hSize*cellDist. Everything looks correct if I don't miss something. For revertSign, I support the following interpretation: - _positive tensile stress has always been the rule in Yade_. - the sign of normal force is not to be discussed. The question is on which body the force vector (fn*normal + fs) is applied (note that there is the shear force here, whose sign is not affected by the compression/traction issue). In ScGeom laws, the force vector is applied on b2, in Dem3Dof laws it is applied on b1. - since different laws define the force differently, the reverseSign flag had been introduced in PeritriaxController to make it work whatever the law. It is currently replaced by "useDem3Dof" flag, which plays exactly the same role but points more explicitely the real purpose of the flag. - when PeriTriaxController will use getStress instead of its own function, it will read like: stress = useDem3Dof ? -getStress() : getStress(); So, clearly, there no use of a "sign" parameter in getStress() itself. Again: the revert flag never allowed anybody to get negative tensile stress. Isotropic compression, for instance, is always defined by negative stress values in "goal". If someone tries to revert this convention by playing with revertSign (or now useDem3Dof), it fails. And if one don't set useDem3Dof correctly with respect to the law used, it breaks: PeriTriax explodes or shrink to 0-size. Bruno On 24/06/12 20:11, Jan Stránský wrote: > Question #199704 on Yade changed: > https://answers.launchpad.net/yade/+question/199704 > > Jan Stránský proposed the following answer: > I am doing some tests now, and the first result is that with minus > > if (isPeriodic) branch -= scene->cell->hSize*I->cellDist.cast<Real>(); > > the results are not ok, while with > > > if (isPeriodic) branch += scene->cell->hSize*I->cellDist.cast<Real>(); > > the results are ok.. In the tests, I am using convention that positive > normal stress is tensile.. I will look on I->cellDist (I have never used > it) and let you know if I discover something :-) > > > My idea when thinking of not using reverseSign flag was that if you use > positive forces for tension, you would obtain positive stress for > tension and vice versa, but maybe this assumption is not correct.. > > Jan > > On 24.6.2012 13:25, Chiara Modenese wrote: >> Question #199704 on Yade changed: >> https://answers.launchpad.net/yade/+question/199704 >> >> Chiara Modenese proposed the following answer: >> >> On 24 Jun 2012, at 11:15, Chareyre wrote: >> >>> Question #199704 on Yade changed: >>> https://answers.launchpad.net/yade/+question/199704 >>> >>> Chareyre proposed the following answer: >>> Sure there is not another difference elsewhere giving the same result in >>> the end (e.g. sign of force)? >> Yes, in fact there is no reversed sign inside the function getStress but >> instead there is in PeriIso*.cpp. The result should be the same in the end >> (Jan, have you done any test in these regards?). I gather it was decided not >> to keep reversing the sign of contact forces depending on the convention but >> I am not sure it is the best solution (I think it was a good reminder to not >> overlook that feature). >> >> Chiara >> >> >>> -- >>> You received this question notification because you are a member of >>> yade-users, which is an answer contact for Yade. >>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~yade-users >>> Post to : [email protected] >>> Unsubscribe : https://launchpad.net/~yade-users >>> More help : https://help.launchpad.net/ListHelp -- _______________ Bruno Chareyre Associate Professor ENSE³ - Grenoble INP Lab. 3SR BP 53 38041 Grenoble cedex 9 Tél : +33 4 56 52 86 21 Fax : +33 4 76 82 70 43 ________________
_______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp

