I want to implement building the Miller indeces in my program Chemcaft. Currently I need to understand more the computations with periodic boundary conditions (PBC) needed for crystallographers. The crystallography data is usually presented as a set of fractional coordinates which are recounted to Cartesian ones. In the fractional coordinates, each cell of a crystal is a cube, e.g. the atoms in molecule belonging to the first cell have the coordinates from 0.0 to 1.0. Some real crystals have cubic cells too, e.g. NaCl:

enter image description here

PBCs mean that the atoms with e.g. fractional coordinates (0.0;0.0;0.0) and (1.0;0.0;0.0) are equivalent. PBCs in crystals are specified by three lattice vectors A, B, C; e.g. for NaCl above these vectors are three orthogonal vectors with length 5.4533 Angs each (this also mean that the crystallography parameters are: a=5.4533, b=5.4533, c=5.4533, alpha=90, beta=90, gamma=90). At the same time, for each crystal, in fact there must be an unlimited numbers of possible lattice vectors. This can be illustrated by a 2-d example:

enter image description here

Here the trivial PBC parameters are (1.0; 0.0) and (0.0;1.0), but also we can build the lattice vectors (3.0; -1.0) and (1.0; 3.0), which describe the same crystal.

As far as I understand, the Miller indeces are three integer numbers, e.g. 1 1 1, which mean that the new vector C will be (1.0; 1.0; 1.0) in fractional coordinates. My question is, how to build the A and B vectors if we know C. This is similar to the 2d task above, but evidently more difficult.

As far as I understand, the A and B vectors can be built in different ways; they must be orthogonal to C, maybe to each other too, but they still can be rotated along the C vector. And they must be still integers, if I understand correctly, and they must define the same crystal as it was. This can be illustrated by the 2d picture above – if the first lattice vector A=(3.0; -1.0), the second can be only B=(1.0; 3.0) to keep the same crystal.

So how can these integers A and B (3 digits for each) be obtained, if we know C?

The new values of A, B, C in terms of old (9 numbers) can be entered in the window “Redefine lattice” in Materials Studio program, I have implemented the same in Chemcraft. I suppose, to build the Miller index 1 1 1, we should specify these lattice redefinition parameters:

A: 0 1 -1

B: -1 1 0

C: 1 1 1

With these parameters, we transform this cell

enter image description here

Into this cell

enter image description here

Is this correct? And is it correct that the A and B vectors are not orthogonal to each other (though they are orthogonal to C)?

  • 1
    $\begingroup$ There are several misleading ideas in your post. For example, "periodic boundary conditions (PBC) needed for crystallographers.". A crystal, as an infinity system, is represented by a unit cell that goes under symmetry operations to occupy the whole space (it isn't a need). PBC has nothing to do with the atom positions (Wyckoff positions) inside the unit cell. Also, there are no fractional vectors. I strongly recommend that you read a solid-state physics book like Kittel or Aschroft. $\endgroup$
    – Camps
    Oct 23, 2023 at 13:58
  • 1
    $\begingroup$ Camps, what do you mean by "there are no fractional vectors" - lattice vectors (A, B, C) or fractional coordinates ({1;0;0} mean A, etc)? $\endgroup$
    – Linkey
    Oct 23, 2023 at 14:15
  • 1
    $\begingroup$ It's a very long and rather unclear question. Miller indices are explained in many places (Wikipedia, textbooks). They are used for planes and directions rather than vectors. The term PBC is used in simulations rather than in crystallography. A unit cell in crystal can be used as a PBC box, because of translational symmetry, but usually there are also other symmetries to consider in crystallography. $\endgroup$
    – marcin
    Oct 23, 2023 at 14:17
  • $\begingroup$ I have implemented in my Chemcraft tool the Cleave surface sool: chemcraftprog.com/files/Chemcraft_b675bt_win64.zip If you type e.g. 1 1 1 C vector, possible lattice vectors variants (A, B vectors) are: 1) -1 0 1 0 -1 1 1 1 1 2) 1 -1 0 1 1 -2 1 1 1 Is the first variant better? Maybe Chemcraft should show the user a full list of possible lattice vectors, with the possibility to choose any element from this list? $\endgroup$
    – Linkey
    Nov 5, 2023 at 14:35


You must log in to answer this question.

Browse other questions tagged .