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:
- 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¶