Hi Geoff, From: Geoffrey Hutchison <[email protected]> Subject: Generating Slabs / Surfaces Date: Thu, 19 May 2011 15:57:43 -0400
> 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: > 1) 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]. > 2) 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. > 3) The normal vector is actually in fractional coordinates, so you > need to convert it to Cartesian real-space. > 4) 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. I started work on this very problem shortly after writing the crystallography extension, but life got busy before I could finish it. I believe I took a similar approach to the one you describe. Unfortunately time is very tight for me right now, and will continue to be through the end of summer. I will happily put my code up somewhere public later today in case someone would like to pick this up -- There are several people who have asked about this, and I think it would be an excellent feature for Avogadro to have. Dave ------------------------------------------------------------------------------ What Every C/C++ and Fortran developer Should Know! Read this article and learn how Intel has extended the reach of its next-generation tools to help Windows* and Linux* C/C++ and Fortran developers boost performance applications - including clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ Avogadro-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/avogadro-devel
