class DirectSelfEnergy(save_self_energies=None, lambda_min=None, sparse_threshold=None, storage_strategy=None)

Self-energy calculator based on the direct method. The direct method uses direct diagonalization to get all the electrode modes.

  • storage_strategy (SaveInMemory | StoreOnDisk | NoStorage) – The way self energies are stored between iterations.
    Default: SaveInMemory()
  • sparse_threshold (float > 0) – Self energies (in Hartree) smaller than this value are treated as 0 when storing as sparse matrix.
    Default: 1.e-12
  • save_self_energies

    Deprecated since version 2017.0: Use storage_strategy instead.

  • lambda_min

    Deprecated since version 12.2.


Deprecated since version 12.2.


Deprecated since version 2017.0.

Returns:Values treated as 0.
Return type:float
Returns:The way self energies are stored between iterations.
Return type:SaveInMemory | StoreOnDisk | NoStorage

Usage Examples

Define that the self energy on the real contour is calculated with direct diagonalization.

device_algorithm_parameters = DeviceAlgorithmParameters(

Examples on how to use the storage_strategy parameter can be found in the Usage Examples of RecursionSelfEnergy.


  • DirectSelfEnergy uses a diagonalization scheme to find all propagating and decaying modes of the electrodes. The self energy matrix is then determined from the modes [tSLJB99].
  • The direct method implementation in QuantumATK is stable towards a sparse electrode Hamiltonian with null spaces. The implementation uses projection operators which removes any null spaces which could be problematic.


[tSLJB99]S. Sanvito, C. J. Lambert, J. H. Jefferson, and A. M. Bratkovsky. General green’s-function formalism for transport calculations with spd hamiltonians and giant magnetoresistance in co- and ni-based magnetic multilayers. Phys. Rev. B, 59:11936–11948, May 1999. doi:10.1103/PhysRevB.59.11936.