Adjusting periodic box location during simulation of solid to avoid tension/compression

I notice that this topic was touched on in 2009 but had not seen anything since.

The AIREBO potential likes a little shorter bond lengths at 300 K (~1.4 A) as compared to the REBO (~1.42 A). I like to use VMDs nanotube builder that uses a 1.42 A carbon-carbon bond distance. When applying periodic boundary conditions, this complicates setting the simulation box dimensions perpendicular to the tube axis so as to have an “infinitely long” sample. If the periodic dimensions are set based on the initial CNT length, the structure wants to contract. Since I use NVE and NVT, it can’t and the CNT goes into tension. My pzz values are always negative.

I am performing thermal conductivity calculations using fix thermal conductivity. Literature has shown thermal conductivity decreases when CNTs are in tension, and increases when they are in compression. So far these are my attempts to avoid either situation. If anyone has any good ideas they are willing to share it would be of great help!

This is what I think I am doing and the corresponding procedure I am implementing. My universities computing cluster has an older version of Lammps, meaning I don’t have access to the change_box command.

Step 1: Set the boundaries as periodic, units metal, 1 fs timestep

Step 2: Determine the atom ids of the largest z and smallest z coordinate atoms.
variable zhi equal bound(all,zmax)
variable zlow equal bound(all,zmin)

Step 3: expand the periodic boundaries by arbitrary value to allow the sample to contract
variable newzhi equal {zhi}+100 variable newzlow equal {zlow}-100
displace_box all z final {newzlow} {newzhi} remap none units box

Step 4: NVE integrate, then NVT integrate to a desired temperature (300K).

Step 5: measure new sample length and contract the simulation box to reapply periodic boundaries on the sample
variable zhi equal bound(all,zmax)
variable zlow equal bound(all,zmin)
variable samplelength equal {zhi}-{zlow}
variable newzhi equal {zhi}+0.614 -- "ideal distance" variable newzlow equal {zlow}-0.614 – “ideal distance”
displace_box all z final {newzlow} {newzhi} remap none units box

In the previous step I realize I am setting the new box dimensions relative to only one atom. I’m sure it’d be a better idea to find the center of mass of the ring of atoms on each end, and set the boundaries according to that position. (Or something along those lines)

After some NVE my pzz is still negative. If I set the boundaries closer (by only a few tenths of an angstrom) I can see a huge increase in pzz as if I am squeezing the CNT.

After “Step 5,” I’ve also attempted to move the box dimensions using fix npt, however I can’t get pzz to converge to 0.

fix 1 all npt temp {tempatoms} 300 100*{timestep} z c_pzz 0 1000*{timestep}
run 1000000

Using VMD to view my trajectories and the periodic images, I can see my boundaries first moving away (from original location) then the structure contracts, then the boundaries are brought closer. Using the label bond tool in VMD, it seems that I am reapplying the boundaries correctly. Can I expect the npt to readjust the box in the z direction so as to remove external forces from the structure? To no avail, I’ve varied the timestep multiplier on pdamp from 100 to 50000.

I hope my intentions are clear.

Thank you,

Mike Bifano
Ph.D. Candidate
Case Western Reserve University
Office (216) 368-6444
Cell (717) 926-8950

I notice that this topic was touched on in 2009 but had not seen anything
since.

The AIREBO potential likes a little shorter bond lengths at 300 K (~1.4 A)
as compared to the REBO (~1.42 A). I like to use VMDs nanotube builder that
uses a 1.42 A carbon-carbon bond distance. When applying periodic boundary
conditions, this complicates setting the simulation box dimensions
perpendicular to the tube axis so as to have an "infinitely long" sample.
If the periodic dimensions are set based on the initial CNT length, the
structure wants to contract. Since I use NVE and NVT, it can't and the CNT
goes into tension. My pzz values are always negative.

why don't you just change the value in the nanotube builder plugin?

open the file <VMD installation

/plugins/noarch/tcl/nanotube1.3/nanotube.tcl

go to line 54 and change the statement

set a 1.418

to

set a 1.4

or whatever else you want. for a future version of the plugin, this could
be made into an adjustable parameter through a dialog.

I am performing thermal conductivity calculations using fix thermal
conductivity. Literature has shown thermal conductivity decreases when
CNTs are in tension, and increases when they are in compression. So far
these are my attempts to avoid either situation. If anyone has any good
ideas they are willing to share it would be of great help!

This is what I think I am doing and the corresponding procedure I am
implementing. My universities computing cluster has an older version of
Lammps, meaning I don't have access to the change_box command.

why don't you compile your own version. it is pretty easy
and you know what you have.

[...]

I hope my intentions are clear.

to make your life a lot more miserable than it needs to be? :wink:

cheers,
    axel.

Thank you Axel. I like you VMD suggestion. As you can tell, I’ve been blindly following with whatever VMD gives me. For my general knowledge, regarding the fix npt around a solid phase… should this be altering the box dimensions as I think it should? I was thinking that remap none would be a good option and run the fix one of the center atoms. Hopefully then the box would adjust around the atoms?

Thanks,

Mike

Mike Bifano
Ph.D. Candidate
Case Western Reserve University
Office (216) 368-6444
Cell (717) 926-8950