SemiInfinite

class sisl.physics.SemiInfinite(spgeom, infinite, eta=0.0001)

Bases: sisl.physics.SelfEnergy

Self-energy object able to calculate the dense self-energy for a given SparseGeometry in a semi-infinite chain.

Parameters
  • spgeom (SparseGeometry) – any sparse geometry matrix which may return matrices

  • infinite (str) – axis specification for the semi-infinite direction (+A/-A/+B/-B/+C/-C)

  • eta (float, optional) – the default imaginary part of the self-energy calculation

Attributes

__dict__

__doc__

__module__

__weakref__

list of weak references to the object (if defined)

Methods

__delattr__

Implement delattr(self, name).

__dir__

Default dir() implementation.

__eq__

Return self==value.

__format__

Default object formatter.

__ge__

Return self>=value.

__getattr__(attr)

Overload attributes from the hosting object

__getattribute__

Return getattr(self, name).

__gt__

Return self>value.

__hash__

Return hash(self).

__init__(spgeom, infinite[, eta])

Create a SelfEnergy object from any SparseGeometry

__init_subclass__

This method is called when a class is subclassed.

__le__

Return self<=value.

__len__()

Dimension of the self-energy

__lt__

Return self<value.

__ne__

Return self!=value.

__new__

Create and return a new object.

__reduce__

Helper for pickle.

__reduce_ex__

Helper for pickle.

__repr__

Return repr(self).

__setattr__

Implement setattr(self, name, value).

__sizeof__

Size of object in memory, in bytes.

__str__()

String representation of SemiInfinite

__subclasshook__

Abstract classes can override this to customize issubclass().

_setup(*args, **kwargs)

Class specific setup routine

scattering_matrix(*args, **kwargs)

Calculate the scattering matrix by first calculating the self-energy

se2scat(SE)

Calculate the scattering matrix from the self-energy

self_energy(*args, **kwargs)

scattering_matrix(*args, **kwargs)

Calculate the scattering matrix by first calculating the self-energy

Any arguments that is passed to this method is directly passed to self_energy.

See self_energy for details.

This corresponds to:

\[\boldsymbol\Gamma = i(\boldsymbol\Sigma - \boldsymbol \Sigma ^\dagger)\]

Examples

Calculating both the self-energy and the scattering matrix.

>>> SE = SelfEnergy(...)
>>> self_energy = SE.self_energy(0.1)
>>> gamma = SE.scattering_matrix(0.1)

For a huge performance boost, please do:

>>> SE = SelfEnergy(...)
>>> self_energy = SE.self_energy(0.1)
>>> gamma = SE.se2scat(self_energy)

Notes

When using both the self-energy and the scattering matrix please use se2scat after having calculated the self-energy, this will be much, MUCH faster!

See also

se2scat

converting the self-energy to the scattering matrix

self_energy

the used routine to calculate the self-energy before calculating the scattering matrix

static se2scat(SE)

Calculate the scattering matrix from the self-energy

\[\boldsymbol\Gamma = i(\boldsymbol\Sigma - \boldsymbol \Sigma ^\dagger)\]
Parameters

SE (matrix) – self-energy matrix

self_energy(*args, **kwargs)