Note
Go to the end to download the full example code.
MCLC3#
Base-centered monoclinic cell is defined by four parameters \(a\), \(b\), \(c\) and \(\alpha\) with \(b \le c\), \(\alpha < 90^{\circ}\).
MCLC lattice has variation MCLC3 when \(k_{\gamma} < 90^{\circ}\) and \(\dfrac{b\cos(\alpha)}{c} + \dfrac{b^2\sin(\alpha)^2}{a^2} < 1\).
Cell constructor#
To get an example of the cell use wulfric.cell.SC_MCLC().
wulfric.cell.sc_get_example() returns an example where
\(a = 1.1\cdot\sin(78)\cdot\pi\), \(b = \pi\), \(c = 1.8\cdot 121\cdot\cos(65)\cdot\pi/21\) and \(\alpha = 78^{\circ}\).
import wulfric
cell = wulfric.cell.sc_get_example("MCLC3")
atoms = dict(positions=[[0, 0, 0]], spglib_types=[1])
# To avoid multiple calls to spglib one can do it once and then pass spglib_data
# to the functions where it is needed
spglib_data = wulfric.get_spglib_data(cell=cell, atoms=atoms)
kp = wulfric.Kpoints.from_crystal(cell=cell, atoms=atoms, convention="SC")
conv_cell, conv_atoms = wulfric.crystal.get_conventional(
cell=cell, atoms=atoms, convention="SC", spglib_data=spglib_data
)
prim_cell, prim_atoms = wulfric.crystal.get_primitive(
cell=cell, atoms=atoms, convention="SC", spglib_data=spglib_data
)
variation = wulfric.crystal.sc_get_variation(
cell=cell, atoms=atoms, spglib_data=spglib_data
)
assert variation == "MCLC3"
print(variation)
MCLC3
K-path#
print(kp.path_string)
GAMMA-Y-F-H-Z-I-F1|H1-Y1-X-GAMMA-N|M-GAMMA
High-symmetry points#
print(kp.hs_table(decimals=4))
Name rel_b1 rel_b2 rel_b3 k_x k_y k_z
GAMMA 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
F 0.4798 0.4798 0.4819 0.0000 1.9194 0.0490
F1 0.5202 -0.4798 0.5181 1.8588 0.0806 0.4741
F2 0.4798 -0.5202 0.4819 1.8588 -0.0806 0.4741
H 0.4520 0.4520 0.9053 0.0000 1.8082 0.4741
H1 0.5480 -0.4520 0.0947 1.8588 0.1918 0.0490
H2 -0.4520 -0.4520 0.0947 -0.0000 -1.8082 0.4741
I 0.5000 -0.5000 0.5000 1.8588 0.0000 0.4741
M 0.5000 0.0000 0.5000 0.9294 1.0000 0.2616
N 0.5000 0.0000 -0.0000 0.9294 1.0000 -0.2126
N1 0.0000 -0.5000 0.0000 0.9294 -1.0000 0.2126
X 0.5000 -0.5000 0.0000 1.8588 0.0000 0.0000
Y 0.4659 0.4659 0.1936 0.0000 1.8638 -0.2126
Y1 0.5341 -0.4659 -0.1936 1.8588 0.1362 -0.2126
Y2 -0.4659 -0.4659 -0.1936 -0.0000 -1.8638 0.2126
Y3 0.4659 -0.5341 0.1936 1.8588 -0.1362 0.2126
Z 0.0000 0.0000 0.5000 0.0000 0.0000 0.4741
Brillouin zone and default k-path#
pe = wulfric.PlotlyEngine(_sphinx_gallery_fix=True)
pe.plot_brillouin_zone(
cell=prim_cell, color="red", legend_label="Brillouin zone of the primitive cell"
)
pe.plot_brillouin_zone(
cell=cell, color="chocolate", legend_label="Brillouin zone of the original cell"
)
pe.plot_kpath(kp=kp)
pe.plot_kpoints(kp=kp, only_from_kpath=True)
pe.show(axes_visible=False)
Cells of real space#
pe = wulfric.PlotlyEngine(_sphinx_gallery_fix=True)
pe.plot_cell(cell=cell, legend_label="Original cell", color="Chocolate")
pe.plot_cell(cell=prim_cell, legend_label="Primitive cell", color="Black")
pe.plot_cell(cell=conv_cell, legend_label="Conventional cell", color="Blue")
pe.plot_wigner_seitz_cell(
cell=prim_cell, legend_label="Wigner-Seitz cell", color="green"
)
pe.show(axes_visible=False)
Total running time of the script: (0 minutes 1.998 seconds)