Name

LocalDeviceDensityOfStates — Class for representing the Local Device Density of States for a given configuration and calculator.

Synopsis

Namespace: NanoLanguage
LocalDeviceDensityOfStates(
configuration,
energy,
kpoints,
contributions,
self_energy_calculator,
energy_zero_parameter,
infinitesimal,
spin
)

Description

Constructor for the Local Device Density of States class.

LocalDeviceDensityOfStates Arguments

configuration

The two-probe configuration with attached calculator for which the LDDOS should be calculated.

Type: DeviceConfiguration

Default: None
energy

The energy for which the LDDOS should be calculated.

Type: A PhysicalQuantity with energy unit.

Default: 0.0*eV
kpoints

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.
contributions

The density contributions to include in the LDDOS.

Type: Left | Right | All

Default: All
self_energy_calculator

The self energy calculator to use.

Type: DirectSelfEnergy | RecursionSelfEnergy | KrylovSelfEnergy

Default: KrylovSelfEnergy
energy_zero_parameter

Specifies the choice for the energy zero.

Type: AverageFermiLevel | AbsoluteEnergy

Default: AverageFermiLevel
infinitesimal

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
spin

The spin for which the LDDOS should be calculated.

Type: Spin.Sum | Spin.Up | Spin.Down.

Default: Spin.Sum

LocalDeviceDensityOfStates Methods

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.

    x

    The cartesian x coordinate.

    Type: physical quantity with type length.

    y

    The cartesian y coordinate.

    Type: physical quantity with type length.

    z

    The cartesian z coordinate.

    Type: physical quantity with type length.

  • 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

    x

    The cartesian x coordinate.

    Type: physical quantity with type length.

    y

    The cartesian y coordinate.

    Type: physical quantity with type length.

    z

    The cartesian z coordinate.

    Type: physical quantity with type length.

  • gridCoordinate(i, j, k): Return the coordinate for a given grid index.

    i

    The grid index in the A direction.

    Type: integer

    j

    The grid index in the B direction.

    Type: integer

    k

    The grid index in the C direction.

    Type: integer

  • nlprint(stream): Method for printing an ASCII table with the LDDOS.

    stream

    The stream the LDDOS should be written to.

    Type: A stream that supports strings being written to using 'write'.

    Default: sys.stdout
  • scale(scale): Scale the field with a double.

    scale

    The parameter to scale with.

    Type: float

  • 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.

Usage Examples

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.

Notes

The local device density of states,  D(E, {\bf r}), shows the spectral density matrix, D_{nm}(E) in real space

\displaystyle

    D(E, {\bf r}) = \sum_{nm} D_{nm}(E) \phi_n( {\bf r})  \phi_m( {\bf r}) .

The DeviceDensityOfStates is related to the LocalDeviceDensityOfStates through

\displaystyle

    D(E) = \int D(E, {\bf r}) d {\bf r} = \sum_{nm}  D_{nm}(E) S_{mn},

where  S_{mn} is the overlap matrix.

The routine utilizes the symmetries of the configuration to reduce the computational load for k-point averages.

See also DeviceDensityOfStates