SparseRecursionSelfEnergy

class SparseRecursionSelfEnergy(save_self_energies=None, tolerance=None, maximum_iteration=None, sparse_threshold=None, storage_strategy=None)

Self-energy calculator based on the Sparse Recursion method. This method is an iterative scheme for getting self energies, with convergence \(O(2^N)\)

Parameters:
  • storage_strategy (SaveInMemory | StoreOnDisk | NoStorage) – The way self energies are stored between iterations.
    Default: SaveInMemory()

  • tolerance (float > 0) – The tolerance of convergence of the self energies before termination of the recursion.
    Default: 1e-13

  • maximum_iteration (int > 0) – The maximum number of recursion steps allowed before termination.
    Default: 400

  • sparse_threshold (float > 0) – Self energies (in Hartree) smaller than this value treated as 0 when storing as sparse matrix.
    Default: 1e-12

  • save_self_energies
    Deprecated: from v2017.0, use storage_strategy instead.

maximumIteration()
Returns:

The maximum number of recursion steps.

Return type:

int

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

tolerance()
Returns:

The tolerance of convergence.

Return type:

float

uniqueString()

Return a unique string representing the state of the object.

Usage Examples

Define that the self energies on the complex contour are calculated with the recursion method, and the self energies are not saved.

device_algorithm_parameters = DeviceAlgorithmParameters(
    self_energy_calculator_complex=SparseRecursionSelfEnergy(storage_strategy=NoStorage()),
)

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

Notes

The SparseRecursionSelfEnergy uses the iterative scheme by Lopez, Lopez and Rubio [1] for calculating the self energy matrix. The sparse recursion method is identical to the recursion method provided by RecursionSelfEnergy, but exploits inherent sparsity. This provides increased performance for all but the smallest systems.