← Back to team overview

yade-dev team mailing list archive

Re: PeriTriaxController

 

Bruno Chareyre a écrit :
When I wrote : "If the displacement (resp. velocity) at the boundary is "u", then the displacement (vel) at the center should be "u/2", they ran to my office and told me no-no-no. ;-)

Let's start again.

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.


Assuming that the deformation is triaxial (no distorsion) - and assuming I understand correctly - we have :

      | X 0 0 |
H =    | 0 Y 0 |
      | 0 0 Z |

where _X,Y,Z are the sizes of the periodic cell_, and are control parameters for the problem.

Thus, imposing an increment of strain along axis Y means imposing a dY (resp. strain rate vs dY/dt).

So :
- if a particle as a in-cell coordinate s=(0;1;0) (top of the box), it will have a displacement dY in the real coordinate system. - if a particle as a in-cell coordinate s=(0;0.5;0) (middle of the box), it will have a displacement dY/2.
- etc.
(This is if the in-cell coordinates are in [0;1], easier for me. If they are in [-0.5;0.5], you translate this of course.)

Consequence : I don't see why we really need to define in-cell coordinates and H in a computer code (theoretical explanations is something else). The new "real" coordinate y*, of a point (x,y,z) after a deformation deyy is just :

y*  = deyy . Y . (y/Y) = deyy . y

Then, one can define deyy/dt as a function of applied stress (in fact more a function of the difference between the prescibed and the measured stress).

And finally, if the function is of the form d^2 eyy/dt^2 = sigma/m, one can say "m" is the inertia of the special body.

In yade, we can just control the periodic cell via X, Y, Z. Like this :

if we have imposed stress along x axis : d^2 X/dt^2 = sigma/m;
if we have imposed strain rate : dX = strain_rate * X * dt;
if we have imposed srain increment : dX = strain_increment * X;

do this for all three dimensions.

Then, for all bodies new_x = old_x . dX/X (or define a velocity if this is done BEFORE Newtons law integration).

It can be written like this : new_r = J * old_r

with J a proportional transformation matrix :

     | dX/X 0 0 |
J = | 0 dY/Y 0 | | 0 0 dZ/Z |


What's wrong with that?

Bruno,

if you impose a deplacement to each grains like you propose to do, grains will move like you want; i mean that they will move from a position to another one imposed by J. This does not really correspond to want we want... Grains must have a degree of freedom...It seems that it is not the case in what you propose.

For me, I seems that it is too earlier to speak about that on yade-dev. I propose a meeting with vincent to discuss about these periodic limit conditions. Once we are agree on that we all mean by "periodic limit conditions", it will be time to put it in Yade.


Gael







Follow ups

References