I'm trying to reconstruct the surface $(1\bar{1}01)$ in an hexagonal material and the reconstruction is described by the matrix $\begin{pmatrix} \hspace{3mm}3 \hspace{2mm}1 \\-1 \hspace{2mm}2 \end{pmatrix}$ .

The surface looks a lot like the picture on the right 1101 surface example

But how do I proceed on reconstructing the surface? How do I apply this matrix to 4 Miller-indices?

I've looked for the concept of reconstruction in the books "Introduction to Crystallography" by Dr. Hoffmann, "Crystallography An Introduction" by Dr. Borchardt-Ott but none of these books seem to demonstrate how this is done.

  • $\begingroup$ You can use ASE. $\endgroup$
    – Jack
    Dec 1, 2020 at 1:07
  • $\begingroup$ But is there a way to do it without the need to use programming? Simply so I understand how the matrix transformation is used on the surface, as I don't think it can be as simple as a matrix multiplication as one of the matrices is a 2x2 and the other is 1x4 $\endgroup$ Dec 1, 2020 at 8:19
  • 1
    $\begingroup$ @Jack As this question has gone 3 months without an answer, and I'm trying to help shorten the unanswered queue, I wonder if it would be too cumbersome for you to try to write an answer using ASE? I understand that the user has replied saying that they want a way to do it "without programming", but the way the question is asked, it seems that an answer using ASE would still be useful for other users that stumble upon this question. $\endgroup$ Feb 28, 2021 at 5:24
  • 2
    $\begingroup$ @NikeDattani Hi, I have posted an answer. Hope it helps. $\endgroup$
    – Jack
    Feb 28, 2021 at 10:34

1 Answer 1


Cut a surface with ASE:

  from ase.io import read,write
  from ase.build import surface

  A=read('Input_Your_Strcuture.cif',format='cif')  ### format can be vasp.

Reconstruct your surface with VESTA:

  • Open your structure with VESTA.
  • Go to "Edit ==> Edit Data==>Unit Cell==>Transformation" and then enter the transformation matrix:

enter image description here

Note that you need only to fill in $P_{11},P_{12},P_{21}, P_{22}$ (I assume the vacuum is along $z$ direction) because you are considering the surface reconstruction.

PS: For another conventional option, you may realize both with the pymatgen package, but I'm not so familiar with it.

Hope it helps.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .