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 3.225 seconds)

Gallery generated by Sphinx-Gallery