Hubbard Interact

class MagInt.HubbardI_interact.HubbardI_interact(beta, l, n_lev, U_int=None, J_hund=None, u4ind=None, T=None, n_iomega=1025, use_spin_orbit=True, lad_op=None, st_bas=None, n_bas=None, gs_occ=None, CalcOvl=False, Nmoments=5, verbosity=0)

Version of Hubbard-I to produce Sigmas for each of atomic configuration in the GS multiplet. Finally calculates differences between S.Sigma Hub-I and those self-energies that are used in magnetic interaction calculations

__init__(beta, l, n_lev, U_int=None, J_hund=None, u4ind=None, T=None, n_iomega=1025, use_spin_orbit=True, lad_op=None, st_bas=None, n_bas=None, gs_occ=None, CalcOvl=False, Nmoments=5, verbosity=0)

Initialize the HubbardI S instance with given parameters.

Parameters:

betafloat

Inverse temperature.

lint

Angular momentum quantum number.

n_levint

Number of levels.

U_intfloat, optional

Interaction term. Default is None.

J_hundfloat, optional

Hund’s coupling term. Default is None.

u4indnp.ndarray, optional

Full U-matrix. Default is None.

Tfloat, optional

Temperature. Default is None.

n_iomegaint, optional

Number of frequency points. Default is 1025.

use_spin_orbitbool, optional

Whether to use spin orbit coupling. Default is True.

lad_optype, optional

Default is None.

st_bastype, optional

Default is None.

n_bastype, optional

Default is None.

gs_occtype, optional

Default is None.

CalcOvlbool, optional

Whether to calculate overlap. Default is False.

Nmomentsint, optional

Number of moments. Default is 5.

verbosityint, optional

Verbosity level. Default is 0.

Notes:

Verbosity level will be set to 0 for non-master nodes.

calc_Sig_lev(calc_off_diag=False, remove_CF=False)

Calculate self-energies for the first n_lev atomic levels.

Parameters:

calc_off_diagbool, optional

Whether to calculate off-diagonal elements. Defaults to False.

remove_CFbool, optional

Whether to remove crystal fields. Defaults to False.

Returns:

Sig_levlist of lists of Green’s functions

The computed self-energies for each energy level.

Notes:

This method calculates self-energies by considering the difference between the Green’s function for individual atomic levels and the average atomic Green’s function. It supports calculations for both diagonal and off-diagonal elements of the Green’s function matrix.

run_HI(calc_off_diag=False, remove_CF=False, zerotemp=False, called_CF_corr=False, lad_bs=False)

Runs the Hubbard-I approximation and returns the local Green’s functions G_at and G_Gamma.

Parameters:

calc_off_diagbool, optional

Whether to calculate off-diagonal elements. Defaults to False.

remove_CFbool, optional

Whether to remove crystal fields. Defaults to False.

zerotempbool, optional

If set to True, calculations are done at zero temperature. Otherwise, finite temperature is used. Defaults to False.

called_CF_corrbool, optional

Indicates if crystal field corrections were applied. Defaults to False. (This parameter seems unused in the method.)

lad_bsbool, optional

If set to True, it assumes ladder-based solver. Defaults to False.

Returns:

G_atnumpy.array

Local Green’s function for an atom.

G_Gammalist of numpy.array

List containing Green’s functions for different energy levels.

Notes:

This method calculates the atomic Green’s function using the Hubbard-I approximation. The method assumes full U interaction matrix and supports spin-orbit considerations. It calls an external solver gf_hi_fullu_int to compute the main results and then formats them appropriately.

set_ud_levels(eal, rmat=None, rmat_time_inv=0)

Set atomic levels into a single ud block.

This method is used to combine the spin-up (up) and spin-down (down) atomic levels into a single ud block representing both spin channels. If the input already contains the ‘ud’ key, atomic levels are directly set using this information. Otherwise, atomic levels are constructed by stacking the ‘up’ and ‘down’ matrices.

Parameters:

ealdict

Dictionary containing atomic levels. The keys can be ‘ud’, ‘up’, and ‘down’, representing spin-up-down combined, spin-up, and spin-down atomic levels, respectively. Each key maps to a matrix representing atomic energy levels for that spin.

rmatnumpy ndarray

rotation matrix in spin-orbital basis

rmat_time_inv: integer

=1 if the time reversal operation is to be applied together with rotation

Notes:

The constructed ud block will have twice the rows and columns of the ‘up’ or ‘down’ block. The top-left and bottom-right quarters of the ud matrix correspond to ‘up’ and ‘down’ atomic levels, respectively. Rotation is applied to ‘ud’ block if the rotation matrix rmat is submitted