← Back to team overview

yade-users team mailing list archive

Re: Are our systems conservatives?

 



    > plasticDissipation +=
    (shearDisp+(1/currentContactPhysics->ks)*(shearForce-prevForce)).dot(shearForce)


If the increment is fully plastic, prevForce is the max_previous but shearForce is not yet equal to the max_current value since you set

shearForce *= ratio

only after having determined the plasticDissipation. Is this correct?

You are right, there is some nonsense, I've been mixing two different formulations (also : the dot product is using the "trial" shearForce, and shear disp. is counted twice...).

Would it be better that way (same as Vaclav's formula for stress/strain in the same thread)? :


if( shearForce.squaredNorm() > maxFs ){
           Real ratio = Mathr::Sqrt(maxFs) / shearForce.norm();
Vector3r trialForce=shearForce;//store prev force for definition of plastic slip
           shearForce *= ratio;
           plasticDissipation +=
((1/currentContactPhysics->ks)*(trialForce-shearForce))//plastic disp. .dot(shearForce);//active force }

Bruno



Follow ups

References