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
![](images/QuasiCrystals_01.png)
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
![](images/QuasiCrystals_02.png)
the fundamental region is orientation space, which is exactly a dodecaeder,
oR = cs.fundamentalRegion;
plot(oR)
axis off
![](images/QuasiCrystals_03.png)
or define an approbiate color key
ipfKey = ipfHSVKey(cs);
plot(ipfKey,'complete','upper','resolution',0.5*degree)
hold on
plot(cs,'SymbolSize',0.6,'linewidth',1)
hold off
![](images/QuasiCrystals_04.png)
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
![](images/QuasiCrystals_05.png)
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
![](images/QuasiCrystals_06.png)