Rhombohedral (RHL)#

Pearson symbol: hR

Constructor: RHL()

It is defined by two parameter: \(a\) and \(\alpha\) with primitive and conventional lattice:

\[\begin{split}\begin{matrix} \boldsymbol{a}_1 &=& (a\cos(\alpha / 2), &-a\sin(\alpha/2), &0)\\ \boldsymbol{a}_2 &=& (a\cos(\alpha / 2), &a\sin(\alpha/2), &0)\\ \boldsymbol{a}_3 &=& \left(\dfrac{\cos\alpha}{\cos(\alpha/2)}\right., &0, &\left.a\sqrt{1 - \dfrac{\cos^2\alpha}{\cos^2(\alpha/2)}}\right) \end{matrix}\end{split}\]

Cell standardization#

No standardization is performed.

K-path#

RHL1#

\(\mathrm{\Gamma-L-B_1\vert B-Z-\Gamma-X\vert Q-F-P_1-Z\vert L-P}\)

\[\begin{matrix} \eta = \dfrac{1 + 4\cos\alpha}{2 + 4\cos\alpha} & \nu = \dfrac{3-2\eta}{4} \end{matrix}\]

Point

\(\times\boldsymbol{b}_1\)

\(\times\boldsymbol{b}_2\)

\(\times\boldsymbol{b}_3\)

\(\mathrm{\Gamma}\)

\(0\)

\(0\)

\(0\)

\(\mathrm{B}\)

\(\eta\)

\(1/2\)

\(1 - \eta\)

\(\mathrm{B_1}\)

\(1/2\)

\(1-\eta\)

\(\eta - 1\)

\(\mathrm{F}\)

\(1/2\)

\(1/2\)

\(0\)

\(\mathrm{L}\)

\(1/2\)

\(0\)

\(0\)

\(\mathrm{L_1}\)

\(0\)

\(0\)

\(-1/2\)

\(\mathrm{P}\)

\(\eta\)

\(\nu\)

\(\nu\)

\(\mathrm{P_1}\)

\(1-\nu\)

\(1-\nu\)

\(1-\eta\)

\(\mathrm{P_2}\)

\(\nu\)

\(\nu\)

\(\eta - 1\)

\(\mathrm{Q}\)

\(1-\nu\)

\(\nu\)

\(0\)

\(\mathrm{X}\)

\(\nu\)

\(0\)

\(-\nu\)

\(\mathrm{Z}\)

\(1/2\)

\(1/2\)

\(1/2\)

RHL2#

\(\mathrm{\Gamma-P-Z-Q-\Gamma-F-P_1-Q_1-L-Z}\)

\[\begin{matrix} \eta = \dfrac{1}{2\tan^2(\alpha/2)} & \nu = \dfrac{3-2\eta}{4} \end{matrix}\]

Point

\(\times\boldsymbol{b}_1\)

\(\times\boldsymbol{b}_2\)

\(\times\boldsymbol{b}_3\)

\(\mathrm{\Gamma}\)

\(0\)

\(0\)

\(0\)

\(\mathrm{F}\)

\(1/2\)

\(-1/2\)

\(0\)

\(\mathrm{L}\)

\(1/2\)

\(0\)

\(0\)

\(\mathrm{P}\)

\(1-\nu\)

\(-\nu\)

\(1-\nu\)

\(\mathrm{P_1}\)

\(\nu\)

\(\nu-1\)

\(\nu-1\)

\(\mathrm{Q}\)

\(\eta\)

\(\eta\)

\(\eta\)

\(\mathrm{Q_1}\)

\(1-\eta\)

\(-\eta\)

\(-\eta\)

\(\mathrm{Z}\)

\(1/2\)

\(-1/2\)

\(1/2\)

Variations#

There are two variations for rhombohedral lattice.

RHL1#

\(\alpha < 90^{\circ}\).

Predefined example: rhl1 with \(a = \pi\) and \(\alpha = 70^{\circ}\)

RHL2#

\(\alpha > 90^{\circ}\).

Predefined example: rhl2 with \(a = \pi\) and \(\alpha = 110^{\circ}\)

Examples#

RHL1#

Brillouin zone and default kpath#

# RAD-tools - Sandbox (mainly condense matter plotting).
# Copyright (C) 2022-2024  Andrey Rybakov
#
# e-mail: anry@uv.es, web: rad-tools.org
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

import radtools as rad

l = rad.lattice_example("RHL1")
backend = rad.PlotlyBackend()
backend.plot(l, kind="brillouin-kpath")
# Save an image:
backend.save("rhl1_brillouin.png")
# Interactive plot:
backend.show()

Primitive and conventional cell#

# RAD-tools - Sandbox (mainly condense matter plotting).
# Copyright (C) 2022-2024  Andrey Rybakov
#
# e-mail: anry@uv.es, web: rad-tools.org
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

import radtools as rad

l = rad.lattice_example("RHL1")
backend = rad.PlotlyBackend()
backend.plot(l, kind="primitive")
# Save an image:
backend.save("rhl1_real.png")
# Interactive plot:
backend.show()

Wigner-Seitz cell#

# RAD-tools - Sandbox (mainly condense matter plotting).
# Copyright (C) 2022-2024  Andrey Rybakov
#
# e-mail: anry@uv.es, web: rad-tools.org
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

import radtools as rad

l = rad.lattice_example("RHL1")
backend = rad.PlotlyBackend()
backend.plot(l, kind="wigner-seitz")
# Save an image:
backend.save("rhl1_wigner-seitz.png")
# Interactive plot:
backend.show()

RHL2#

Brillouin zone and default kpath#

# RAD-tools - Sandbox (mainly condense matter plotting).
# Copyright (C) 2022-2024  Andrey Rybakov
#
# e-mail: anry@uv.es, web: rad-tools.org
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

import radtools as rad

l = rad.lattice_example("RHL2")
backend = rad.PlotlyBackend()
backend.plot(l, kind="brillouin-kpath")
# Save an image:
backend.save("rhl2_brillouin.png")
# Interactive plot:
backend.show()

Primitive and conventional cell#

# RAD-tools - Sandbox (mainly condense matter plotting).
# Copyright (C) 2022-2024  Andrey Rybakov
#
# e-mail: anry@uv.es, web: rad-tools.org
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

import radtools as rad

l = rad.lattice_example("RHL2")
backend = rad.PlotlyBackend()
backend.plot(l, kind="primitive")
# Save an image:
backend.save("rhl2_real.png")
# Interactive plot:
backend.show()

Wigner-Seitz cell#

# RAD-tools - Sandbox (mainly condense matter plotting).
# Copyright (C) 2022-2024  Andrey Rybakov
#
# e-mail: anry@uv.es, web: rad-tools.org
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

import radtools as rad

l = rad.lattice_example("RHL2")
backend = rad.PlotlyBackend()
backend.plot(l, kind="wigner-seitz")
# Save an image:
backend.save("rhl2_wigner-seitz.png")
# Interactive plot:
backend.show()

Edge cases#

In rhombohedral lattice \(a = b = c\) and \(\alpha = \beta = \gamma\), thus three edge cases exist:

If \(\alpha = 60^{\circ}\), then the lattice is Face-centred cubic (FCC)

If \(\alpha \approx 109.47122063^{\circ}\) (\(\cos(\alpha) = -1/3\)), then the lattice is Body-centered cubic (BCC).

If \(\alpha = 90^{\circ}\), then the lattice is Cubic (CUB).