Example - Orthogonalization of a hexagonal unit cell of AlN


This document describes how to orthogonalize a hexagonal atomic structure in order to make it usable as input for TEM and STEM image simulations. The material in this example is aluminium nitride (AlN) and we want to prepare structure data for imaging along the [001] zone-axis of the crystal using the command-line tool CellMuncher.

Prerequisites for a successful reproduction of the calculation protocol


Initial structure file of hexagonal AlN

The example is based on an initial structure data file as given by the text block below. Please copy the text block and save it as file AlN-00.cel or download the initial structure file!
As a third alternative you can create the structure file using the program BuildCell by calling it from the command-line shell in the following way:
BuildCell --spacegroup=186 --lattice=3.110,3.110,4.980,90.0,90.0,120.0 --atom=Al,-0.333333,-0.666667,0.000000,1.0,0.300 --atom=N,-0.333333,-0.666667,0.3821,1.0,0.355 --output=AlN-00.cel

# Super-cell data created by BuildPrimitiveCell
0 0.3110 0.3110 0.4980 90.0000 90.0000 120.0000
N 0.666667 0.333334 0.382100 1.000000 0.003550 0.000000 0.000000 0.000000
N 0.333334 0.666667 0.882100 1.000000 0.003550 0.000000 0.000000 0.000000
Al 0.666667 0.333334 0.000000 1.000000 0.003000 0.000000 0.000000 0.000000
Al 0.333334 0.666667 0.500000 1.000000 0.003000 0.000000 0.000000 0.000000

The structure of AlN is taken as published by H. Schulz & K.H. Thiemann [Solid State Communications 23 (1977) 815-818].
In [001] projection it displays as shown by the image below.

Hexagonal AlN structure.

[Hexagonal AlN structure, image created by VESTA.]


The concept of orthogonalization

Multislice image simulations with Dr. Probe require an input structure model described within an orthogonal super-cell. However, quite often structure models are based on a hexagonal unit cell. One example is the structure of AlN as shown in the image above, where the gamma angle between the a-axis and the b-axis of the unit cell is 120 degrees. Using a non-orthogonal super-cell as input for image simulations with the Dr. Probe package will lead to totally wrong images, as the software assumes explicitly that an orthogonal structure is given.

When orthogonalizing a structure model, we try to find a (usually larger) periodic unit of the structure, where all cell axes are oriented mutually with 90 degree angles against each other. In the present example of AlN, the orthogonalization is a mere 2-dimensional problem in the x-y-plane, as illustrated in the image below, because the angles alpha between the x- and z-axis, and beta between the y- and z-axis are both 90 degree already.

Construction of an orthogonal super cell

[Construction of an orthogonal super cell from a hexagonal lattice.]

As can be seen, an orthogonal unit cell is found in the case of AlN with the new basis vectors a' = a and b' = 2b - a. In general, the solution is not alway as simple, in particular, when the angle gamma is not 120 deg, or when the original lattice constants are not equal (ab). It is quite often the case, that the solution requires a linear combination with very large multiples of the original lattice vectors to span a perfectly periodic new unit. There are also cases, where even no exact solution exists. However, since it would lead to far to cover all these issues in this example, we stick to the demonstration of the most simple case here.

