2D graphene simulation

Hi,

I am trying to simulate tensile stretching of a small graphene sheet (1000 atoms) with some dislocations generated in it. Current box size is 50 x 50 x 50 Angstroms which is enough to encompass all the atoms. Is there any way to stop the sheet from moving too much in the z-axis? I have tried many boundary styles, namely s and m, and the box always grows 10 times as large during the fix npt run i perform on the box. I do not want to restrict the sheet to a 2D simulation as this will not allow the sheet to ripple during equilibration (which i expect it to do due to the defect). I suspect that the neighbour and neigh_modify commands are the problem.

Below is part of the input file giving me these erroneous results;

units metal
dimension 3
boundary p p s
atom_style charge

# ----------------------- ATOM DEFINITION ----------------------------
read_data defect.data

# ------------------------ FORCE FIELDS ------------------------------
pair_style airebo 2.0 1 0
pair_coeff * * CH.airebo C

# ------------------------- SETTINGS ---------------------------------
neighbor 0.5 nsq
neigh_modify every 5 delay 10 check yes

If you want to allow the atoms to move in the x,y,z directions, while
keeping the Z-coordinate of the center of mass of the graphene sheet
at 0, you could try something like

group gGraphene type XXXX # replace with carbon atom type
fix fCen gGraphene recenter NULL NULL 0.0

For details, see
http://lammps.sandia.gov/doc/fix_recenter.html
http://lammps.sandia.gov/doc/group.html

You might also be able to achieve the same thing using fix momentum to
zero the momentum in the z direction, however because this fix does
not operate at every timestep, you might accumulate some slow drift.
You will probably also want to zero the Z component of the velocity at
the beginning of the simulation.

http://lammps.sandia.gov/doc/fix_momentum.html
http://lammps.sandia.gov/doc/fix_velocity.html

Cheers

andrew