[lammps-users] stretching the boxes in z axis deforms the shape in xy plane


Dear Lammps users,

I want to simulate the stretching of a mwcnt along its longitudinal direction (z).

I have tried with the “change_box” and the “fix deform” commands, both within a wrapping for loop.
In both cases, before getting the box to stretch along the z direction, it squeezes in the xy plane, which makes my cnt look like a square because of periodic images come too close on +/- x/y directions.
How can I solve this? Do I have to say something about not conserving the volume?

The system has been previously equilibrated and relaxed.
I perform a npt dynamics with the following fix:

"fix mynpt all npt temp 300 300 300 iso 1 1 1 "

The full input.file is given below.
Thank you for your support.


variable T equal 300
units metal
atom_style full
boundary p p p

read_restart relax_restart.mdrun
pair_style airebo/morse 3.0 1 1
pair_coeff * * CH.airebo-m C

reset_timestep 0
thermo 100

Elongate cell

dump dump_elongate all atom 100 dump_elongate.lammpstrj

variable var loop 30
label loop

fix mynpt all npt temp {T} {T} ${T} iso 1 1 1
run 1000
unfix mynpt

fix 1 all deform 1 z scale 1.1 # to be removed for change_box case

run 1 #

unfix 1 #

#to be inserted for change_box_case

#variable fac equal 1+0.01*{var} #change_box all z scale {fac} remap

next var
jump input.lammps loop
undump dump_elongate


This e-mail may contain confidential information. If you are not an addressee or otherwise authorised to receive this message, you should not use, copy, disclose or take any action based on this e-mail. If you have received this e-mail in error, please inform the sender promptly and delete this message and any attachments immediately.

There are two problems here:

  • you are relaxing the box with fix npt isotropically. that makes no sense for the kind of study you are describing
  • your use of fix deform is rather pointless. you are emulating the change_box command. Instead it is meant to do a gradual/continuing deformation over the course of a run, which seems to be what you are aiming to do with your loop.

There are a couple more things that don’t make sense to me:

  • why periodic boundaries in x- and y- direction?
  • why use fix npt?

So the question is: do you want to study your MWCNT under strain in z-direction as a single object or as a 2d-layer?
If the former, you can just use f f p boundaries and use fix nvt or fix nve (what heat bath is the MWCNT in contact with to exchange kinetic energy?) to propagate those atoms, but also apply fix deform with a deformation suitable for the entire length of a run (no loop needed).

With periodic boundaries, your system changes significantly as the MWCNT will interact with its periodic images and thus behave differently. also with isotropic cell changes, you force the MWCNT to change in x- and y-direction due to the strain in z based on the *averaged stress in all directions. No wonder you are getting unexpected geometries.

If my guesses are wrong, then the natural way to do the the simulation with fix npt and fix deform at the same time, while telling fix npt to only scale x- and y- box directions whereas fix deform changes the z-direction. due to the symmetry you may or may not couple the x- and y-direction box change.



Dear Alex,

Thank you for the answer, now everything is much clearer.

To clarify, I want to simulate a bundle, therefore I assume pbc in all directions is realistic.

I am therefore using the following: