Thread Previous • Date Previous • Date Next • Thread Next |
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...).> 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 setshearForce *= ratio only after having determined the plasticDissipation. Is this correct?
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
Thread Previous • Date Previous • Date Next • Thread Next |