Vacuum Adjustment and c2x

Crystalline periodic systems can be converted between different unti cells and supercells by c2x. However, sometimes one simply wishes to expand (or contract, or add) a vacuum region in a cell as one models something which lacks periodicity in all three dimensions. This can also be done with c2x, assuming that the vacuum region is at a fractional co-ordinate of zero.

This functionality was introduced in c2x 2.30.

Operation on isolated molecules

Elsewhere there is an example of ethene in an 8x8x7 Angstrom box. Suppose one wanted it in a 10x10x10 Angstrom box instead.

$ c2x -Xabc=10 --cell_abs ethene.cell | cat
%block LATTICE_CART
ang
 10.0000000   0.0000000   0.0000000
  0.0000000  10.0000000   0.0000000
  0.0000000   0.0000000  10.0000000
%endblock LATTICE_CART

%block POSITIONS_ABS
ang
  C  5.698560000  5.000000000  5.000000000
  C  4.301440000  5.000000000  5.000000000
  H  6.270880000  5.923920000  5.000000000
  H  3.729120000  4.076080000  5.000000000
  H  3.729120000  5.923920000  5.000000000
  H  6.270880000  4.076080000  5.000000000
%endblock POSITIONS_ABS

KPOINT_MP_GRID 1 1 1
KPOINT_MP_OFFSET 0.250000000 0.250000000 0.250000000

Note that the molecule remains at the centre of the cell.

One can restore the original cell with:

$ c2x -Xab=8 -Xc=7 --cell_abs new.cell org.cell

Axes not specified are left unchanged. Cell contents are moved by half as much as the lattice vectors, so what was central remains central. The length may be suffixed with "B" for Bohr, and "nm" for nanometres.

Operation on, and creation of, surfaces

Using the example from the periodic cell manipulation page, one can simply stack unit cells and add vacuum. Starting with a small Si cell of:

%block LATTICE_CART
3.860803 -0.000000 0.000000
1.930402 3.343553 0.000000
0.000000 0.000000 9.456997
%endblock LATTICE_CART

%block POSITIONS_FRAC
 Si 0.000000 0.000000 0.000000
 Si 0.000000 0.000000 0.250000
 Si 0.666667 0.666667 0.333333
 Si 0.666667 0.666667 0.583333
 Si 0.333333 0.333333 0.666667
 Si 0.333333 0.333333 0.916667
%endblock POSITIONS_FRAC

one can double the number of layers along the c axis, and then expand the c axis to 30A by adding vacuum, as follows:

c2x -x=1x1x2 -Xc=30 --cell si6rr.cell si_surf.cell

The vacuum will be added at a fractional co-ordinate of -ε, i.e. an atom with a fractional co-ordinate of zero or greater will be moved away from one with a negative fractional co-ordinate.

If one then simply wanted to decrease the vacuum in this new cell by a couple of Angstrom, then:

c2x -Xc=28 --cell  si_surf.cell si_surf_small.cell

does so.