← Back to team overview

yade-dev team mailing list archive

Re: PeriTriaxController

 

Le 8 déc. 2009 à 15:18, yade a écrit :

> Bruno Chareyre a écrit :
>> Václav Šmilauer a écrit :
>>>> I'm not sure I understand completely.
>>>> First reaction :
>>>> Why not change "goal" with time, in comp=M*goal? It would give a strain rate.
>>>>    
>>> Goal is user-defined and shouldn't change. It describes, well, the goal
>>> state.
>>>  
>> This is a problem perhaps. In many cases, what you want is a continuous response to a continuously changing loading.
>> Typically : triaxial loading is constant strain rate + constant stresses, the final ("goal") state doesn't really matters, except for stopping the simulation at some point.
>> 
>>>> Second :
>>>> It could be simpler to prescribe strainrates/stresses.
>>>>    
>>> Could be right. Not sure if you woudn't want, in some special cases,
>>> prescribe strain rather than strain rate, though.
>>> 
>>>  
>> In some special cases, yes probably.
>> 
>>> Currently, as soon as you reach all the goal components (strains or
>>> stresses) and the packing is stable etc, doneHook is called. With
>>> strainRate, that wouldn't work as well. There must be some 4th condition
>>> regulate rate? Is it meaningful? I am a little at loss, since I have
>>> only few cases I can imagine, but I want to make it quite generic.
>>> 
>>>  
>> I think if you want it very generic you need to introduce, the rate of loading AND the final loading. Currently you have only the the final loading.
>>> 
>>> It is just the cell size that changes, but it really means that (for
>>> compression) particles on the right get closer to the particles on the
>>> left. I was thinking about this linear displacement, but then I wasn't
>>> sure if one should prescribe velocity (and perhaps get adversary inertia
>>> effects later) or just change position and ignore inertia...
>>> 
>>> 
>>>  
>> I think you just linearly transform all coordinates with a matrix. Conceptualy, it is like a displacement if the matrix represents the transformation, or a a velocity if the matrix represents the rate of transformation... Same duality as before.
>> 
>> This is a question for Gaël and Vincent (could you guys keep this discussion in yade-dev?).
> why not...
> 
> assuming that the transformation matrix H is such that r = H s, where r is the real coordinates of the grains, then you can apply a strain rate on your sample by imposing \dot{H}. If \dot{r} is the vector of the velocities of the grains, \dot{r} = H \ dot{s} + \dot{H} s, then imposing some component of \dot{H} is equivalent to  imposing a strain rate

Gael,
Vaclav and Bruno are perhaps not accustomed to these notations that come from fluid modeling at the atom's scale (I think).
Maybe the book of Allen and Tildesley addresses this topic (?)
Here are some details that could help the understanding (I hope).

H is in fact defined by 3 vectors. Say X=[X1 X2 X3], Y=[Y1 Y2 Y3] and Z=[Z1 Z2 Z3]:
   	| X1 Y1 Z1 |
H =	| X2 Y2 Z2 |
   	| X3 Y3 Z3 |
(Gael correct me if it's wrong)

As Gael said, r is the coordinate of each grain in the "real world".
s is the coordinate of each grain in a world where each component are in the range [-0.5 0.5] and X^Y=Z.
With this in mind, you can define a special body (TriPCell for instance) that hold H and a mass (typically the mass the entire system of particles).
This special body interact with all bodies so that its "acceleration" (second derivative of H) can be computed. its position can thus be integrated woth 2nde  Newton's law to compute dH/dt and H.

I hope it help...
Vincent  

> 
>> 
>> Also : Gaël just suggested that instead of the (displacement = stress_error/stiffness) approach used with boxes, the periodic stress could be imposed directly in the periodic cell, provided the cell has an inertia. In that case the strain of the cell would be just a result of the imposed stress and this artificial inertia. He said this method works well.
> 
> 
> I confirm
> 
> 
> Gael
> 
> 
>> 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




Follow ups

References