postprocessing.eval_U_cRPA_Vasp
- postprocessing.eval_U_cRPA_Vasp.calc_kan_params(uijkl, n_sites, n_orb, out=False)[source]
calculates the kanamori interaction parameters from a given Uijkl matrix. Follows the procedure given in PHYSICAL REVIEW B 86, 165105 (2012) Vaugier,Biermann formula 30,31,32
- Parameters:
- uijklnumpy array
4d numpy array of Coulomb tensor
- n_sites: int
number of different atoms (Wannier centers)
- n_orbint
number of orbitals per atom
- outbool
verbose mode
- Returns:
- int_paramsdirect
kanamori parameters
- postprocessing.eval_U_cRPA_Vasp.calc_u_avg_fulld(uijkl, n_sites, n_orb, out=False)[source]
calculates the coulomb integrals from a given Uijkl matrix for full d shells. Follows the procedure given in Pavarini - 2014 - arXiv - 1411 6906 - julich school U matrix page 8 or as done in PHYSICAL REVIEW B 86, 165105 (2012) Vaugier,Biermann formula 23, 25 works atm only for full d shell (l=2)
Returns F0=U, and J=(F2+F4)/14
- Parameters:
- uijklnumpy array
4d numpy array of Coulomb tensor
- n_sites: int
number of different atoms (Wannier centers)
- n_orbint
number of orbitals per atom
- outbool
verbose mode
- Returns:
- int_paramsdirect
Slater parameters
- postprocessing.eval_U_cRPA_Vasp.calculate_interaction_from_averaging(uijkl, n_sites, n_orb, out=False)[source]
calculates U,J by averaging directly the Uijkl matrix ignoring if tensor is given in spherical or cubic basis. The assumption here is that the averaging gives indepentendly of the choosen basis (cubic or spherical harmonics) the same results if Uijkl is a true Slater matrix.
Returns F0=U, and J=(F2+F4)/14
- Parameters:
- uijklnumpy array
4d numpy array of Coulomb tensor
- n_sites: int
number of different atoms (Wannier centers)
- n_orbint
number of orbitals per atom
- outbool
verbose mode
- Returns:
- U, J: tuple
Slater parameters
- postprocessing.eval_U_cRPA_Vasp.construct_U_kan(n_orb, U, J, Up=None, Jc=None)[source]
construct Kanamori Uijkl tensor for given U, J, Up, and Jc
- Parameters:
- n_orbint
number of orbitals
- Ufloat
U value for elements Uiiii
- Jfloat
Hunds coupling J for tensor elements Uijji
- Upfloat, optional, default=U-2J
inter orbital exchange term Uijij
- Jcfloat, optional, default=J
Uiijj term, is the same as J for real valued wave functions
- Returns:
- uijklnumpy array
uijkl Coulomb tensor
- postprocessing.eval_U_cRPA_Vasp.fit_kanamori(uijkl, n_orb, switch_jk=False, fit_2=True, fit_3=False, fit_4=True)[source]
Fit Kanamori Hamiltonian with scipy to 2,3, and / or 4 parameters
- Parameters:
- uijkl: np.array (n_orb x n_orb x n_orb x n_orb)
input four index tensor
- n_orb: int
number of orbitals
- switch_jk: bool, default=False
flip two inner indices in input U tensor (for Vasp)
- fit_2: bool, default=True
fit two parameter form
- fit_3: bool, default=False
fit three parameter form (U,Up,J=Jc)
- fit_4: bool, default=True
fit four parameter form
- Returns:
- Uijkl_fit: np.array (n_orb x n_orb x n_orb x n_orb)
fitted Uijkl tensor
- postprocessing.eval_U_cRPA_Vasp.fit_slater_fulld(uijkl, n_sites, U_init, J_init, fixed_F4_F2=True)[source]
finds best Slater parameters U, J for given Uijkl tensor using the triqs U_matrix operator routine assumes F4/F2=0.625
- postprocessing.eval_U_cRPA_Vasp.read_uijkl(path_to_uijkl, n_sites, n_orb)[source]
reads the VASP UIJKL files or the vijkl file if wanted
- Parameters:
- path_to_uijklstring
path to Uijkl like file
- n_sites: int
number of different atoms (Wannier centers)
- n_orbint
number of orbitals per atom
- Returns:
- uijklnumpy array
uijkl Coulomb tensor
- postprocessing.eval_U_cRPA_Vasp.red_to_2ind(uijkl, n_sites, n_orb, out=False)[source]
reduces the 4index coulomb matrix to a 2index matrix and follows the procedure given in PRB96 seth,peil,georges: U_antipar = U_mm’^oo’ = U_mm’mm’ (Coulomb Int) U_par = U_mm’^oo = U_mm’mm’ - U_mm’m’m (for intersite interaction) U_ijij (Hunds coupling) the indices in VASP are switched: U_ijkl —VASP–> U_ikjl
- Parameters:
- uijklnumpy array
4d numpy array of Coulomb tensor
- n_sites: int
number of different atoms (Wannier centers)
- n_orbint
number of orbitals per atom
- outbool
verbose mode
- Returns:
- Uij_antinumpy array
red 2 index matrix U_mm’mm’
- Uiijjnumpy array
red 2 index matrix U_iijj
- Uijjinumpy array
red 2 index matrix Uijji
- Uij_parnumpy array
red 2 index matrix U_mm’mm’ - U_mm’m’m