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