Crystal Symmetries edit page

A crystal point group is the set of symmetry operations that leave the crystal structure indistinguishable while keeping one point fixed. Its operations form a group: applying any two in succession gives another operation from the same set.

The lattice metric may permit more operations than the arrangement of atoms does. The symmetry declared for a phase must therefore describe the phase, not merely the shape of its unit cell.

In MTEX, a symmetry is the point group under which crystal data are invariant. It is attached to a crystal frame, but is not itself that frame. The crystal frame is the Cartesian reference frame glued to the lattice basis. This distinction matters when the same abstract symmetry type is used with different axis alignments.

Symmetry also makes one physical orientation equivalent to several rotations. This equivalence controls fundamental regions, direction families, and misorientation angles throughout MTEX.

Crystallography distinguishes 230 space-group types, 32 crystallographic point-group types, and 11 Laue classes. This page starts with point groups and then shows what MTEX retains from a space group.

The 11 Proper-Rotation Groups

A proper rotation preserves handedness.

The 11 crystallographic point-group types containing only proper rotations are 1, 2, 222, 3, 32, 4, 422, 6, 622, 23, and 432. They are also called the enantiomorphic point groups.

crystalSymmetry accepts either a Hermann--Mauguin symbol

cs = crystalSymmetry('432');

or its Schoenflies equivalent. The comparison confirms that both symbols construct the same point-group type.

csSchoenflies = crystalSymmetry('O');
cs.id == csSchoenflies.id
ans =
  logical
   1

A symmetry-element plot makes the operations visible.

plot(cs)

The number of corners in a solid symbol gives the order of its proper rotation axis. The plot of 432 shows three fourfold axes along the crystal axes, four threefold axes along cube body diagonals, and six twofold axes. The rotations about these axes, together with the identity, give 24 operations.

Laue Groups

Adding rotation.inversion to a proper-rotation group gives its Laue group. union performs that construction here.

csLaue = union(cs,rotation.inversion);

plot(csLaue)

The hollow circle at the centre is the inversion. The result is also available from the Laue property. Its summary shows that 432 has become \(m\bar{3}m\) with 48 operations.

cs.Laue
ans = crystalSymmetry (⊙c→a)
 
  symmetry: m3̅m   
  elements: 48     
  a, b, c : 1, 1, 1

Every Laue group is obtained this way from one of the 11 proper-rotation groups. Its order is twice that of the proper group because every rotation occurs once without inversion and once with inversion.

The operation tables make the doubling explicit for 222.

cs = crystalSymmetry('222');
rotation(cs)
ans = rotation
  size: 2 × 2
 
  Bunge Euler angles in degree
  phi1  Phi phi2
     0    0    0
     0  180    0
   180    0    0
     0  180  180
rotation(cs.Laue)
ans = rotation
  size: 4 × 2
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
     0    0    0    0
     0  180    0    0
   180    0    0    0
     0  180  180    0
     0    0    0    1
     0  180    0    1
   180    0    0    1
     0  180  180    1

The first table contains four proper operations. The second contains those four followed by four operations carrying the Inv. flag. Laue symmetry is the apparent symmetry of diffraction intensities when Friedel's law applies. Resonant scattering can break that equivalence. See Axes and Antipodal Symmetry for the corresponding treatment of opposite directions.

Mixed Point Groups

The remaining point groups contain improper operations but do not contain inversion itself. The group mm2 is an example.

cs = crystalSymmetry('mm2');
rotation(cs)
ans = rotation
  size: 2 × 2
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
     0    0    0    0
     0  180    0    1
   180    0    0    0
     0  180  180    1
plot(cs)

The table contains two proper and two improper operations. In the plot, great circles mark the two mirror planes and the solid lens marks the twofold axis. A hollow polygon would mark an improper rotation axis.

The 10 mixed point-group types are m, mm2, 3m, -4, 4mm, -42m, -6, 6mm, -6m2, and -43m. Together with the 11 proper-rotation groups and 11 Laue groups, they make the 32 crystallographic point-group types.

Proper Group and Proper Subgroup

A mixed group has two useful associated groups, and their names are easy to confuse. Consider -4m2.

cs = crystalSymmetry('-4m2');

properGroup replaces every improper operation by the proper rotation with the same stored axis and angle. The result is 422 with eight operations.

properGroup = cs.properGroup
properGroup = crystalSymmetry (⊙c→a)
 
  symmetry: 422    
  elements: 8      
  a, b, c : 1, 1, 1

properSubGroup instead retains only the operations of the original group that are proper. The result is 222 with four operations.

properSubGroup = cs.properSubGroup
properSubGroup = crystalSymmetry (⊙c→a)
 
  symmetry: 222    
  elements: 4      
  a, b, c : 1, 1, 1

