LocalDeviceDensityOfStates — Class for representing the Local Device Density of States for a given configuration and calculator.
Constructor for the Local Device Density of States class.
The two-probe configuration with attached calculator for which the LDDOS should be calculated.
Type: DeviceConfiguration
Default:
None
The energy for which the LDDOS should be calculated.
Type: A PhysicalQuantity with energy unit.
Default:
0.0*eV
The k-points for which the LDDOS should be calculated.
Type: MonkhorstPackGrid
Default:
MonkhorstPackGrid(nx,ny), where nx, ny is the sampling used for the self consistent calculation.
The density contributions to include in the LDDOS.
Type: Left | Right | All
Default:
All
The self energy calculator to use.
Type: DirectSelfEnergy | RecursionSelfEnergy | KrylovSelfEnergy
Default:
KrylovSelfEnergy
Specifies the choice for the energy zero.
Type: AverageFermiLevel | AbsoluteEnergy
Default:
AverageFermiLevel
Small energy, used to move the LDDOS calculation away from the real axis. This is only relevant for recursion-style self-energy calculators.
Type: PhysicalQuantity with eV units.
Default:
1.0e-6*eV
The spin for which the LDDOS should be calculated.
Type: Spin.Sum | Spin.Up | Spin.Down.
Default:
Spin.Sum
A LocalDeviceDensityOfStates object provides the following methods:
contributions(): Query function for the contributions parameter.
derivatives(x, y, z): Calculate the derivative in the point x,y,z.
energy(): Query function for the energy parameter.
energyZero(): Query function for the energy zero value in absolute numbers.
energyZeroParameter(): Query function for the energy zero parameter.
evaluate(x, y, z): Evaluate in the point x,y,z
gridCoordinate(i, j, k): Return the coordinate for a given grid index.
nlprint(stream): Method for printing an ASCII table with the LDDOS.
scale(scale): Scale the field with a double.
shape(): Query function for getting the shape of the data.
spin(): Query function for the spin parameter.
toArray(): Return the values of the grid as a numpy array slicing off any units.
unit(): Get the unit of the data in the grid.
unitCell(): Return the unit cell for the grid.
volumeElement(): Get the volume element of the grid.
Calculate the local device density of states for a device configuration and save the result in a NetCDF for visualization with VNL.
ldos = LocalDeviceDensityOfStates(device_configuration, 0.0*eV, contributions=All)
nlsave('ldos.nc',ldos)
For examples on how to average and handle 3-d grids, see the examples for ElectronDifferenceDensity and ElectrostaticDifferencePotential.
The local device density of states,
, shows the spectral
density matrix,
in real space
The DeviceDensityOfStates is related to the LocalDeviceDensityOfStates through
where
is the overlap matrix.
The routine utilizes the symmetries of the configuration to reduce the computational load for k-point averages.
See also DeviceDensityOfStates