# Tilt factors and fix deform

Hi,

I have a question about the documentation for the fix deform command (http://lammps.sandia.gov/doc/fix_deform.html). The page lists that for the “erate” style, the tilt factor will change as

T(t) = T0 + erate*dt

but shouldn’t the tilt factor change as

T(t) = T0 + L*(erate*dt)

where L is the length of the box perpendicular to the shearing edge (Ly for tilt factor xy)? Am I missing something here?

Thanks,
David

Hi,

time ago i tried to modify the source code fix_deform.cpp and without success I implement a new functional form to compress the material quasi isentropically .I called this new profile as “qrate” , at the end i gave up the proyect. I Ran Md simulations to test all the posibble scenarios of deformation “trate” , “erate” , etc and they work pefectly . So according my little experience working with this source code I can say that lammps defoms the body accordingly to the correct functional forms .
One can try and plot lenght vs time steps to confirm .

Oscar G.

Hi Oscar,

Thanks for your reply. I think that the “erate” functionality works for tilt factors in that it applies a constant shear strain rate, but I still am unsure about the equation

T(t) = T0 + erate*dt

The tilt factor, as I understand it, is a dimensional quantity with units of distance. From the documentation, the quantity erate is in units [1/time] and dt is in units [time]. In the above equation, I think that the quantity T should be the shear strain, but not the tilt factor.

I think the relevant lines in fix_deform.cpp are 504-510

else if (set[i].style == ERATE) {
if (i == 3) set[i].tilt_stop = set[i].tilt_start +
deltset[i].rate * (set[2].hi_start-set[2].lo_start);
if (i == 4) set[i].tilt_stop = set[i].tilt_start +
delt
set[i].rate * (set[2].hi_start-set[2].lo_start);
if (i == 5) set[i].tilt_stop = set[i].tilt_start +
delt*set[i].rate * (set[1].hi_start-set[1].lo_start);
}

I think these lines do have the additional factor (Lz for xz and yz, Ly for xy) which would correspond to

T(t) = T0 + L*(erate*dt)

Thanks,
David

Ok , let me try harder and provide more feed back. I saw the lammps manual page and its say L(t) = L0 (1 + eratedt) or L(t) = L0 + L0(eratedt) if the same applies for the tilt factor then it should be T(t) = T0 + T0(eratedt) or T(t) = T0(1 + eratedt) … Yeah i think there is a typo. I will look at the source code and try to remember how I added the “QRATE” profile…

PS: If someone is interested in Quasi-Isentropic compression in BCC and FCC crystals and its implementation in Lammps I might be willing to join colaborations …

Oscar G.

Hi

Hi,

If im correct set[i].tilt_start + deltset[i].rate * (set[2].hi_start-set[2].lo_start); i belive can be translated as To + eratedt*(To-T1) … I just dont know what im saying . Please correct me if i’m wrong …

PS : Steve Plimpton may comment further => (please) …

Oscar G.

Hi Oscar,

Thanks again for looking into this. I am still not sure about your equation involving the tilt factor; I still think the dimension of the box in the dimension parallel to the shearing edge plane should be present. As I understand it, (set[2].hi_start-set[2].lo_start) is actually the dimension of the simulation box (in this case L_z because the tilt factor is xz or yz).

I think this is perhaps just a typo in the documentation as you suggested.

Thanks,
David

yes - I agree that it is a typo in the documentation. I thiink
it should be

T(t) = T0 + L0 erate dt

which is what you stated except that it is L0, the original
box length in the perp direction (it doesn't get recomputed
if that box length is also changing). I just changed the doc page.

Thanks,
Steve