Uniaxial pull with NPT ensemble

Hi all,
Hi steve,

I am applying 200% uniaxial(Tension test) pull with NPT ensemble on a periodic box. My desire is keep zero traction on X and Y directions for that i have used a fixes as below :

fix 1 all npt temp 100.00 100.00 500 x 0.0 0.0 500 y 0.0 0.0 500
fix 2 all temp/rescale 1 100.0 100.0 10 0.5
fix 3 all deform 1 z vel 0.0005 units box

run 191366

My doubt is that was that fixes are sufficient to do uniaxial pull? And also i have fired the simulation job with above commands and found a stress/atom values then i have observed that the box sizes in X and Y direction were not reduced significantly.

For example: my box size is 95.683622 Angstroms.
After simulation in Z-direction box increased(287.04962) as my desire, but in X-direction it was decreased to(88.876048) and Y-direction it was decreased to(92.664676).

My doubt is that am i getting correct simulation results? For your reference i am giving my input file below.

units real

atom_style full
boundary p p p
pair_style lj/cut/opt 6.0
bond_style harmonic
angle_style cosine/squared
dihedral_style opls
special_bonds lj 0.0 0.0 0.0 dihedral no

read_data 200_PE_LAMMPS_INPUT

#read_restart restart.1000.pull

pair_coeff 1 1 0.0862233699 4.0685000000
pair_coeff 1 2 0.0862233699 4.0685000000
pair_coeff 2 2 0.2104232379 3.7654000000

#pair_modify tail yes
#neighbor 1.0 bin
#neigh_modify check yes # as default values used

timestep 2.0
run_style verlet

fix 1 all npt temp 100.00 100.00 500 x 0.0 0.0 500 y 0.0 0.0 500
fix 2 all temp/rescale 1 100.0 100.0 10 0.5
fix 3 all deform 1 z vel 0.0005 units box

compute tsperatom all stress/atom
compute ts all reduce sum c_tsperatom[1] c_tsperatom[2] c_tsperatom[3]
compute kesperatom all stress/atom ke
compute kes all reduce sum c_kesperatom[1] c_kesperatom[2] c_kesperatom[3]
compute pairsperatom all stress/atom pair
compute ps all reduce sum c_pairsperatom[1] c_pairsperatom[2] c_pairsperatom[3]
compute bondsperatom all stress/atom bond
compute bs all reduce sum c_bondsperatom[1] c_bondsperatom[2] c_bondsperatom[3]
compute angsperatom all stress/atom angle
compute as all reduce sum c_angsperatom[1] c_angsperatom[2] c_angsperatom[3]
compute dihedsperatom all stress/atom dihedral
compute ds all reduce sum c_dihedsperatom[1] c_dihedsperatom[2] c_dihedsperatom[3]

thermo_style custom step temp press pe ke etotal enthalpy evdwl epair ebond eangle edihed emol elong etail vol lx ly lz xlo xhi ylo yhi zlo zhi pxx pyy pzz pxy pxz pyz c_ts[1] c_ts[2] c_ts[3] c_kes[1] c_kes[2] c_kes[3] c_ps[1] c_ps[2] c_ps[3] c_bs[1] c_bs[2] c_bs[3] c_as[1] c_as[2] c_as[3] c_ds[1] c_ds[2] c_ds[3]

thermo 1

dump 1 all atom 9568 atomcoordinateFILE_tension

dump_modify 1 format ā€œ%7d %7d %20.15g %20.15g %20.15gā€ scale no

#restart 9568 restart.*.pull

#dump 1 all atom 9568 atomcoordinateFILE

run 191366

There is no guarantee that if you pull on something to 2x its length,
that the other components of pressure can be equilibrated
to any value you want. That's not physically possible for
many systems, especially if you pull it fast.