DirectSelfEnergy

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.

Parameters:
  • 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: from v2017.0, use storage_strategy instead.

  • lambda_min
    Deprecated: from v12.2

lambdaMin()


Deprecated: from v12.2

saveSelfEnergies()


Deprecated: from v2017.0

sparseThreshold()
Returns:

Values treated as 0.

Return type:

float

storageStrategy()
Returns:

The way self energies are stored between iterations.

Return type:

SaveInMemory | StoreOnDisk | NoStorage

uniqueString()

Return a unique string representing the state of the object.

Usage Examples

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

device_algorithm_parameters = DeviceAlgorithmParameters(
    self_energy_calculator_real=DirectSelfEnergy()
)

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

Notes

  • 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 [1].

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

Reference