One of the frequently requested solid-state features in generating slabs. You know – someone wants to do a simulation of a Pt (111) surface with an adsorbed molecule. Or better yet, a Pt (211) “miscut” or defect surface.

I have some code that purports to allow rotations to arbitrary Miller planes, and it seems to work for the camera. But anytime I tried to modify the coordinates of the actual atoms, weird things happened. Since I’ve never had much time to debug this, it sat on the shelf.

Today, the solution hit me. It’s *REALLY* easy to do:

- By the definition of a Miller Plane (say 111), you can find the normal vector to the plane. So for (111), the normal vector is [111].
- To generate a slab, what we want to do is to rotate this normal vector [111] to the z-axis. This means atoms in the Miller plane will end up in the xy plane.
- The normal vector is actually in fractional coordinates, so you need to convert it to Cartesian real-space.
- Use the same rotation code currently in the aligntool.

The result will orient the crystal atoms, such that the Miller plane is parallel to the xy plane. You now need to translate in the z-direction and cleave as needed. To ensure you have a big enough slab, generate a big supercell beforehand and delete atoms as needed.

If anyone wants to give this a try, I’d be glad to help them. Otherwise, someone here at Pitt will work on this over the summer.

Cheers,

-Geoff