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
In[1]:=
Click for copyable input

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:
In[2]:=
Click for copyable input
Analogously, the information for the NaCl structure, CaF_2 and Wurtzite structure are given as follows.
In[3]:=
Click for copyable input
In[4]:=
Click for copyable input
In[5]:=
Click for copyable input
When the package is loaded, SpaceGroups.m contains the empty list spcgrp.
In[6]:=
Click for copyable input
Out[6]=
The structures defined above, can be appended to spcgrp, using GTInstallStructure.
In[7]:=
Click for copyable input
The content of spcgrp, can be displayed using GTAllStructures.
In[8]:=
Click for copyable input
It is not possible to install a structure twice.
In[9]:=
Click for copyable input
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).
In[10]:=
Click for copyable input
Out[10]=
The implemented structures can be saved to an arbitrary file using GTSaveStructures.
In[11]:=
Click for copyable input
To load structures from a file take GTLoadStructures.
In[12]:=
Click for copyable input
Out[12]=
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.
In[13]:=
Click for copyable input
Out[13]=
In[14]:=
Click for copyable input
In[15]:=
Click for copyable input
Out[15]=
Out[15]=
In[16]:=
Click for copyable input
Out[16]=
Out[16]=