Note
Go to the end to download the full example code.
Wigner-Seitz cell#
This page explains how to plot Wigner-Seitz cell of the direct lattice and Brillouin zone.
We use FCC cell as an example.
import wulfric
cell = wulfric.cell.SC_FCC(a=3)
When wulfric plots Wigner-Seitz cell for any given cell, it assumes that cell
contains exactly one lattice point.
pe = wulfric.PlotlyEngine(_sphinx_gallery_fix=True)
pe.plot_cell(cell=cell, legend_label="Original cell")
pe.plot_wigner_seitz_cell(
cell=cell, plot_vectors=False, color="green", legend_label="Wigner-Seitz cell"
)
pe.show()
Brillouin zone#
Brillouin zone is simply a Wigner-Seitz cell of the reciprocal cell.
Therefore, Brillouin zone can be plotted in two equivalent ways.
rcell = wulfric.cell.get_reciprocal(cell=cell)
pe = wulfric.PlotlyEngine(_sphinx_gallery_fix=True)
# Brillouin zone from direct cell
pe.plot_brillouin_zone(cell=cell, legend_label="Brillouin zone: method 1", color="red")
# Brillouin zone from reciprocal cell
pe.plot_wigner_seitz_cell(
cell=rcell,
legend_label="Brillouin zone: method 2",
color="blue",
shift=(-6, 0, 0),
vector_label="b",
)
pe.show()
Other Brillouin zones#
By default wulfric plots first Brillouin zone. If you need to plot other ones, use
shift.
pe = wulfric.PlotlyEngine(_sphinx_gallery_fix=True)
pe.plot_brillouin_zone(cell=cell, legend_label="First Brillouin zone", color="green")
# Compute shift along the first reciprocal lattice vector in absolute coordinates
shift = (1, 0, 0) @ rcell
pe.plot_brillouin_zone(
cell=cell,
legend_label="Second Brillouin zone along +b1",
color="red",
shift=shift,
plot_vectors=False,
)
pe.plot_brillouin_zone(
cell=cell,
legend_label="Second Brillouin zone along -b1",
color="blue",
shift=-shift,
plot_vectors=False,
)
pe.show()
Total running time of the script: (0 minutes 4.021 seconds)