DirectSelfEnergy — Class for representing a self energy calculation using direct diagonalization.
Constructor for a self-energy calculator based on the direct method. The direct method use direct diagonalization for getting all the electrode modes.
A DirectSelfEnergy object provides the following methods:
saveSelfEnergies(): Query method for getting the Boolean telling if the self energies should be saved or not
setSaveSelfEnergies(): Set method for setting the Boolean telling if the self energies should be saved or not
Define that the self energy on the real contour is calculated with Direct diagonalization.
calculator=DeviceHuckelCalculator(
self_energy_calculator_real=DirectSelfEnergy() )
The DirectSelfEnergy use a diagonalization scheme to find all propagating and decaying modes of the electrodes. The self energy matrix is then determined from the modes[15].
The direct method implementation in ATK is stable towards a sparse electrode Hamiltonian with null spaces. The implementation uses projection operators which removes any null spaces which could be problematic.