PathBZ

class sisl.physics.PathBZ(obj, point, division, name=None)[source]

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

Attributes

cell
k A list of all k-points (if available)
rcell
weight Weight of the k-points in the BrillouinZone object

Methods

__init__(obj, point, division[, name]) Instantiate the PathBZ by a set of special points separated in divisions
array([dtype]) Return self with numpy.ndarray returned quantities
average([dtype]) Return self with yielded quantities
lineark([ticks]) A 1D array which corresponds to the delta-k values of the path
lineartick() The tick-marks corresponding to the linear-k values
mean([dtype]) Return self with yielded quantities
tocartesian(k) Transfer a k-point in reduced coordinates to the Cartesian coordinates
toreduced(k) Transfer a k-point in Cartesian coordinates to the reduced coordinates
yields([dtype]) Return self with yielded quantities
array(dtype=<type 'numpy.float64'>)

Return self with numpy.ndarray returned quantities

This forces the __call__ routine to return a single array.

Parameters:

dtype : numpy.dtype, optional

the data-type to cast the values to

See also

yields
all output returned through an iterator
average
take the average (with k-weights) of the Brillouin zone

Examples

>>> obj = BrillouinZone(...) 
>>> obj.array().eigh() 
average(dtype=<type 'numpy.float64'>)

Return self with yielded quantities

This forces the __call__ routine to return a an iterator which may yield the quantities calculated.

Parameters:

dtype : numpy.dtype, optional

the data-type to cast the values to

See also

array
all output as a single array
yields
all output returned through an iterator

Examples

>>> obj = BrillouinZone(Hamiltonian) 
>>> obj.average().eigh() 
>>> obj = BrillouinZone(Hamiltonian) 
>>> obj.average() 
>>> obj.eigh() 
>>> obj.eighs() 
cell
k

A list of all k-points (if available)

lineark(ticks=False)[source]

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

This is meant for plotting

Parameters:

ticks : bool

if True the ticks for the points are also returned

xticks, label_ticks, lk = PathBZ.lineark(True)

Examples

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

The tick-marks corresponding to the linear-k values

mean(dtype=<type 'numpy.float64'>)

Return self with yielded quantities

This forces the __call__ routine to return a an iterator which may yield the quantities calculated.

Parameters:

dtype : numpy.dtype, optional

the data-type to cast the values to

See also

array
all output as a single array
yields
all output returned through an iterator

Examples

>>> obj = BrillouinZone(Hamiltonian) 
>>> obj.average().eigh() 
>>> obj = BrillouinZone(Hamiltonian) 
>>> obj.average() 
>>> obj.eigh() 
>>> obj.eighs() 
rcell
tocartesian(k)

Transfer a k-point in reduced coordinates to the Cartesian coordinates

Parameters:

k : list of float

k-point in reduced coordinates

toreduced(k)

Transfer a k-point in Cartesian coordinates to the reduced coordinates

Parameters:

k : list of float

k-point in Cartesian coordinates

weight

Weight of the k-points in the BrillouinZone object

yields(dtype=<type 'numpy.float64'>)

Return self with yielded quantities

This forces the __call__ routine to return a an iterator which may yield the quantities calculated.

Parameters:

dtype : numpy.dtype, optional

the data-type to cast the values to

See also

array
all output as a single array
average
take the average (with k-weights) of the Brillouin zone

Examples

>>> obj = BrillouinZone(Hamiltonian) 
>>> obj.yields().eigh()