← Back to team overview

yade-users team mailing list archive

Re: useShear in ScGeom

 

Hi,

On the way back to Prague (yes, Vaclav lives in the countryside!), I
simplified a little our last idea :

bool incremental;

void precompute (...,state1,state2,...)
{
  if (incremental) {us = incrementalUs; axialRotation=...}
  else us = ... (totalUs);
}

The rotate function can be called with no penalty from the Law2s, as soon as
the axial rotation (a vector3r) is precomputed with state1 and state2, and
cached in the geometry class. For the other rotation perpendicular to
contact plane, it only needs previous and current normals, no need to
access  states. The rotate function would then use normals and precomputed
axial rotation. It doesn't have to be virtual I think.

This solution doesn't handle the relative velocity, which would not be fully
optimized, probably not a big deal. Another solution would be to precompute
relative vel. instead of us increment if incremental. It would be more
general but it would need to update code in the existing Law2's.

Bruno

On 25 June 2010 13:41, chiara modenese <c.modenese@xxxxxxxxx> wrote:

> 2010/6/25 Václav Šmilauer <eudoxos@xxxxxxxx>
>
> Hi Chia, nice synchronicity, we 've been just discussing this about 5
>> minutes ago with Bruno and Jan. Greetings to Oxford :-)
>>
> Hello guys! Hope you are having a great time all together :-) Could not we
> organize a course/meeting among Yade users/dev? I have already mentioned to
> Vaclav that this would be a nice idea. I hope it will happen at some point
> in the future.
>
>>
>>
>> For the total shear displacement, we don't currently have that value
>> stored anywhere. What you could do is to have elastic+plastic and
>> elastic displacements and track both of them using ScGeom::rotate; the
>> latter would be changed during plasticity activation, while the former
>> one would not.
>>
> Thanks for suggestions, I will try it. Actually the elastic part, once
> calling ScGeom::updateShear, is already stored in ScGeom shear variable.
> Perhaps the easiest thing would be to create a new variable into the contact
> law which stores what is returned by updateShear, and, as you suggest,
> simply avoiding to pass it through the failure criterion.
>
> cheers, Chiara
>
>>
>> _______________________________________________
>> 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
>>
>
>
> _______________________________________________
> 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