> I would rather multiply it in the function itself. Otherwise (as far 
> as I see) the function would take shearForce as argument, modify it 
> in-place (rotation etc) but return displacement difference.
>
Split the code like this? :

void updateOrientation(shearForce& F, const RigidBodyParameters* rbp1, 
const RigidBodyParameters* rbp2, Real dt)

or

void updateOrientation(NormalShearInteraction* i, const 
RigidBodyParameters* rbp1, const RigidBodyParameters* rbp2, Real 
dt);//Still a bit strange to pass IPhysics as parameter to a IGeometry 
function... not worst than passing the shearForce though

then

Vector3 shearIncrement(const RigidBodyParameters* rbp1, const 
RigidBodyParameters* rbp2, Real, dt, bool avoidRatcheting);

constitutiveLaw {

FOREACH (i) {
    i->IG->updateOrientation(i->IP, rbp1, rbp2, dt);//same for all 
constitutive laws, then :

    //For an elastic law :
    i->IP->shearForce += ks*ShearDisplacement(rbp1, rbp2, dt, ratchetting);

    //For a viscous law :
    i->IP->shearForce = visosity * shearDisp/dt;

    //etc.
}
}


Bruno

-- 
 
_______________
Chareyre Bruno
Maitre de conference

Grenoble INP
Laboratoire 3SR - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 43
________________


_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp
_______________________________________________
yade-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/yade-dev

Reply via email to