Physical objects (sisl.physics)

Implementations of various DFT and tight-binding related quantities are defined. The implementations range from simple Brillouin zone perspectives to self-energy calculations from Hamiltonians.

In sisl the general usage of physical matrices are considering sparse matrices. Hence Hamiltonians, density matrices, etc. are considered sparse. There are exceptions, but it is generally advisable to have this in mind.

Brillouin zone (brillouinzone)

BrillouinZone(parent[, k, weight])

A class to construct Brillouin zone related quantities

MonkhorstPack(parent, nkpt[, displacement, …])

Create a Monkhorst-Pack grid for the Brillouin zone

BandStructure(parent, point, division[, name])

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

Spin configuration

Spin([kind, dtype])

Spin class to determine configurations and spin components.

Physical quantites

EnergyDensityMatrix(geometry[, dim, dtype, …])

Sparse energy density matrix object

DensityMatrix(geometry[, dim, dtype, nnzpr])

Sparse density matrix object

Hamiltonian(geometry[, dim, dtype, nnzpr])

Sparse Hamiltonian matrix object

DynamicalMatrix(geometry[, dim, dtype, nnzpr])

Dynamical matrix of a geometry

Overlap(geometry[, dim, dtype, nnzpr])

Sparse overlap matrix object

SelfEnergy(*args, **kwargs)

Self-energy object able to calculate the dense self-energy for a given sparse matrix

SemiInfinite(spgeom, infinite[, eta])

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

RecursiveSI(spgeom, infinite[, eta])

Self-energy object using the Lopez-Sancho Lopez-Sancho algorithm

RealSpaceSE(parent, semi_axis, k_axes[, unfold])

Bulk real-space self-energy (or Green function) for a given physical object with periodicity

RealSpaceSI(semi, surface, k_axes[, unfold])

Surface real-space self-energy (or Green function) for a given physical object with limited periodicity

Electrons (electron)

DOS(E, eig[, distribution])

Calculate the density of states (DOS) for a set of energies, E, with a distribution function

PDOS(E, eig, state[, S, distribution, spin])

Calculate the projected density of states (PDOS) for a set of energies, E, with a distribution function

velocity(state, dHk[, energy, dSk, degenerate])

Calculate the velocity of a set of states

velocity_matrix(state, dHk[, energy, dSk, …])

Calculate the velocity matrix of a set of states

berry_phase(contour[, sub, eigvals, closed, …])

Calculate the Berry-phase on a loop using a predefined path

berry_curvature(state, energy, dHk[, dSk, …])

Calculate the Berry curvature matrix for a set of states (using Kubo)

conductivity(bz[, distribution, method, complex])

Electronic conductivity for a given BrillouinZone integral

wavefunction(v, grid[, geometry, k, spinor, …])

Add the wave-function (Orbital.psi) component of each orbital to the grid

spin_moment(state[, S])

Calculate the spin magnetic moment (also known as spin texture)

spin_orbital_moment(state[, S])

Calculate the spin magnetic moment per orbital site (equivalent to spin-moment per orbital)

spin_squared(state_alpha, state_beta[, S])

Calculate the spin squared expectation value between two spin states

EigenvalueElectron(c[, parent])

Eigenvalues of electronic states, no eigenvectors retained

EigenvectorElectron(state[, parent])

Eigenvectors of electronic states, no eigenvalues retained

EigenstateElectron(state, c[, parent])

Eigen states of electrons with eigenvectors and eigenvalues.

Phonons (phonon)

DOS(E, hw[, distribution])

Calculate the density of modes (DOS) for a set of energies, E, with a distribution function

PDOS(E, mode, hw[, distribution])

Calculate the projected density of modes (PDOS) onto each each atom and direction for a set of energies, E, with a distribution function

velocity(mode, hw, dDk[, degenerate])

Calculate the velocity of a set of modes

displacement(mode, hw, mass)

Calculate real-space displacements for a given mode (in units of the characteristic length)

EigenvaluePhonon(c[, parent])

Eigenvalues of phonon modes, no eigenmodes retained

EigenvectorPhonon(state[, parent])

Eigenvectors of phonon modes, no eigenvalues retained

EigenmodePhonon(state, c[, parent])

Eigenmodes of phonons with eigenvectors and eigenvalues.

Bloch’s theorem (bloch)

Bloch(*bloch)

Bloch’s theorem object containing unfolding factors and unfolding algorithms

Distribution functions (distribution)

get_distribution(method[, smearing, x0])

Create a distribution function, Gaussian, Lorentzian etc.

gaussian(x[, sigma, x0])

Gaussian distribution function

lorentzian(x[, gamma, x0])

Lorentzian distribution function

fermi_dirac(E[, kT, mu])

Fermi-Dirac distribution function

bose_einstein(E[, kT, mu])

Bose-Einstein distribution function

cold(E[, kT, mu])

Cold smearing function, Marzari-Vanderbilt, PRL 82, 16, 1999

step_function(x[, x0])

Step function, also known as \(1 - H(x)\)

heaviside(x[, x0])

Heaviside step function

Low level objects

The low level objects are the driving objects for a majority of the physical objects found here. They are rarely (if ever) required to be used, but they may be important for developers wishing to extend the functionality of sisl using generic class-structures. For instance the Hamiltonian inherits the SparseOrbitalBZSpin class and EigenvalueElectron inherits from Coefficient.

States

Coefficient(c[, parent])

An object holding coefficients for a parent with info

State(state[, parent])

An object handling a set of vectors describing a given state

StateC(state, c[, parent])

An object handling a set of vectors describing a given state with associated coefficients c

Sparse matrices

SparseOrbitalBZ(geometry[, dim, dtype, nnzpr])

Sparse object containing the orbital connections in a Brillouin zone

SparseOrbitalBZSpin(geometry[, dim, dtype, …])

Sparse object containing the orbital connections in a Brillouin zone with possible spin-components