Hi all,
I have a question about the variables "hv" and "pv" located in the constructor of the PressureDependMultiYield Class. The two variables are assigned to two other variables Hvx and Pvx. What do they mean?
Checking the command manual for the "nDMaterial PressureDependMultiYield" they are not defined. There is only one comment in the code that refers to volumetric plasticity. Nevertheless, I cannot figure out on my own what they both do (in physical terms). Can someone guide me to reading material or provide an explanation?
Best regards,
Hisham El Safti
PressureDependMultiYield Class
Moderators: silvia, selimgunay, Moderators
PressureDependMultiYield Class
Hisham El Safti
Re: PressureDependMultiYield Class
I am also confused with the two lines 2092 and 2094 in PressureDependMultiYield.C
It seems there is a bug here ... two if(X < 1.) blocks, a return happens in execution instead of issuing an error.
Can you please advice!
02091 if ( fabs(X-1.) < LOW_LIMIT ) X = 1.;
02092 if (X < 1.) return;
02093
02094 if (X < 1.){
02095 //t2 = trialStress.deviator() - outcenter*conHeig;
02096 t2 = trialStress.deviator();
02097 t2.addVector(1.0, outcenter, -conHeig);
02098
02099 double xx1 = (t2 && t2) - 2./3.* outsize * outsize * conHeig * conHeig;
02100 double xx2 = (t1 && t1) - 2./3.* size * size * conHeig * conHeig;
02101 opserr << "FATAL:PressureDependMultiYield02::updateActiveSurface(): error in Direction of surface motion." << endln;
02102 opserr << "X-1= " << X-1 <<" A= "<<A<<" B= "<<B<<" C= "<<C <<" M= "<<activeSurfaceNum<<" low_limit="<<LOW_LIMIT<< endln;
02103 opserr << "diff1= "<<xx1 <<" diff2= "<<xx2 <<" p= "<<conHeig<<" size= "<<size<<" outs= "<<outsize<<endln;
02104 exit(-1);
It seems there is a bug here ... two if(X < 1.) blocks, a return happens in execution instead of issuing an error.
Can you please advice!
02091 if ( fabs(X-1.) < LOW_LIMIT ) X = 1.;
02092 if (X < 1.) return;
02093
02094 if (X < 1.){
02095 //t2 = trialStress.deviator() - outcenter*conHeig;
02096 t2 = trialStress.deviator();
02097 t2.addVector(1.0, outcenter, -conHeig);
02098
02099 double xx1 = (t2 && t2) - 2./3.* outsize * outsize * conHeig * conHeig;
02100 double xx2 = (t1 && t1) - 2./3.* size * size * conHeig * conHeig;
02101 opserr << "FATAL:PressureDependMultiYield02::updateActiveSurface(): error in Direction of surface motion." << endln;
02102 opserr << "X-1= " << X-1 <<" A= "<<A<<" B= "<<B<<" C= "<<C <<" M= "<<activeSurfaceNum<<" low_limit="<<LOW_LIMIT<< endln;
02103 opserr << "diff1= "<<xx1 <<" diff2= "<<xx2 <<" p= "<<conHeig<<" size= "<<size<<" outs= "<<outsize<<endln;
02104 exit(-1);
Hisham El Safti
Re: PressureDependMultiYield Class
Hi Hisham,
Did you find the solution of your problem. If yes, please post the solution. I also have other question regarding this material. I have just posted one on the forum regarding PPZLimit computation.
Please post the solution if you have.
Thanks,
Deepak
Did you find the solution of your problem. If yes, please post the solution. I also have other question regarding this material. I have just posted one on the forum regarding PPZLimit computation.
Please post the solution if you have.
Thanks,
Deepak
Thank You
Re: PressureDependMultiYield Class
Hi Deepak
No unfortunately .... Good luck!
Regards,
Hisham
No unfortunately .... Good luck!
Regards,
Hisham
Hisham El Safti