← Back to team overview

yade-users team mailing list archive

Re: Sign convention contact laws

 

Sergei perhaps you forgot in your code to add the shear force increment to
the total value..
Because at line 77 we have:

shearForce = (phys.ks*dt+phys.cs)*shearVelocity;

but should not be:

shearForce += (phys.ks*dt+phys.cs)*shearVelocity;

Moreover once we rotate the force we have:

shearForce -= shearForce.Cross(axis);

Is everything consistent?

Cheers, Chiara




On 18 March 2010 12:12, chiara modenese <c.modenese@xxxxxxxxx> wrote:

> Hi Sergei,
>
> sorry but I cannot get this point:
>
> ***
>
> normal = body2_pos - body1_pos,
> so we should have
> relative_vel = body1_vel - body2_vel
> in order to rel_vel>0 if loading and rel_vel<0 if unloading
> ***
>
> How can you derive that? First the relative velocity is a vector so you
> cannot say that has a sign (positive or negative). In case it holds a sense.
>
> My point/question is: you know the sense of the normal vector but you do
> not know the sense of the relative velocity (being the latter a relative
> value, it depends on the ids of the particles that in turn are absolutely a
> case). So if we cannot predict the sense of the relative velocity (please
> tell me how to do that if I am wrong) and we have to oppose the motion,
> which one of the following lines would be the correct one?
>
> shearForce -= ks*shearVelocity
> OR
> shearForce += ks*shearVelocity
>
> My question is generally referred to the shear force. If you could help me
> to understand this point I will also understand how to apply the viscous
> force in the shear direction.
>
> BTW, do you know any simple case to test the correctness of the shear part
> as computed in yade? For the normal direction is easy to find the analytical
> solution to compare with, but for the shear one I would not know.
>
> Thanks a lot for any explanation,
> Cheers, Chiara
>
>
>
>
>
>
> On 17 March 2010 19:01, Sergei D. <sj2001@xxxxxxxxx> wrote:
>
>> 16.03.2010 20:41, chiara modenese:
>>
>> > Second I am looking at the ViscoelasticPM contact law and I see that the
>> > total shear force is given by:
>> > shearForce -= (phys.ks*dt+phys.cs)*shearVelocity;
>> > Why do we account the viscous force with the same sign of the shear one?
>> > Should not always oppose the motion?
>> >
>>
>> shearForce is opposite to the movement, so it is opposite to the
>> displacement (elastic term) and the velocity of displacement (viscous
>> term). So, elastic term and viscous term have the same sign.
>>
>> For normalForce viscous term is added to the elastic force if loading,
>> and substracted if unloading, so we have different paths of
>> loading/unloading => energy dissipation.
>>
>> The signs in ViscoelasticPM is correct (consistent) but not as it should
>> be, indeed. It is because we have contact normal from body1 to body2:
>>
>> normal = body2_pos - body1_pos,
>>
>> so we should have
>>
>> relative_vel = body1_vel - body2_vel
>>
>> in order to rel_vel>0 if loading and rel_vel<0 if unloading.
>>
>> but in ViscoelasticPM:
>>
>> rel_vel = body2_vel - body1_vel
>>
>> so, rel_vel is inversed...
>>
>> I corrected it in last rev.
>>
>> --
>> Best regards,
>> Sergei D.
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~yade-users<https://launchpad.net/%7Eyade-users>
>> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~yade-users<https://launchpad.net/%7Eyade-users>
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>

Follow ups

References