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?