SumkDFTTools.calc_dc(dens_mat, orb=0, U_interact=None, J_hund=None, use_dc_formula=0, use_dc_value=None, transform=True)

Calculate and set the double counting corrections.

If ‘use_dc_value’ is provided the double-counting term is uniformly initialized with this constant and ‘U_interact’ and ‘J_hund’ are ignored.

If ‘use_dc_value’ is None the correction is evaluated according to one of the following formulae:

  • use_dc_formula = 0: fully-localised limit (FLL)

  • use_dc_formula = 1: Held’s formula, i.e. mean-field formula for the Kanamori

    type of the interaction Hamiltonian

  • use_dc_formula = 2: around mean-field (AMF)

Note that FLL and AMF formulae were derived assuming a full Slater-type interaction term and should be thus used accordingly. For the Kanamori-type interaction one should use formula 1.

The double-counting self-energy term is stored in self.dc_imp and the energy correction in self.dc_energ.

dens_matgf_struct_solver like

Density matrix for the specified correlated shell.

orbint, optional

Index of an inequivalent shell.

U_interactfloat, optional

Value of interaction parameter U.

J_hundfloat, optional

Value of interaction parameter J.

use_dc_formulaint or string, optional

Type of double-counting correction (see description of compute_DC_from_density above). There is an interface with the legacy implementation which allows for the old convention: * 0 -> ‘sFLL’ spin dependent fully localized limit * 1 -> ‘cHeld’ spin independent Held formula * 2 -> ‘sAMF’ spin dependent around-mean field approximation

use_dc_valuefloat, optional

Value of the double-counting correction. If specified U_interact, J_hund and use_dc_formula are ignored.


whether or not to use the transformation in block_structure to transform the dc