The four plots compare the original point group with both proper groups and its Laue group.

mtexFigure('layout',[2 2]);
plot(cs)
text(gca,0.03,0.97,'-4m2','Units','normalized','VerticalAlignment','top')

nextAxis
plot(properGroup)
text(gca,0.03,0.97,'422','Units','normalized','VerticalAlignment','top')

nextAxis
plot(properSubGroup)
text(gca,0.03,0.97,'222','Units','normalized','VerticalAlignment','top')

nextAxis
plot(cs.Laue)
text(gca,0.03,0.97,'4/mmm','Units','normalized','VerticalAlignment','top')

The upper-left plot contains the actual operations of -4m2. The upper-right plot is its eight-operation proper group, 422. That group is not a subgroup of -4m2. The lower-left plot is its four-operation proper subgroup, 222. The lower-right plot is the 16-operation Laue group, 4/mmm.

Alignment of the Symmetry Operations

A point-group type specifies which operations exist, but their alignment belongs to the crystal frame. The following plots show the same abstract group with its twofold axis aligned with a different crystal axis. The a-axis points east in every panel.

mtexFigure('layout',[1 3]);
cs = crystalSymmetry('2mm');
plot(cs)
text(gca,0.03,0.97,'2mm','Units','normalized','VerticalAlignment','top')
annotate(cs.aAxis,'labeled')

nextAxis
cs = crystalSymmetry('m2m');
plot(cs)
text(gca,0.03,0.97,'m2m','Units','normalized','VerticalAlignment','top')
annotate(cs.aAxis,'labeled')

nextAxis
cs = crystalSymmetry('mm2');
plot(cs)
text(gca,0.03,0.97,'mm2','Units','normalized','VerticalAlignment','top')
annotate(cs.aAxis,'labeled')

The twofold axis lies along a in the first panel, b in the second, and c in the third. Similar alternatives occur for 112, 121, 211, 11m, 1m1, m11, 321, 312, 3m1, and 31m. Choosing the wrong alignment changes how every Miller index and orientation is interpreted. See Reference System for the role of the crystal frame and Crystal Axes Alignment for changing between conventions.

Space Groups

A space group also includes translations and operations with translational parts, such as screw rotations and glide reflections. MTEX accepts a Hermann--Mauguin space-group symbol. A number is passed through the 'SpaceId' option. In either case, crystalSymmetry stores only the corresponding point group.

cs = crystalSymmetry('Fm-3m')
cs = crystalSymmetry (⊙c→a)
 
  symmetry: m3̅m   
  elements: 48     
  a, b, c : 1, 1, 1
plot(cs)

The summary identifies \(m\bar{3}m\) with 48 operations. The plot likewise contains only point-group symmetry elements. It cannot show the face centring or any translational part of \(Fm\bar{3}m\).

Computing with Symmetries

union combines compatible symmetry operations, while disjoint retains the operations common to two symmetries.

combined = union(crystalSymmetry('23'),crystalSymmetry('4'))
combined = crystalSymmetry (⊙c→a)
 
  symmetry: 432    
  elements: 24     
  a, b, c : 1, 1, 1

The operations of 23 together with the fourfold axis of 4 generate the 24 operations of 432.

common = disjoint(crystalSymmetry('432'),crystalSymmetry('622'))
common = crystalSymmetry (⊙c→a)
 
  symmetry: 222    
  elements: 4      
  a, b, c : 1, 1, 1

Cubic 432 and hexagonal 622 have the identity and three twofold rotations in common. Those four operations form 222.

Import from CIF and PHL Files

crystalSymmetry.load reads the point group, lattice parameters, and phase name from a crystallographic information file. With no extension, MTEX searches its CIF data path.

csQuartz = crystalSymmetry.load('quartz')
csQuartz = crystalSymmetry (⊙c→a)
 
  mineral        : Quartz           
  symmetry       : 321              
  elements       : 6                
  a, b, c        : 4.9, 4.9, 5.4    
  reference frame: X||a*, Y||b, Z||c

A Bruker .phl file may contain several phases, so the result is a cell array of crystal symmetries. The first entry in the bundled example is magnetite.

csList = crystalSymmetry.load('crystal.phl');
csList{1}
ans = crystalSymmetry (⊙c→a)
 
  mineral : Magnetite    
  symmetry: m3̅m         
  elements: 48           
  a, b, c : 8.4, 8.4, 8.4

References

Next

Miller Indices introduces directions and planes in the crystal frame. Operations then applies the symmetries defined here to those directions, and Fundamental Sector selects one representative from each equivalent family. A rotation together with crystal and specimen symmetry becomes an orientation.

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/CrystalSymmetries.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.