Working with crystal structures
The Group Theory Package contains several functions to work with space groups and crystal structures, which are illustrated within this tutorial. Since different crystal structures cannot be implemented by referring to the space group number, a user defined database has to be created. This database is written to a list called spcgrp. To distinguish the structures, e.g. the Pearson Symbol or Strukturbericht Symbol can be taken into account.
GTInstallStructure[Structure] | installs a crystal structure,by appeding it to the list spcgrp. |
GTAllStructures[] | prints all structures that are currently installed within the list spcgrp. |
GTGetStructure[Information] | displays an installed crystal structure from a certain information (e.g.Pearson symbol,Strukturbericht designation,name). |
GTSaveStructures[File] | saves the content of the list spcgrp (list of installed crystal structures) to an arbitrary File. |
GTLoadStructures[File] | loads the content of the list spcgrp (list of installed crystal structures) from an arbitrary File. |
GTPlotStructure[Structure, Min,Max] | plots a crystal Structure within a certain plot range,defined by Min and Max. |
Loading the
Group Theory Package
As a first example the diamond structure is considered. From the Naval Research page (http://cst-www.nrl.navy.mil/lattice/) we get:
# Prototype : C (diamond)
# Pearson Symbol : cF8
# Strukturbericht Designation : A4
# Space Group : Fd3m (Cartesian and lattice coordinate listings available)
# Number : 227
# Other Elements with this Structure : Si, Ge, Sn
# Reference : Ashcroft and Mermin, p.76.
# Primitive Vectors :
A1 = ½ a Y + ½ a Z
A2 = ½ a X + ½ a Z
A3 = ½ a X + ½ a Y
# Basis Vectors :
B1 = -1/8 A1 - 1/8 A2 - 1/8 A3 = -1/8 a X - 1/8 a Y - 1/8 aZ (C) (8 a)
B2 = +1/8 A1 + 1/8 A2 + 1/8 A3 = +1/8 a X + 1/8 a Y + 1/8 aZ (C) (8 a)
The information will be organized as follows in a dataset:
Analogously, the information for the NaCl structure,
and Wurtzite structure are given as follows.
When the package is loaded, SpaceGroups.m contains the empty list
spcgrp.
It is not possible to install a structure twice.
To display a certain structure,
GTGetStructure can be used. As argument, a certain information of the structure can be taken into account (e.g. the Pearson symbol, the Strukturbericht symbol or the name).
The implemented structures can be saved to an arbitrary file using
GTSaveStructures.
To illustrate the structures, the command
GTPlotStructure is implemented. All you have to do is to specify the plot range as well as the structure.