The following sequence of operations with the program CellMuncher will transform the hexagonal AlN structure model into a model with an orthorhombic unit cell. In order to follow these commands, please make sure that you have opened the Dr. Probe command-line shell. In this shell you can call the program CellMuncher from any directory. Please changed to the directory, which contains the initial structure file AlN-00.cel.

  1. In the first step we need to swap the y- and z-axes of the initial structure, since CellMuncher applies its orthogonalization routine to the plane containing the beta angle only.
    CellMuncher -f AlN-00.cel -o AlN-01.cel --swap-axes=yz
  2. The structure is now ready for orthogonalization:
    CellMuncher -f AlN-01.cel -o AlN-02.cel --orthogonalize-plane=xz,2
    As denoted before, the command works only in the x-z-plane, as the routines for the x-y-plane and the y-z-plane are not implemented yet. The number specified at the end of the command-line argument limits the possible periodic repeat of the original cell to find an orthogonal substitutions. If no solution is found within this bound, CellMuncher will abort. In this case you should rather use the CellMuncher option --create-block to cut an orthogonal block from the initial structure (see the CellMuncher documentation). The option --create-block is the most direct way of creating an orthogonal super-cell of any given structure. However, it requires a few pre-calculation to select a proper block, depending very much on the details of the input structure.
  3. With the orthogonalization done, we can now swap back to obtain again the original orientation of the structure.
    CellMuncher -f AlN-02.cel -o AlN-03.cel --swap-axes=yz
    In this step, we already obtain the final super-cell of this example, which is now orthogonal and as the size of a = 0.3110 nm, b = 0.5387 nm, and c = 0.4980 nm.
    The following steps are actually not required if you intent to use the periodic structure alone in your simulations. However, there are some residual artifacts of the orthogonalization routine, which could cause problems when you try to transform or modify the structure further. The steps following now take care for some of these artifacts by slightly rearranging the atoms in the super-cell. A particular problem of the orthogonalization are round-off issues. Since the cell is still quite simple you can still take care of round-off problems by manually editing the CEL file.
  4. Since some of the atomic sites may be placed out of the cell bounds, we wrap them back now periodically into range [0,1[ of the three fractional coordinates.
    CellMuncher -f AlN-03.cel -o AlN-04.cel --periodic=x --periodic=y --periodic=z
  5. Finally we remove close or duplicate atoms from the cell.
    CellMuncher -f AlN-04.cel -o AlN_001.cel --remove-close-atoms=0.2
    The value specified with the option --remove-close-atoms denotes the minimum allowed interatomic distance in the structure in Angström, where a value of 0.2 A is usually sufficient.

The structure obtained after the transformtion to an orthorhombic cell is shown below in three different projections.

Orthogonal AlN super cell

[Orthogonal super cell of AlN in three projections along the cell axes. The hexagonal ring structure is visible in the [001] projection. The structure projections were created with VESTA.]

The structure definition file AlN_001.cel obtained after the above transformations to an orthorhombic cell is listed below and available by download.

# Super-cell data created by BuildPrimitiveCell
0 0.3110 0.5387 0.4980 90.0000 90.0000 90.0000
Al 0.000000 0.666667 0.000000 1.000000 0.003000 0.100000 0.100000 0.100000
N 0.000000 0.666667 0.382100 1.000000 0.003550 0.100000 0.100000 0.100000
Al 0.000000 0.333334 0.500000 1.000000 0.003000 0.100000 0.100000 0.100000
N 0.000000 0.333334 0.882100 1.000000 0.003550 0.100000 0.100000 0.100000
Al 0.500000 0.166667 0.000000 1.000000 0.003000 0.100000 0.100000 0.100000
N 0.500000 0.166667 0.382100 1.000000 0.003550 0.100000 0.100000 0.100000
Al 0.500000 0.833333 0.500000 1.000000 0.003000 0.100000 0.100000 0.100000
N 0.500000 0.833333 0.882100 1.000000 0.003550 0.100000 0.100000 0.100000


Summary of commands:

Following is the complete sequence of all commands used above. You may copy this sequence and execute it by one call from a batch file or shell script.

BuildCell --spacegroup=186 --lattice=3.110,3.110,4.980,90.0,90.0,120.0 --atom=Al,-0.333333,-0.666667,0.000000,1.0,0.300 --atom=N,-0.333333,-0.666667,0.3821,1.0,0.355 --output=AlN-00.cel
CellMuncher -f AlN-00.cel -o AlN-01.cel --swap-axes=yz
CellMuncher -f AlN-01.cel -o AlN-02.cel --orthogonalize-plane=xz,2
CellMuncher -f AlN-02.cel -o AlN-03.cel --swap-axes=yz
CellMuncher -f AlN-03.cel -o AlN-04.cel --periodic=x --periodic=y --periodic=z
CellMuncher -f AlN-04.cel -o AlN_001.cel --remove-close-atoms=0.2 --cif



Use the command

CellMuncher -f dummy-file-name.cel -o dummy-file-name.cif -w CIF

to translate a CEL file into a CIF file. You can open the resulting CIF file directly with the program VESTA to visualize the structure. Please modify the file name in the generic command above to your needs.


Last update: August 1, 2017