Rolling nanotubes with c2x

From version 2.31, c2x can roll sheets into nanotubes. The input structure must be in the plane defined by the a and b axes, with c, the non-periodic direction, being perpendicular to this plane. Slight deviation from the plane is permitted, so sheets of metal dichalcogenides, such as MoS2, can also be rolled up. In such cases relaxing the geometry is particularly important, as c2x cannot predict how the curvature will affect bond-lengths.

On being given a vector to make the circumference, which must be an integer combination of the a and b lattice vectors, c2x will attempt to create a nanotube.

Note that this notation is not equivalent to the (n,m) notation used to describe carbon nanotubes, and is not independent of the choice of initial cell. However, if the initial cell is a primitive hexagonal cell with γ=60°, as it is in the example below, then the two notations are equivalent.

C2x can also process the output of many DFT codes so that radial plots can be produced readily.

As an example, consider a sheet of graphene, given here as a .cell file:

  2.4577810   0.0000000   0.0
  1.2288905   2.1285008   0.0
  0.0000000   0.0000000  24.0
%endblock LATTICE_CART

  C  0.3333333333  0.3333333333  0.500000000
  C  0.6666666667  0.6666666667  0.500000000

This can be converted to a nanotube with commands such as

$ c2x -y=10,0 graphene.cell tube1.xsf


$ c2x -y=6,6 graphene.cell tube2.xsf

The two nanotubes thus formed are quite different - one has bonds parallel to the circumference (an "armchair" form), the other parallel to its length (a "zig-zag" form). The images below show three units of the nanotube along their lengths.

10,0 nanotube6,6 nanotube

When creating nanotubes, c2x will make a small adjustment to the radius in an attempt to preserve bond-lengths. This can only possibly work if the input sheet is truly two dimensional, and can be turned off with the -R flag. Attempts to roll sheets which are not strictly 2D will inevitably compress the inside and stretch the outside.

If one wishes to control the size of the cell perpendicular to the tube's length, and optional third parameter may be specified:

$ c2x -y=6,6:20 graphene.cell tube2.xsf
$ c2x -y=6,6:2nm graphene.cell tube2.xsf
$ c2x -y=6,6:35B graphene.cell tube2.xsf

for 20A, 2nm (the same), and 35 Bohr respectively.

Alternatively, one can use c2x to adjust vacuum regions in a post-hoc fashion:

$ c2x -Xab=20 tube2.xsf new.xsf

Finally, there are some example calculations on nanotubes.