Note
Go to the end to download the full example code.
ORCF2#
Face-centred orthorhombic cell is defined by three parameters \(a\), \(b\) and \(c\) with \(a < b < c\).
ORCF lattice has variation ORCF2 when \(\dfrac{1}{a^2} < \dfrac{1}{b^2} + \dfrac{1}{c^2}\).
Cell constructor#
To get an example of the cell use wulfric.cell.SC_ORCF().
wulfric.cell.sc_get_example() returns an example where
\(a = 1.2\pi\), \(b = 5\pi/4\) and \(c = 5\pi/3\).
import wulfric
cell = wulfric.cell.sc_get_example("ORCF2")
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 == "ORCF2"
print(variation)
ORCF2
K-path#
print(kp.path_string)
GAMMA-Y-C-D-X-GAMMA-Z-D1-H-C|C1-Z|X-H1|H-Y|L-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
C 0.5000 0.1492 0.6492 0.4973 1.6000 0.0000
C1 0.5000 0.8508 0.3508 1.1693 -0.0000 1.2000
D 0.1194 0.5000 0.6194 1.6667 0.3819 0.0000
D1 0.8806 0.5000 0.3806 -0.0000 1.2181 1.2000
L 0.5000 0.5000 0.5000 0.8333 0.8000 0.6000
H 0.7878 0.2878 0.5000 0.0000 1.6000 0.6907
H1 0.2122 0.7122 0.5000 1.6667 -0.0000 0.5093
X -0.0000 0.5000 0.5000 1.6667 -0.0000 -0.0000
Y 0.5000 0.0000 0.5000 0.0000 1.6000 -0.0000
Z 0.5000 0.5000 0.0000 0.0000 0.0000 1.2000
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)
Edge cases#
If \(a = b \ne c\) or \(a = c \ne b\) or \(b = c \ne a\), then the lattice is BCT1 or BCT2.
If \(a = b = c\), then the lattice is FCC.
Total running time of the script: (0 minutes 2.105 seconds)