HubbardI Solver

class MagInt.HubbardI_solver.Solver(beta, l, n_iomega=1025, use_spin_orbit=False, Nmoments=5)

Hubbard I Solver

GF_realomega(ommin, ommax, N_om, U_int=None, J_hund=None, T=None, verbosity=0, broadening=0.01, n_lev=0, remove_split=False, u4ind=None)

Calculates the Green’s Function (GF) and spectral function on the real frequency axis.

Parameters:

omminfloat

Minimum frequency for the calculation.

ommaxfloat

Maximum frequency for the calculation.

N_omint

Number of frequency points.

U_intfloat, optional

Interaction parameter U for defining the interactions in the system. Either (U_int, J_hund) should be provided or the full U-matrix u4ind.

J_hundfloat, optional

Hund’s coupling parameter J. Either (U_int, J_hund) should be provided or the full U-matrix u4ind.

Tfloat, optional

Temperature of the system. Default is None.

verbosityint, optional

Level of verbosity for logging. Default is 0.

broadeningfloat, optional

Broadening factor for the GF. Default is 0.01.

n_levint, optional

Number of levels included. Default is 0.

remove_splitbool, optional

If True, removes the splitting in the GF. Default is False.

u4indnumpy.ndarray, optional

A full 4-index U-matrix. If provided, (U_int, J_hund) are not used.

Returns:

None. Modifies internal class attributes to store computed GF, spectral functions, etc.

Note:

Either the interaction parameters (U_int, J_hund) should be provided, or the full U-matrix u4ind.

__init__(beta, l, n_iomega=1025, use_spin_orbit=False, Nmoments=5)

Initialize the solver.

Parameters:
  • beta (float) – Inverse temperature.

  • l (int) – Angular momentum quantum number

  • n_iomega (int, optional) – Number of Matsubara frequencies used for the Green’s functions. Default is 1025.

  • use_spin_orbit (bool, optional) – Whether Spin-Orbit coupling is included. Default is False.

  • Nmoments (int, optional) – Number of moments. Default is 5.

set_atomic_levels(eal)

Sets atomic level data based on the provided dictionary.

This method updates the atomic level matrix (self.ealmat) and effective atomic levels (self.Eff_Atomic_Levels) attributes using the dictionary of atomic levels provided.

Parameters:

ealdict

Dictionary containing atomic levels data. Keys are indices, and values are 2D arrays or matrices representing the atomic level information for the respective index.

Returns:

None. Modifies internal class attributes self.ealmat and self.Eff_Atomic_Levels.

solve(U_int=None, J_hund=None, T=None, verbosity=0, Iteration_Number=1, Test_Convergence=0.0001, n_lev=0, remove_split=False, u4ind=None)

Calculate the impurity Green’s function using the Hubbard-I approximation.

Parameters:
  • U_int (float, optional) – Interaction strength U.

  • J_hund (float, optional) – Hund’s coupling J.

  • T (float, optional) – Temperature of the system.

  • verbosity (int, optional) – Level of verbosity for the solver. Default is 0.

  • Iteration_Number (int, optional) – Current iteration number. Default is 1.

  • Test_Convergence (float, optional) – Convergence criterion for the self-consistency loop. Default is 0.0001.

  • n_lev (int, optional) – Default is 0.

  • remove_split (bool, optional) – Default is False.

  • u4ind (ndarray, optional) – Full 4-index interaction tensor U. If provided, U_int and J_hund should be None.

Returns:

Modifies internal state of the object but does not return a value.

Return type:

None

Raises:

AssertionError – If neither (U_int, J_hund) nor the full U-matrix u4ind are provided.

Notes

The function sets the Green’s function, self-energy, etc., of the class instance.