calculateSelfEnergy

calculateSelfEnergy(device_configuration, energy=PhysicalQuantity(0.0, eV), kpoint=None, spin=None, contribution=<class 'NL.ComputerScienceUtilities.NLFlag._NLFlag.Left'>, eta=PhysicalQuantity(1e-06, Hartree), self_energy_calculator=None)

Calculate the self energy as a numpy array.

Parameters:
  • device_configuration (DeviceConfiguration | SurfaceConfiguration) – The configuration to use for the calculation.

  • energy (PhysicalQuantity of type energy) – Absolute energy for self energy calculation.
    Default: 0.0 * eV

  • kpoint (tuple of floats) – The kpoint as three floats representing fractional reciprocal space coordinates.
    Default: The Gamma point (0.0, 0.0, 0.0)

  • spin (Spin.Up | Spin.Down | Spin.All) – The spin component for which to perform the calculation.
    Default: Spin.All

  • contribution (Left | Right) – Which electrode (side) should be considered. Only the Left contribution is allowed for a SurfaceConfiguration.
    Default: Left

  • eta (PhysicalQuantity of type energy) – Complex energy for electrode transform matrices, imaginary part.
    Default: 1.0e-6 * Hartree

  • self_energy_calculator (RecursionSelfEnergy | DirectSelfEnergy | KrylovSelfEnergy | SparseRecursionSelfEnergy) – The self energy evaluation strategy to use.
    Default: A default RecursionSelfEnergy instance.

Returns:

The self energy as an array.

Return type:

PhysicalQuantity of type energy

Usage Examples

Evaluate the self energy of a DeviceConfiguration:

self_energy = calculateSelfEnergy(device_configuration)

Notes

  • Evaluate the Fourier transformed self energy of an electrode in a DeviceConfiguration.

  • The calculator assigned to the device must be density matrix-based for this function to perform successfully.

  • Consider Spin for details on how to handle the spin parameter.