Coulomb screening
Options for the Coulomb screening solver.
interaction_cutoff#
The cutoff distance for the screened Coulomb interaction self-energy.
Self-energy matrix elements corresponding to pairs of orbitals that are further apart than this distance are not computed. A higher cutoff can lead to more accurate results, but also increases the computation time. The optimal value depends on the system and the desired accuracy.
solver#
Parameters concernig the system solver.
obc#
Parameters concerning the open boundary conditions.
lyapunov#
Parameters concerning the Lyapunov solver.
epsilon_r#
The relative permittivity of the system.
The Coulomb matrix is scaled by this value. It is primarily useful as a way to scale the strength of the Coulomb interaction and to better fit the model to experimental results.
num_connected_blocks#
The number of connected blocks to merge into a single block.
The computation of the effective lesser/greater polarization involves a "sandwich" multiplication (congruence transform) of the form
where \(\mathbf{V}\) is the Coulomb matrix and \(\mathbf{P}^{\lessgtr}\) is the lesser/greater polarization. Since all of these matrices are banded, the resulting effective polarization \(\mathbf{L}^{\lessgtr}\) can have a much larger bandwidth.
The block-tridiagonal tiling of the system matrix used in the OBC is
therefore larger than the transport blocks used in the electron
solver. The num_connected_blocks parameter determines how many of
the original transport blocks are merged into a single block for the
Coulomb screening solver. If set to "auto", the number of
connected blocks is automatically determined based on the
interaction_cutoff and the geometry of the system.
dos_peak_limit#
The maximum derivative of the density of states (DOS) with respect to energy.
At energy points where the DOS derivative exceeds this value, the Coulomb screening quantities are set to zero to stabilize the convergence of the SCBA iterations.
filtering_iteration_limit#
The maximum number of SCBA iterations during which the DOS peak filtering is applied.
This is because the DOS peak filtering is mainly needed during the first few SCBA iterations when the self-energies are not yet fully developed and can lead to very sharp features in the DOS.
align_polarization_to_complex_axes#
Whether to discard certain parts of the polarization.
This affects the polarization in the following way:
- The real parts of the lesser/greater polarization are discarded.
- The imaginary part of the retarded polarization from anyprevious computation is zeroed.
This happens before the anti-Hermitian part of the retarded polarization is computed from the lesser and greater parts as
include_energy_renormalization#
Whether to compute the Hermitian part of the retarded polarization and/or self-energy.
Possible values are "self-energy", "polarization", and "both".
The full retarded interaction quantities are general complex-valued matrices, where the Hermitian part is computed from the skew-Hermitian part using the Kramers-Kronig relations:
The Hermitian part only leads to only a shift in the energy, so it is often neglected:
The default is to only include the skew-Hermitian part in the Coulomb screening self-energy and not in the polarization.
The Hermitian part is computed using a Hilbert transform. For the
Coulomb screening self-energy, this Hilbert transform can lead to
errors at the edges of the energy window. The
apply_hilbert_correction option can
be used to apply a correction to the Hilbert transform to mitigate
these errors.
apply_hilbert_correction#
Whether to apply the corrections for the edges of the energy window to the Hilbert transform when computing the retarded self-energy.
Computing the correction is slightly more expensive.
max_batch_size#
The maximum number of energies to batch together in the solution of the screened Coulomb interaction.
This controls how many energies are treated together when computing boundary conditions and screened Coulomb interactions. If not set, all energies are computed at once.
This can help mitigate memory bottlenecks.