This section covers the unit cell of a crystal, its space, point and Laue groups as well as alignments of the crystal coordinate system.

On this page ... |

Crystallographic Space, Point and Laue Groups |

The Crystal Coordinate System |

Calculations |

Plotting symmetries |

Crystal symmetries are a sets of rotations and mirroring operations that leave the lattice of a crystal invariant. They form so called groups since the concatenation of to symmetry operations is again a symmetry operation. Crystal symmetries are classified in various ways - either according to the corresponding space group, or the corresponding point group, or the corresponding Laue group. In total there are 32 different point groups and 11 different Laue groups in crystallography. Traditionally, texture analysis software supports only the 11 different Laue groups. Starting with version 4.0 MTEX supports all 32 point groups. A crystal symmetry is stored in MTEX as a variable of type crystalSymmetry.

**Defining a Crystal Symmetry by the Name of its Laue Group**

cs = crystalSymmetry('m-3m') plot(cs,'upper')

cs = crystalSymmetry symmetry: m-3m a, b, c : 1, 1, 1

defines a cubic crystal symmetry using the international notation. Of course MTEX understands also the Schoenflies notation

cs = crystalSymmetry('O') plot(cs,'upper')

cs = crystalSymmetry symmetry: 432 a, b, c : 1, 1, 1

**Defining a Crystal Symmetry by the Name of its Point Group or its Space Group**

If not the name of a point group was specified but the name of a space group MTEX automatically determines the corresponding point group and assigns it to the variable.

cs = crystalSymmetry('Td'); plot(cs,'upper')

**Defining a Crystal Symmetry by a CIF and PHL Files**

Finally, MTEX allows to define a crystal symmetry by importing a crystallographic information file (*.cif)

`cs = loadCIF('quartz')`

cs = crystalSymmetry mineral : Quartz symmetry : 321 a, b, c : 4.9, 4.9, 5.4 reference frame: X||a*, Y||b, Z||c*

or a Bruker phl file. As a phl file contains usually many phases the output is a list of crystal symmetries

% import a list of crystal symmetries cs_list = loadPHL('crystal.phl'); % access the first symmetry in list cs_list{1}

ans = crystalSymmetry mineral : Magnetite density : 5.054 symmetry: m-3m a, b, c : 8.4, 8.4, 8.4

**Switching between Point, Laue and purely rotational group**

One can easily switch from any symmetry group to the corresponding Laue group by the command

```
cs = crystalSymmetry('Td')
cs.Laue
```

cs = crystalSymmetry symmetry: -43m a, b, c : 1, 1, 1 ans = crystalSymmetry symmetry: m-3m a, b, c : 1, 1, 1

Furthermore, the purely rotational part of the corresponding Laue group can be extracted by the command

cs.properGroup

ans = crystalSymmetry symmetry: 432 a, b, c : 1, 1, 1

**Extracting the Rotations of a Symmetry Group**

All proper and improper rotations of a symmetry group can be extracted by the command

rotation(cs)

ans = rotation size: 6 x 4

**Alignment of the Two Fold Axes and the Mirroring Planes**

MTEX supports different alignments of two fold axes and mirroring planes. Look at the difference between the following plots. The red dot always marks the a-axis

cs = crystalSymmetry('2mm'); plot(cs) annotate(cs.aAxis,'MarkerFaceColor','r','label','a','backgroundColor','w') figure plot(crystalSymmetry('m2m')) annotate(cs.aAxis,'MarkerFaceColor','r','label','a','backgroundColor','w') figure plot(crystalSymmetry('mm2')) annotate(cs.aAxis,'MarkerFaceColor','r','label','a','backgroundColor','w')

The same differences can be found between the symmetry groups 112, 121, 211; 11m, 1m1, m11; 321, 312; 3m1, 31m and -3m1, -31m.

Beside the symmetry group a variable of type crystalSymmetry also contains information about the crystal coordinate system. It is specified by a list [a,b,c] of axes length and a list [alpha,beta,gamma] of angles between the axes. For crystal symmetries with fixed angles the last argument can be ommitted. The syntax for a triclinic crystal system is

close all cs = crystalSymmetry('triclinic',[1,2.2,3.1],[80*degree,85*degree,95*degree])

cs = crystalSymmetry symmetry : -1 a, b, c : 1, 2.2, 3.1 alpha, beta, gamma: 80°, 85°, 95° reference frame : X||a*, Z||c

**Aligning the Orthogonal Crystal Reference Frame to the Crystal Axes**

As Euler angles and tensors are usually specified not with respect to a skew crystal coordinate frame but with respect to a orthogonal reference frame the relationship between the latter one to the crystal coordinate system has to be specified. In the case of orthorhombic and cubic crystal frames no choice has to be made. In the case of triclinic, monoclinic, trigonal and hexagonal symmetries one should explicitly define which of the crystal axes a, b, c is parallel to X, Y, Z of the orthogonal reference frame. For the axes of the dual crystal frame the notation a*, b*, c* is used. In order to specify that X is parallel a and Z is parallel to c* the syntax is

cs = crystalSymmetry('-3m',[1.7,1.7,1.4],'X||a','Z||c'); plot(cs) annotate(cs.aAxis,'MarkerFaceColor','r','label','a','backgroundColor','w')

For trigonal system the other commonly used convention is X parallel to a* and Z parallel to c which reads in MTEX as

cs = crystalSymmetry('-3m',[1.7,1.7,1.4],'X||a*','Z||c'); plot(cs) annotate(cs.aAxis,'MarkerFaceColor','r','label','a','backgroundColor','w')

applying the specimen symmetry from the left and the crystal symmetry from the right onto a orientation results in a vector containing all crystallographically equivalent orientations.

% specimen symmetry ss = specimenSymmetry('mmm'); % all crystallographically equivalent orientations ss * orientation.byEuler(0,0,pi/4,cs,ss) * cs

ans = orientation size: 8 x 12 crystal symmetry : -3m1, X||a*, Y||b, Z||c* specimen symmetry: mmm

One can also visualize crystal symmetries by plotting the main axes and the corresponding equivalent directions

h = Miller({1,0,-1,0},{1,1,-2,0},{1,0,-1,1},{1,1,-2,1},{0,0,0,1},cs); for i = 1:length(h) plot(h(i),'symmetrised','labeled','backgroundColor','w','doNotDraw','grid','upper') hold all end hold off drawNow(gcm,'figSize','normal')

DocHelp 0.1 beta |