Body-centred tetragonal (BCT)#
Pearson symbol: tI
Constructor: BCT()
It is defined by two parameters: \(a\) and \(c\) with conventional cell:
And primitive cell:
with
Order of parameters: \(a \ne c\)
K-path#
BCT1#
\(\mathrm{\Gamma-X-M-\Gamma-Z-P-N-Z_1-M\vert X-P}\)
Point |
\(\times\boldsymbol{b}_1\) |
\(\times\boldsymbol{b}_2\) |
\(\times\boldsymbol{b}_3\) |
|---|---|---|---|
\(\mathrm{\Gamma}\) |
\(0\) |
\(0\) |
\(0\) |
\(\mathrm{M}\) |
\(-1/2\) |
\(1/2\) |
\(1/2\) |
\(\mathrm{N}\) |
\(0\) |
\(1/2\) |
\(0\) |
\(\mathrm{P}\) |
\(1/4\) |
\(1/4\) |
\(1/4\) |
\(\mathrm{X}\) |
\(0\) |
\(0\) |
\(1/2\) |
\(\mathrm{Z}\) |
\(\eta\) |
\(\eta\) |
\(-\eta\) |
\(\mathrm{Z}_1\) |
\(-\eta\) |
\(1-\eta\) |
\(\eta\) |
BCT2#
\(\mathrm{\Gamma-X-Y-\Sigma-\Gamma-Z-\Sigma_1-N-P-Y_1-Z\vert X-P}\)
Point |
\(\times\boldsymbol{b}_1\) |
\(\times\boldsymbol{b}_2\) |
\(\times\boldsymbol{b}_3\) |
|---|---|---|---|
\(\mathrm{\Gamma}\) |
\(0\) |
\(0\) |
\(0\) |
\(\mathrm{N}\) |
\(0\) |
\(1/2\) |
\(0\) |
\(\mathrm{P}\) |
\(1/4\) |
\(1/4\) |
\(1/4\) |
\(\mathrm{\Sigma}\) |
\(-\eta\) |
\(\eta\) |
\(\eta\) |
\(\mathrm{\Sigma_1}\) |
\(\eta\) |
\(1-\eta\) |
\(-\eta\) |
\(\mathrm{X}\) |
\(0\) |
\(0\) |
\(1/2\) |
\(\mathrm{Y}\) |
\(-\zeta\) |
\(\zeta\) |
\(1/2\) |
\(\mathrm{Y}_1\) |
\(1/2\) |
\(1/2\) |
\(-\zeta\) |
\(\mathrm{Z}\) |
\(1/2\) |
\(1/2\) |
\(-1/2\) |
Variations#
There are two variations of body-centered tetragonal lattice.
BCT1#
\(c < a\).
Predefined example: bct1 with \(a = 1.5\pi\) and \(c = \pi\).
BCT2#
\(c > a\).
Predefined example: bct2 with \(a = \pi\) and \(c = 1.5\pi\).
Examples#
BCT1#
Brillouin zone and default kpath#
# Wulfric - Crystal, Lattice, Atoms, K-path.
# Copyright (C) 2023-2024 Andrey Rybakov
#
# e-mail: anry@uv.es, web: adrybakov.com
#
# 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 wulfric as wulf
l = wulf.lattice_example("{name}")
# Standardization is explicit since 0.3
l.standardize()
backend = wulf.PlotlyBackend()
backend.plot(l, kind="brillouin-kpath")
# Save an image:
backend.save("bct1_brillouin.png")
# Interactive plot:
backend.show()
Primitive and conventional cell#
# Wulfric - Crystal, Lattice, Atoms, K-path.
# Copyright (C) 2023-2024 Andrey Rybakov
#
# e-mail: anry@uv.es, web: adrybakov.com
#
# 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 wulfric as wulf
l = wulf.lattice_example("{name}")
# Standardization is explicit since 0.3
l.standardize()
backend = wulf.PlotlyBackend()
backend.plot(l, kind="primitive", label="primitive")
backend.plot(l, kind="conventional", label="conventional", color="black")
# Save an image:
backend.save("bct1_real.png")
# Interactive plot:
backend.show()
Wigner-Seitz cell#
# Wulfric - Crystal, Lattice, Atoms, K-path.
# Copyright (C) 2023-2024 Andrey Rybakov
#
# e-mail: anry@uv.es, web: adrybakov.com
#
# 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 wulfric as wulf
l = wulf.lattice_example("{name}")
# Standardization is explicit since 0.3
l.standardize()
backend = wulf.PlotlyBackend()
backend.plot(l, kind="wigner-seitz")
# Save an image:
backend.save("bct1_wigner-seitz.png")
# Interactive plot:
backend.show()
BCT2#
Brillouin zone and default kpath#
# Wulfric - Crystal, Lattice, Atoms, K-path.
# Copyright (C) 2023-2024 Andrey Rybakov
#
# e-mail: anry@uv.es, web: adrybakov.com
#
# 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 wulfric as wulf
l = wulf.lattice_example("{name}")
# Standardization is explicit since 0.3
l.standardize()
backend = wulf.PlotlyBackend()
backend.plot(l, kind="brillouin-kpath")
# Save an image:
backend.save("bct2_brillouin.png")
# Interactive plot:
backend.show()
Primitive and conventional cell#
# Wulfric - Crystal, Lattice, Atoms, K-path.
# Copyright (C) 2023-2024 Andrey Rybakov
#
# e-mail: anry@uv.es, web: adrybakov.com
#
# 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 wulfric as wulf
l = wulf.lattice_example("{name}")
# Standardization is explicit since 0.3
l.standardize()
backend = wulf.PlotlyBackend()
backend.plot(l, kind="primitive", label="primitive")
backend.plot(l, kind="conventional", label="conventional", color="black")
# Save an image:
backend.save("bct2_real.png")
# Interactive plot:
backend.show()
Wigner-Seitz cell#
# Wulfric - Crystal, Lattice, Atoms, K-path.
# Copyright (C) 2023-2024 Andrey Rybakov
#
# e-mail: anry@uv.es, web: adrybakov.com
#
# 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 wulfric as wulf
l = wulf.lattice_example("{name}")
# Standardization is explicit since 0.3
l.standardize()
backend = wulf.PlotlyBackend()
backend.plot(l, kind="wigner-seitz")
# Save an image:
backend.save("bct2_wigner-seitz.png")
# Interactive plot:
backend.show()
Cell standardization#
Condition \(a \ne c\) result in the condition \(\alpha = \beta \ne \gamma\) for the primitive cell in a standard form, in practice this condition simplifies to \(\boldsymbol{a}_2^s\cdot\boldsymbol{a}_3^s = \boldsymbol{a}_1^s\cdot\boldsymbol{a}_3^s \ne \boldsymbol{a}_1^s\cdot\boldsymbol{a}_2^s\) for the primitive cell in a standard form. We use angles of the primitive cell for standardization.
If \(\alpha = \beta \ne \gamma\) (i.e. \(\boldsymbol{a}_2\cdot\boldsymbol{a}_3 = \boldsymbol{a}_1\cdot\boldsymbol{a}_3 \ne \boldsymbol{a}_1\cdot\boldsymbol{a}_2\)), then
\[(\boldsymbol{a}_1^s, \boldsymbol{a}_2^s, \boldsymbol{a}_3^s) = (\boldsymbol{a}_1, \boldsymbol{a}_2, \boldsymbol{a}_3)\]and
\[\begin{split}\boldsymbol{S} = \boldsymbol{S}^{-1} = \boldsymbol{S}^T = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\end{split}\]If \(\beta = \gamma \ne \alpha\) (i.e. \(\boldsymbol{a}_1\cdot\boldsymbol{a}_3 = \boldsymbol{a}_1\cdot\boldsymbol{a}_2 \ne \boldsymbol{a}_2\cdot\boldsymbol{a}_3\)), then
\[(\boldsymbol{a}_1^s, \boldsymbol{a}_2^s, \boldsymbol{a}_3^s) = (\boldsymbol{a}_2, \boldsymbol{a}_3, \boldsymbol{a}_1)\]and
\[\begin{split}\boldsymbol{S} = \begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{pmatrix} \qquad \boldsymbol{S}^{-1} = \boldsymbol{S}^T = \begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}\end{split}\]If \(\alpha = \gamma \ne \beta\) (i.e. \(\boldsymbol{a}_2\cdot\boldsymbol{a}_3 = \boldsymbol{a}_1\cdot\boldsymbol{a}_2 \ne \boldsymbol{a}_1\cdot\boldsymbol{a}_3\)), then
\[(\boldsymbol{a}_1^s, \boldsymbol{a}_2^s, \boldsymbol{a}_3^s) = (\boldsymbol{a}_3, \boldsymbol{a}_1, \boldsymbol{a}_2)\]and
\[\begin{split}\boldsymbol{S} = \begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix} \qquad \boldsymbol{S}^{-1} = \boldsymbol{S}^T = \begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{pmatrix}\end{split}\]
Edge cases#
If \(a = c\) then the lattice is Body-centered cubic (BCC).