>       Real 
> maxFsSq=phys->normalForce.squaredNorm()*pow(phys->tangensOfFrictionAngle,2);
>       Vector3r trialFs=phys->ks*geom->displacementT();
> -     if(trialFs.squaredNorm()>maxFsSq){ 
> geom->slipToDisplacementTMax(sqrt(maxFsSq)/phys->ks); 
> trialFs*=sqrt(maxFsSq/(trialFs.squaredNorm()));}
> +     Real multiplier=maxFsSq/trialFs.squaredNorm();
> +//   if(trialFs.squaredNorm()>maxFsSq){
> +//           geom->slipToDisplacementTMax(sqrt(maxFsSq)/phys->ks); 
> trialFs*=sqrt(maxFsSq/(trialFs.squaredNorm()));}
> +     if(multiplier<1){
> +             multiplier = sqrt(multiplier);
> +             geom->scaleToDisplacementTMax(multiplier); trialFs*=multiplier;}

Are you nuts??? What if trialFs.squaredNorm()==0 ?



_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to