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