> 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