Bug in PressureDependMultiYield02 Material

A forum dedicated to users with questions regarding soil materials and elements.

forum currently locked

Moderator: Moderators

Locked
deepakr
Posts: 6
Joined: Mon Jun 30, 2008 4:34 am
Location: Oregon State University

Bug in PressureDependMultiYield02 Material

Post by deepakr » Fri Jul 06, 2012 6:18 pm

Hi,
Recently I gone through some parametric studies with PressureDependMultiYield02 material. I was interested to see the effects of liquefaction parameters liquefyParam1 and liquefyParam2 and I looked at its source code.
It appears unusual to me in getPPZLimits class, particularly at " if (volume >= liquefyParam1)...." location (the code is attached below).
Whether the logic is true or false PPZLimit is always 0.0. I was wondering is this a bug or is it correct.
Please help to understand this.

Thanks,
Deepak

double PressureDependMultiYield02::getPPZLimits(int which, const T2Vector & contactStress)
{
double liquefyParam1 = liquefyParam1x[matN];
double liquefyParam2 = liquefyParam2x[matN];
double dilateParam3 = dilateParam3x[matN];

double PPZLimit, temp;
double volume = -contactStress.volume();

if (volume >= liquefyParam1) PPZLimit = 0.;
else {
temp = volume*pi/liquefyParam1/2.;
// liquefyParam3 = 3.0 default
PPZLimit = liquefyParam2 * pow(cos(temp), 3.);
//\\//
PPZLimit = 0.0;
}

if (which==1)
return PPZLimit;
else if (which==2)
return dilateParam3 * PPZLimit;
else {
opserr << "FATAL:PressureDependMultiYield02::getPPZLimits: unknown argument value" << endln;
exit(-1);
return 0.0;
}
}
Thank You

Locked