[lammps-users] problem about applying strain

I’m simulating a simple scenario in which the material is subjected to an uniaxial strain and then get to the equalibrium state. Since I need to apply the strain(which is a given value) to each atom, so I tried to use “fix deform” command. But it turns out that only the box size could be changed by this while doing nothing to the atoms.

Another strange thing of my simulation result is that the output info shows that the box length “lx, ly” are constant but “lz” DECREASES, but in my script “fix deform” sets the x-scale to larger than 1.

I checked the previous mail-list about applying strain, but I still can’t figure out how to solve it, and in my case only the applied strain value is given.

Thanks first for any suggestions,

Wei YE

My input script is as follows:

units metal
atom_style atomic
boundary p p s
dimension 3

for (100) surface

variable direction equal “100”
lattice fcc 3.615 origin 0 0 0 orient x 0 1 0 orient y 0 0 1 orient z 1 0 0

variable a equal 1
variable b equal 40
region mybox block -$a $a -$a $a -$b $b units lattice

create_box 1 mybox
create_atoms 1 region mybox

pair_style eam
pair_coeff * * …/…/potentials/Cu_u3.eam

#fix 1 all nvt 300 300 100
#fix 1 all nve

compute pe_atom all pe/atom
thermo_style custom step temp pe etotal press vol lx ly lz
#thermo 1

dump 1 all custom 100 dump.Cu${direction}.scale.lammpstrj id type x y z c_pe_atom

minimize 1e-12 1e-14 10000 100000

fix 2 all deform 1 x scale 1.05 units box
minimize 1e-12 1e-14 10000 100000

Fix deform works during a run command (dynamics).
It does nothing during a minimization, as its doc page explains.
You could look at fix box/relax which does operate during
a minimization. Or you could use the displace_box command
to shrink the box (and atoms) before doing a minimization.