← Back to team overview

yade-users team mailing list archive

[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.