← Back to team overview

yade-dev team mailing list archive

Re: Cell deformation handling

 

Ah, last thing : generateCloud don't find any problem to fill
non-aligned boxes (in the cases I tested at least), but I still don't
know why... Maybe it's generating in axis aligned box then wrapping? I
didn't take time to verify. It can't affect older scripts anyway.

B.

On 19/01/11 19:28, Bruno Chareyre wrote:
> Hi,
>
> It's commited. Attributes doc should be ok but header doc and sphinx doc
> are TODOs.
> All scripts I could find seems to run unmodified.
> I replaced definition of trsf and refSize by setters in the scripts
> (couldn't find a better way since integrateAndUpdate can't really do the
> job now). Setters are defined in such a way that they reproduce the
> older functionality (trsf=0 only if Hsize is axisAligned). Hsize setter
> allows arbitrary shape.
> The beauty of this is that there is no change at all in collider and
> display, since they use shearTrsf, itself defined on the basis of Hsize,
> indepently of trsf!
> There are a few places where I replaced refSize by size, it should be
> safe at first sight but I'll double check.
>
>> The fact that flipCell can be encapsulated inside the collider is nice,
> for instance.
>
> Oh wait, this one is not done yet, ok?
>
> Cheers!
>
> Bruno
>
>
>
>  I would like to just ask for 2 things: >
>> 1. Make sure that the old interface (setting refSize etc) works, there
>> is already quite a few people having script that use it and they
>> should not break (the scripts I mean, but perhaps people would break
>> as well).
>>
>> 2. Update not only the documentation of the class, but also the DEM
>> formulation chapter on periodic cell
>> (https://www.yade-dem.org/doc/formulation.html#periodic-boundary-conditions)
>>
>> Cheers, v.
>>
>>> Hi Vaclav, thanks for reply.
>>> I actually finished the implementation in the meantime.
>>>
>>>> Cell.trsf defines the current (not initial) transformation of the cell
>>>> with regards to the reference configuration, which is always
>>>> axis-aligned box with size Cell.refSize. (Footnote: although I did not
>>>> check bzr log, I am quite sure it was me who introduced Cell.trsf.)
>>>> Cell.trsf is accumulated from Cell.velGrad.
>>> Yes, that's what I described : trsf is defining the initial _geometry_.
>>> (footnote : my bad, sorry. I only introduced incrementation on velGrad
>>> basis then.)
>>>> If you suggest to define the reference (initial) geometry by using
>>>> general parallelepiped (instead of axis-aligned box), I would oppose;
>>>> not that it does not make sense geometrically, but brings quite a bit
>>>> of complexity where the current facilities are enough.
>>> That is what I suggest indeed.
>>> Actually, this suggestion came after fixing an obvious mistake in Cell
>>> interface, which triggered a code cleaning spree.
>>> It would make things simpler and help clarify in the long run, else I
>>> would not bother. PBCs and related engines code is excessively complex
>>> and overconstrained currently. Removing the axis-aligned constraint
>>> makes things more general without adding any complexity.
>>>
>>> PBCs offer the opportunity of writing (1) frame invariant  and (2)
>>> shape-independant mechanics by just controlling velGrad and stresses in
>>> periodic engines, but this advantage is not really used currently.
>>> One reason is the lack of clear split between what is needed/modified
>>> for mechanics, for contact detection, and for graphical representation.
>>> Overall, mixing all of them results in contaminating the mechanical
>>> parts with frame-dependant and (initial)shape-dependant code, which is
>>> never a good thing.
>>>
>>> A few examples :
>>> - velGrad is describing a mechanical effect and is reflected in trsf,
>>> but at the same time trsf is used to describe the initial geometry. So,
>>> it is useless for the user, who has to maintain his own material
>>> transformation. Even worst, trsf can be changed for contact detection
>>> (flipCell), while this could be hidden away in collider internals.
>>> - shearTrsf and friends are not describing shear in the mechanical
>>> sense. It is only something that we use for colliding and display, it
>>> results in misleading semantic.
>>> - refSize is (partialy) describing the initial shape, so it should not
>>> influence mechanics at all. Unfortunately, it is used in many places in
>>> PeriEngines, it is used to redefine Hsize at each step (not needed), can
>>> be modified by users and even by OGLrenderer (?!). It sounds insecure.
>>>
>>> The suggested change is a small step in the good direction regarding
>>> this sort of problems (introducing velGrad and Hsize was on the same
>>> line btw).
>>>
>>>> 2. If you need reference (initial) cell that is already deformed, then
>>>> you can always "subtract" (in the sense of transformation matrices,
>>>> i.e. something like A^-1*B*(A^-1)^T) the initial trsf from the current
>>>> one to get the part that corresponds to material transformation.
>>> It would work, but this is the sort of complexity that arbitrary initial
>>> shapes would remove.
>>>> Do you have some concrete scenario in mind? Not saying that it can not
>>>> exist, but I've never seen the initial sample to be periodic obliquely.
>>> Check Jan's scripts (reason why I mentionned him in o.p.)? I do have
>>> scenarii too. Also important, it clarifies and help writing frame
>>> invariant mechanics.
>>>
>>> Local diffs pass reg. tests and gives stable stress-strain behaviour
>>> starting from non-rectangular box. refSize is not used anywhere, except
>>> in OGLRenderer. Functionalities used in existing scripts (refSize=..;
>>> trsf=...) are preserved, though it doesn't really help simplifying the
>>> code. The new thing is you can prescribe arbitrary initial geometry
>>> (Hsize=...) while keeping trsf null.
>>> Would you give it a chance?
>>>
>>> Bruno
>>>
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~yade-dev
>>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~yade-dev
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~yade-dev
>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~yade-dev
>> More help   : https://help.launchpad.net/ListHelp
>>
>


-- 
_______________
Bruno Chareyre
Associate Professor
ENSE³ - Grenoble INP
Lab. 3SR
BP 53 - 38041, Grenoble cedex 9 - France
Tél : +33 4 56 52 86 21
Fax : +33 4 76 82 70 43
________________




References