yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #10854
[Question #261779]: Contact law: issue if fragile=False and unpMax=0
New question #261779 on Yade:
https://answers.launchpad.net/yade/+question/261779
Hi,
I am working with the contact law Law2_ScGeom6D_CohFrictPhys_CohesionMoment.
I would like to use non brittle contact with respect to the shear force thus attribute fragile=False.
However I understand that according to:
if (phys->unpMax && phys->unp<phys->unpMax)
return false;
contact will be lost only if unpMax!=0. But if we want to have a non brittle contact in the shear direction and no normal plasticity then we would assign unpMax=0 and the contact will live foreover instead of breaking when (-Fn)> phys->normalAdhesion.
Consequently there are different possibilites:
1/ change nothing and just assign unpMax=0.000000000000000000000000000000001
2/ change:
if (phys->unpMax && phys->unp<phys->unpMax)
return false;
into
if (phys->unp<phys->unpMax)
return false;
and if one will want to normal plasticity for ever he will have to put unpMax=9999999999999999999999999999
3/ but better than 2 I would prefer to change:
if (phys->fragile && (-Fn)> phys->normalAdhesion) {
// BREAK due to tension
return false;
} else {
if ((-Fn)> phys->normalAdhesion) {//normal plasticity
Fn=-phys->normalAdhesion;
phys->unp = un+phys->normalAdhesion/phys->kn;
if (phys->unpMax && phys->unp<phys->unpMax)
return false;
}
into
if ((phys->fragile || !phys->unpMax) && (-Fn)> phys->normalAdhesion) {
// BREAK due to tension
return false;
} else {
if ((-Fn)> phys->normalAdhesion) {//normal plasticity
Fn=-phys->normalAdhesion;
phys->unp = un+phys->normalAdhesion/phys->kn;
if (phys->unp<phys->unpMax)
return false;
}
Any preferences, or advice?
Cheers,
Luc
--
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.