sisl.physics.brillouinzone module

Different tools for contsructing k-points and paths in the Brillouin zone

class sisl.physics.brillouinzone.BrillouinZone(sc)[source]

Bases: sisl.supercell.SuperCellChild

A class to construct Brillouin zone related quantities

It takes a super-cell as an argument and can then return the k-points in non-reduced units from reduced units.

Attributes

cell Returns the inherent SuperCell objects cell
n_s Returns the inherent SuperCell objects n_s
nsc Returns the inherent SuperCell objects nsc
rcell Returns the inherent SuperCell objects rcell
sc_off Returns the inherent SuperCell objects sc_off
vol Returns the inherent SuperCell objects vol

Methods

__call__(k[, reduced]) Return the k-point in 1/Ang coordinates
add_vacuum(vacuum, axis) Add vacuum along the axis lattice vector
is_orthogonal() Return true if all cell vectors are linearly independent
k(kb) Return the k-point in 1/Ang coordinates
kb(k) Return the k-point in reduced coordinates
sc_index(*args, **kwargs) Call local SuperCell object sc_index function
set_nsc(nsc) Set the number of super-cells in the SuperCell object
set_sc(sc) Overwrites the local supercell
set_supercell(sc) Overwrites the local supercell

Initialize a BrillouinZone object from a given SuperCell

Parameters:

sc : SuperCell or array_like

the attached supercell

Attributes

cell Returns the inherent SuperCell objects cell
n_s Returns the inherent SuperCell objects n_s
nsc Returns the inherent SuperCell objects nsc
rcell Returns the inherent SuperCell objects rcell
sc_off Returns the inherent SuperCell objects sc_off
vol Returns the inherent SuperCell objects vol

Methods

__call__(k[, reduced]) Return the k-point in 1/Ang coordinates
add_vacuum(vacuum, axis) Add vacuum along the axis lattice vector
is_orthogonal() Return true if all cell vectors are linearly independent
k(kb) Return the k-point in 1/Ang coordinates
kb(k) Return the k-point in reduced coordinates
sc_index(*args, **kwargs) Call local SuperCell object sc_index function
set_nsc(nsc) Set the number of super-cells in the SuperCell object
set_sc(sc) Overwrites the local supercell
set_supercell(sc) Overwrites the local supercell
k(kb)[source]

Return the k-point in 1/Ang coordinates

kb(k)[source]

Return the k-point in reduced coordinates

class sisl.physics.brillouinzone.PathBZ(sc, points, divisions)[source]

Bases: sisl.physics.brillouinzone.BrillouinZone

Create a path in the Brillouin zone for plotting band-structures etc.

Attributes

cell Returns the inherent SuperCell objects cell
n_s Returns the inherent SuperCell objects n_s
nsc Returns the inherent SuperCell objects nsc
rcell Returns the inherent SuperCell objects rcell
sc_off Returns the inherent SuperCell objects sc_off
vol Returns the inherent SuperCell objects vol

Methods

__call__(k[, reduced]) Return the k-point in 1/Ang coordinates
add_vacuum(vacuum, axis) Add vacuum along the axis lattice vector
is_orthogonal() Return true if all cell vectors are linearly independent
k(kb) Return the k-point in 1/Ang coordinates
kb(k) Return the k-point in reduced coordinates
lineark() A 1D array which corresponds to the delta-k values of the path
sc_index(*args, **kwargs) Call local SuperCell object sc_index function
set_nsc(nsc) Set the number of super-cells in the SuperCell object
set_sc(sc) Overwrites the local supercell
set_supercell(sc) Overwrites the local supercell

Instantiate the PathBZ by a set of special points separated in divisions

Parameters:

sc : SuperCell or array_like

the unit-cell of the Brillouin zone

points : array_like of float

a list of points that are the corners of the path

divisions : int or array_like of int

number of divisions in each segment. If a single integer is passed it is the total number of points on the path (equally separated). If it is an array_like input it must have length one less than points.

Attributes

cell Returns the inherent SuperCell objects cell
n_s Returns the inherent SuperCell objects n_s
nsc Returns the inherent SuperCell objects nsc
rcell Returns the inherent SuperCell objects rcell
sc_off Returns the inherent SuperCell objects sc_off
vol Returns the inherent SuperCell objects vol

Methods

__call__(k[, reduced]) Return the k-point in 1/Ang coordinates
add_vacuum(vacuum, axis) Add vacuum along the axis lattice vector
is_orthogonal() Return true if all cell vectors are linearly independent
k(kb) Return the k-point in 1/Ang coordinates
kb(k) Return the k-point in reduced coordinates
lineark() A 1D array which corresponds to the delta-k values of the path
sc_index(*args, **kwargs) Call local SuperCell object sc_index function
set_nsc(nsc) Set the number of super-cells in the SuperCell object
set_sc(sc) Overwrites the local supercell
set_supercell(sc) Overwrites the local supercell
lineark()[source]

A 1D array which corresponds to the delta-k values of the path

This is meant for plotting

Examples

>>> p = PathBZ(...)
>>> eigs = Hamiltonian.eigh(p)
>>> for i in range(len(Hamiltonian)):
>>>     pyplot.plot(p.lineark(), eigs[:, i])