Skip to content

Scba

Parameters for the self-consistent Born approximation (SCBA) loop.

This is the main loop that computes the self-energies and Green's functions in simulations where formalism is set to "negf".

See the section on NEGF in the user guide for more information on the SCBA loop.

min_iterations#

min_iterations: PositiveInt = 1

The minimum number of SCBA iterations to perform.

This must be greater than or equal to 1.

Warning

This parameter currently has no effect.

max_iterations#

max_iterations: PositiveInt = 100

The maximum number of SCBA iterations to perform.

convergence_tol#

convergence_tol: PositiveFloat = 1e-05

The convergence tolerance for the SCBA iterations.

Warning

This parameter currently has no effect.

mixing_factor#

mixing_factor: PositiveFloat = 0.1

The under-relaxation factor for the SCBA iterations.

The new self-energy is computed as a weighted average of the previous self-energy and the new self-energy.

\[ \mathbf{\Sigma}^{(n)} = (1 - \text{mixing_factor}) \mathbf{\Sigma}^{(n-1)} + \text{mixing_factor} \mathbf{\Sigma}^{\text{new}} \]

output_interval#

output_interval: PositiveInt = 1

The interval at which to output observables during the SCBA iterations.

Warning

This parameter currently has no effect.

coulomb_screening#

coulomb_screening: bool = False

Whether to include screened Coulomb interactions.

photon#

photon: bool = False

Whether to include electron-photon interactions.

phonon#

phonon: bool = False

Whether to include electron-phonon interactions.

symmetric#

symmetric: bool = True

Whether to exploit symmetry in NEGF calculations.

All lesser and greater quantitiese are skew-Hermitian, allowing us to only store and compute the upper triangular part of the matrices.

The retarded quantities can be decomposed into a Hermitian and skew-Hermitian part, which also allows memory and computation savings.

This can reduce the memory footprint and computation time by a significant factor, especially for large systems.

align_self_energy_to_complex_axes#

align_self_energy_to_complex_axes: bool = True

Whether to discard certain parts of the self-energy.

This is an approximation that affects the self-energy in the following way:

  • The real parts of the lesser/greater self-energy are discarded.
  • The imaginary part of the retarded self-energy from any previous computation is discarded.
\[ \begin{equation} \mathbf{\Sigma}^R_{AH} = \frac{1}{2i} ( \mathbf{\Sigma}^> - \mathbf{\Sigma}^< ) \label{eq:retarded_self_energy_from_lesser_greater} \end{equation} \]

This happens before the anti-Hermitian part of the retarded self-energy is computed from the lesser and greater parts as in Equation \(\ref{eq:retarded_self_energy_from_lesser_greater}\).