Quasi symmetry edit page

By quasi crystals we mean materials with a non crystallographic symmetry group, e.g. including a pentagonal or decagonal symmetry axis. Such symmetry groups do not lead to perfect translational invariant lattices and hence are not crystals.

Setting up a non standard symmetry group can be done by specifying all its symmetry elements. To illustrate this definition lets consider the symmetry group corresponding to the dodecaeder which is generated by a 5 fold and a 3 fold symmetry axis.

rot2 = rotation.byAxisAngle(vector3d.Z,180*degree);
a5 = normalize(vector3d(0,2/(1+sqrt(5)),1));
rot5 = rotation.byAxisAngle(a5,72*degree);
%rot3 = rotation.byAxisAngle(vector3d.byPolar(20.9054*degree,90*degree),120*degree);

cs = crystalSymmetry.byElements([rot5,rot2])

plot(cs,'symbolSize',0.5,'projection','eangle','grid','on')
cs = crystalSymmetry
 
  symmetry          : unkwown         
  elements          : 60              
  a, b, c           : 1, 1, 1         
  alpha, beta, gamma: 90°, 90°, 90°   
  reference frame   : X||a, Y||b, Z||c

Many of the MTEX methods do work also with quasi symmetries. E.g. we can identify the fundamental sector by

hold on
plot(cs.fundamentalSector,'color','red')
hold off

the fundamental region is orientation space, which is exactly a dodecaeder,

oR = cs.fundamentalRegion;
plot(oR)
axis off

or define an appropriate color key

ipfKey = ipfHSVKey(cs);

plot(ipfKey,'complete','upper','resolution',0.5*degree)
hold on
plot(cs,'SymbolSize',0.6,'linewidth',1)
hold off

We may also choose a different setup where the 5 fold axis is aligned parallel to z

rot5 = rotation.byAxisAngle(zvector,72*degree);
rot3 = rotation.byAxisAngle(vector3d('polar',37.377*degree,0) ,120*degree);

cs = crystalSymmetry.byElements([rot5,rot3])

plot(cs,'symbolSize',0.5,'projection','eangle','grid','on')
cs = crystalSymmetry
 
  symmetry          : unkwown         
  elements          : 60              
  a, b, c           : 1, 1, 1         
  alpha, beta, gamma: 90°, 90°, 90°   
  reference frame   : X||a, Y||b, Z||c

or include the inversion

cs = crystalSymmetry.byElements([rot5,rot3,rotation.inversion])

ipfKey = ipfHSVKey(cs);

plot(ipfKey,'complete','upper','resolution',0.5*degree)

hold on
plot(cs,'symbolSize',0.6,'linewidth',2)
hold off
cs = crystalSymmetry
 
  symmetry          : unkwown         
  elements          : 120             
  a, b, c           : 1, 1, 1         
  alpha, beta, gamma: 90°, 90°, 90°   
  reference frame   : X||a, Y||b, Z||c