Triclinic (TRI)#
Pearson symbol: aP
Constructor: TRI()
It is defined by six parameters \(a\), \(b\), \(c\) and \(\alpha\), \(\beta\), \(\gamma\). Standardized primitive and conventional cells in the default orientation are
Transformation matrix from standardized primitive cell to standardized conventional cell is
K-path#
TRI1a#
\(\mathrm{X-\Gamma-Y\vert L-\Gamma-Z\vert N-\Gamma-M\vert R-\Gamma}\)
Point |
\(\times\boldsymbol{b}_1^s\) |
\(\times\boldsymbol{b}_2^s\) |
\(\times\boldsymbol{b}_3^s\) |
---|---|---|---|
\(\mathrm{\Gamma}\) |
\(0\) |
\(0\) |
\(0\) |
\(\mathrm{L}\) |
\(1/2\) |
\(1/2\) |
\(0\) |
\(\mathrm{M}\) |
\(0\) |
\(1/2\) |
\(1/2\) |
\(\mathrm{N}\) |
\(1/2\) |
\(0\) |
\(1/2\) |
\(\mathrm{R}\) |
\(1/2\) |
\(1/2\) |
\(1/2\) |
\(\mathrm{X}\) |
\(1/2\) |
\(0\) |
\(0\) |
\(\mathrm{Y}\) |
\(0\) |
\(1/2\) |
\(0\) |
\(\mathrm{Z}\) |
\(0\) |
\(0\) |
\(1/2\) |
TRI2a#
\(\mathrm{X-\Gamma-Y\vert L-\Gamma-Z\vert N-\Gamma-M\vert R-\Gamma}\)
Point |
\(\times\boldsymbol{b}_1^s\) |
\(\times\boldsymbol{b}_2^s\) |
\(\times\boldsymbol{b}_3^s\) |
---|---|---|---|
\(\mathrm{\Gamma}\) |
\(0\) |
\(0\) |
\(0\) |
\(\mathrm{L}\) |
\(1/2\) |
\(1/2\) |
\(0\) |
\(\mathrm{M}\) |
\(0\) |
\(1/2\) |
\(1/2\) |
\(\mathrm{N}\) |
\(1/2\) |
\(0\) |
\(1/2\) |
\(\mathrm{R}\) |
\(1/2\) |
\(1/2\) |
\(1/2\) |
\(\mathrm{X}\) |
\(1/2\) |
\(0\) |
\(0\) |
\(\mathrm{Y}\) |
\(0\) |
\(1/2\) |
\(0\) |
\(\mathrm{Z}\) |
\(0\) |
\(0\) |
\(1/2\) |
TRI1b#
\(\mathrm{X-\Gamma-Y\vert L-\Gamma-Z\vert N-\Gamma-M\vert R-\Gamma}\)
Point |
\(\times\boldsymbol{b}_1^s\) |
\(\times\boldsymbol{b}_2^s\) |
\(\times\boldsymbol{b}_3^s\) |
---|---|---|---|
\(\mathrm{\Gamma}\) |
\(0\) |
\(0\) |
\(0\) |
\(\mathrm{L}\) |
\(1/2\) |
\(-1/2\) |
\(0\) |
\(\mathrm{M}\) |
\(0\) |
\(0\) |
\(1/2\) |
\(\mathrm{N}\) |
\(-1/2\) |
\(-1/2\) |
\(1/2\) |
\(\mathrm{R}\) |
\(0\) |
\(-1/2\) |
\(1/2\) |
\(\mathrm{X}\) |
\(0\) |
\(-1/2\) |
\(0\) |
\(\mathrm{Y}\) |
\(1/2\) |
\(0\) |
\(0\) |
\(\mathrm{Z}\) |
\(-1/2\) |
\(0\) |
\(1/2\) |
TRI2b#
\(\mathrm{X-\Gamma-Y\vert L-\Gamma-Z\vert N-\Gamma-M\vert R-\Gamma}\)
Point |
\(\times\boldsymbol{b}_1^s\) |
\(\times\boldsymbol{b}_2^s\) |
\(\times\boldsymbol{b}_3^s\) |
---|---|---|---|
\(\mathrm{\Gamma}\) |
\(0\) |
\(0\) |
\(0\) |
\(\mathrm{L}\) |
\(1/2\) |
\(-1/2\) |
\(0\) |
\(\mathrm{M}\) |
\(0\) |
\(0\) |
\(1/2\) |
\(\mathrm{N}\) |
\(-1/2\) |
\(-1/2\) |
\(1/2\) |
\(\mathrm{R}\) |
\(0\) |
\(-1/2\) |
\(1/2\) |
\(\mathrm{X}\) |
\(0\) |
\(-1/2\) |
\(0\) |
\(\mathrm{Y}\) |
\(1/2\) |
\(0\) |
\(0\) |
\(\mathrm{Z}\) |
\(-1/2\) |
\(0\) |
\(1/2\) |
Variations#
There are four variations of triclinic lattice.
TRI1a#
\(k_{\alpha} > 90^{\circ}, k_{\beta} > 90^{\circ}, k_{\gamma} > 90^{\circ}, k_{\gamma} = \min(k_{\alpha}, k_{\beta}, k_{\gamma})\)
TRI2a#
\(k_{\alpha} > 90^{\circ}, k_{\beta} > 90^{\circ}, k_{\gamma} = 90^{\circ}\)
TRI1b#
\(k_{\alpha} < 90^{\circ}, k_{\beta} < 90^{\circ}, k_{\gamma} < 90^{\circ}, k_{\gamma} = \max(k_{\alpha}, k_{\beta}, k_{\gamma})\)
TRI2b#
\(k_{\alpha} < 90^{\circ}, k_{\beta} < 90^{\circ}, k_{\gamma} = 90^{\circ}\)
In definition of the examples we cheated and defined them through reciprocal lattice parameters.
Examples#
TRI1a#
Brillouin zone and default kpath#
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI1a")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="brillouin-kpath")
# Save an image:
backend.save("tri1a_reciprocal.png")
# Interactive plot:
backend.show()
Primitive, Wigner-Seitz and conventional cells#
Click on the legend to hide a cell.
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI1a")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="primitive", label="primitive", color="black")
backend.plot(cell, kind="wigner-seitz", label="wigner-seitz", color="green")
# Save an image:
backend.save("tri1a_real.png")
# Interactive plot:
backend.show()
TRI2a#
Brillouin zone and default kpath#
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI2a")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="brillouin-kpath")
# Save an image:
backend.save("tri2a_reciprocal.png")
# Interactive plot:
backend.show()
Primitive, Wigner-Seitz and conventional cells#
Click on the legend to hide a cell.
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI2a")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="primitive", label="primitive", color="black")
backend.plot(cell, kind="wigner-seitz", label="wigner-seitz", color="green")
# Save an image:
backend.save("tri2a_real.png")
# Interactive plot:
backend.show()
TRI1b#
Brillouin zone and default kpath#
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI1b")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="brillouin-kpath")
# Save an image:
backend.save("tri1b_reciprocal.png")
# Interactive plot:
backend.show()
Primitive, Wigner-Seitz and conventional cells#
Click on the legend to hide a cell.
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI1b")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="primitive", label="primitive", color="black")
backend.plot(cell, kind="wigner-seitz", label="wigner-seitz", color="green")
# Save an image:
backend.save("tri1b_real.png")
# Interactive plot:
backend.show()
TRI2b#
Brillouin zone and default kpath#
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI2b")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="brillouin-kpath")
# Save an image:
backend.save("tri2b_reciprocal.png")
# Interactive plot:
backend.show()
Primitive, Wigner-Seitz and conventional cells#
Click on the legend to hide a cell.
import wulfric as wulf
cell = wulf.cell.get_cell_example("TRI2b")
backend = wulf.visualization.PlotlyBackend()
backend.plot(cell, kind="primitive", label="primitive", color="black")
backend.plot(cell, kind="wigner-seitz", label="wigner-seitz", color="green")
# Save an image:
backend.save("tri2b_real.png")
# Interactive plot:
backend.show()
Cell standardization#
For the triclinic cell the standardization is performed on the reciprocal primitive cell.
One of the four conditions have to be met:
\(k_{\gamma} = 90^{\circ}\) and other two angles are \(> 90^{\circ}\).
\(k_{\gamma} = 90^{\circ}\) and other two angles are \(< 90^{\circ}\).
All reciprocal cell angles (\(k_{\alpha}\), \(k_{\beta}\), \(k_{\gamma}\)) are \(> 90^{\circ}\) and \(k_{\gamma} = \min(k_{\alpha}, k_{\beta}, k_{\gamma})\).
All reciprocal cell angles (\(k_{\alpha}\), \(k_{\beta}\), \(k_{\gamma}\)) are \(< 90^{\circ}\) and \(k_{\gamma} = \max(k_{\alpha}, k_{\beta}, k_{\gamma})\).
First the reciprocal cell \(\boldsymbol{B}\) is computed from the given primitive cell \(\boldsymbol{A}\). Then the standardization matrix for the reciprocal cell :math"boldsymbol{S}_1^{r} is constructed in two steps
Step 1#
In this step we ensure either of the two conditions: all angles are \(\le 90^{\circ}\) or all angles are \(\ge 90^{\circ}\).
If \(k_{\alpha} \ge \frac{\pi}{2}\) and \(k_{\beta} \ge \frac{\pi}{2}\) and \(k_{\gamma} \ge \frac{\pi}{2}\) or \(k_{\alpha} \le \frac{\pi}{2}\) and \(k_{\beta} \le \frac{\pi}{2}\) and \(k_{\gamma} \le \frac{\pi}{2}\) then
\[(\boldsymbol{b}_1^{(1)}, \boldsymbol{b}_2^{(1)}, \boldsymbol{b}_3^{(1)}) = (\boldsymbol{b}_1, \boldsymbol{b}_2, \boldsymbol{b}_3)\]and
\[\begin{split}\boldsymbol{S}_1^{r} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\end{split}\]If \(k_{\alpha} \ge \frac{\pi}{2}\) and \(k_{\beta} \ge \frac{\pi}{2}\) and \(k_{\gamma} \le \frac{\pi}{2}\) or \(k_{\alpha} \le \frac{\pi}{2}\) and \(k_{\beta} \le \frac{\pi}{2}\) and \(k_{\gamma} \ge \frac{\pi}{2}\) then
\[(\boldsymbol{b}_1^{(1)}, \boldsymbol{b}_2^{(1)}, \boldsymbol{b}_3^{(1)}) = (-\boldsymbol{b}_1, -\boldsymbol{b}_2, \boldsymbol{b}_3)\]and
\[\begin{split}\boldsymbol{S}_1 = \begin{pmatrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\end{split}\]If \(k_{\alpha} \ge \frac{\pi}{2}\) and \(k_{\beta} \le \frac{\pi}{2}\) and \(k_{\gamma} \ge \frac{\pi}{2}\) or \(k_{\alpha} \le \frac{\pi}{2}\) and \(k_{\beta} \ge \frac{\pi}{2}\) and \(k_{\gamma} \le \frac{\pi}{2}\) then
\[(\boldsymbol{b}_1^{(1)}, \boldsymbol{b}_2^{(1)}, \boldsymbol{b}_3^{(1)}) = (-\boldsymbol{b}_1, \boldsymbol{b}_2, -\boldsymbol{b}_3)\]and
\[\begin{split}\boldsymbol{S}_1 = \begin{pmatrix} -1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end{pmatrix}\end{split}\]If \(k_{\alpha} \le \frac{\pi}{2}\) and \(k_{\beta} \ge \frac{\pi}{2}\) and \(k_{\gamma} \ge \frac{\pi}{2}\) or \(k_{\alpha} \ge \frac{\pi}{2}\) and \(k_{\beta} \le \frac{\pi}{2}\) and \(k_{\gamma} \le \frac{\pi}{2}\) then
\[(\boldsymbol{b}_1^{(1)}, \boldsymbol{b}_2^{(1)}, \boldsymbol{b}_3^{(1)}) = (\boldsymbol{b}_1, -\boldsymbol{b}_2, -\boldsymbol{b}_3)\]and
\[\begin{split}\boldsymbol{S}_1 = \begin{pmatrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & -1 \end{pmatrix}\end{split}\]
Step 2#
At this step we ensure that \(k_{\gamma}\) is an appropriate extremum.
If \(k_{\gamma} = min(k_{\alpha}, k_{\beta}, k_{\gamma})\) and \(k_{\gamma} \ge \frac{\pi}{2}\) or \(k_{\gamma} = max(k_{\alpha}, k_{\beta}, k_{\gamma})\) and \(k_{\gamma} \le \frac{\pi}{2}\) then
\[(\boldsymbol{b}_1^s, \boldsymbol{b}_2^s, \boldsymbol{b}_3^s) = (\boldsymbol{b}_1^{(1)}, \boldsymbol{b}_2^{(1)}, \boldsymbol{b}_3^{(1)})\]and
\[\begin{split}\boldsymbol{S}_2 = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\end{split}\]If \(k_{\beta} = min(k_{\alpha}, k_{\beta}, k_{\gamma})\) and \(k_{\beta} \ge \frac{\pi}{2}\) or \(k_{\beta} = max(k_{\alpha}, k_{\beta}, k_{\gamma})\) and \(k_{\beta} \le \frac{\pi}{2}\) then
\[(\boldsymbol{b}_1^s, \boldsymbol{b}_2^s, \boldsymbol{b}_3^s) = (\boldsymbol{b}_3^{(1)}, \boldsymbol{b}_1^{(1)}, \boldsymbol{b}_2^{(1)})\]and
\[\begin{split}\boldsymbol{S}_2 = \begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{pmatrix}\end{split}\]If \(k_{\alpha} = min(k_{\alpha}, k_{\beta}, k_{\gamma})\) and \(k_{\alpha} \ge \frac{\pi}{2}\) or \(k_{\alpha} = max(k_{\alpha}, k_{\beta}, k_{\gamma})\) and \(k_{\alpha} \le \frac{\pi}{2}\) then
\[(\boldsymbol{b}_1^s, \boldsymbol{b}_2^s, \boldsymbol{b}_3^s) = (\boldsymbol{b}_2^{(1)}, \boldsymbol{b}_3^{(1)}, \boldsymbol{b}_1^{(1)})\]and
\[\begin{split}\boldsymbol{S}_2 = \begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}\end{split}\]