MagInteract¶
- class MagInt.MagInteract.MagInteract(general_par, magint_par, label_corrsite, GSM=None, SK=None, S_HI=None, GF_tmat=None)¶
Implements the force-theorem Hubbard-I (FT-HI) approach to intersite exchange interactions in correlated insulators. The formalism is given in L. V. Pourovskii Phys. Rev. B 94, 115117 (2016) This Python-3 version is based on TRIQS library
- Retrieve_StBas(item, h5name='Standard_Basis.h5')¶
Retrieves the standard basis from Standard_Basis.h5.
Parameters:¶
- selfobject
The instance of the class.
- itemlist
A list containing the group and item names to retrieve from the HDF5 file, e.g., [h5_group, h5_item].
- h5namestr, optional
The name of the HDF5 file where the standard basis is stored. Default is ‘Standard_Basis.h5’.
Returns:¶
- StBasnp.ndarray
The retrieved standard basis as a NumPy array.
This function reads the standard basis from an HDF5 file and returns it as a NumPy array.
- __init__(general_par, magint_par, label_corrsite, GSM=None, SK=None, S_HI=None, GF_tmat=None)¶
Constructor for initializing magnetic interaction calculations.
Parameters:¶
- general_pardict
Dictionary containing general parameters, e.g., ‘dft_exec’ specifying the DFT execution type and ‘filename’.
- magint_pardict
Dictionary containing parameters specific to magnetic interactions, e.g., ‘atom1’, ‘atom2’, and ‘n_shells’.
- label_corrsitedict
Label for the correlated sites.
- GSMobject, optional
Green’s function mesh. None by default.
- SKobject, optional
Object containing structural information. None by default.
- S_HIobject, optional
Object containing information on the Hamiltonian interaction structure. None by default.
- GF_tmatlist or None, optional
List of transformation matrices to apply to intersite GF at each k-point, if required. None by default.
- calc_MagInt(general_par, S_INT, one_per_shell=False, calc_off_diag=False, remove_CF=False, R_arr=None, R_arr_site=None, Sigma_fix=None)¶
Perform calculation of magnetic pair interactions by considering the intersite Green’s function and the Hubbard-I self-energy.
The function calculates magnetic pair interactions by first reading the real-space intersite vectors R, generating k-mesh in the full Brillouin zone, and then calculating the intersite Green’s function G_R. The interactions are then computed with the Hubbard-I self-energy. The interactions are stored and printed in meV.
Parameters:¶
- general_pardict
General parameters required for the calculation.
- S_INTdict
Hubbard-I self-energy.
- one_per_shellbool, optional
Calculate only one interaction for each coordinate shell. Default is False.
- calc_off_diagbool, optional
Calculate off-diagonal interactions. Default is False.
- remove_CFbool, optional
Remove crystal field. Default is False.
- R_arrnp.ndarray or None, optional
Real-space lattice vectors connecting correlated sites. Default is None.
- R_arr_sitenp.ndarray or None, optional
Sites corresponding to the real-space vectors in R_arr. Default is None.
- Sigma_fixnp.ndarray or None, optional
Fixed self-energy input. If provided, Sigma will be set to this value. Default is None.
Returns:¶
- Vdict
Calculated magnetic interactions.
- V_4inddict
Full 4-index magnetic interactions if calc_off_diag is True.
- int_pairsdict
Interaction pairs for the calculated interactions.
Notes:¶
For Wien2k executions, the lattice vectors are read from the “.outputnn” file. Local rotations are suppressed during the calculation.
- inter_site_GF(general_par, G_off, G_off_inv)¶
Calculates inter-site Green’s Functions (GF) for all required pair vectors.
The function computes the inter-site GF based on the Bloch’s theorem and updates the G_off dictionary with the Fourier-transformed GF values. This function also handles the inversion symmetry to update the G_off_inv dictionary.
Parameters:¶
- general_pardict
Dictionary of general parameters. Must include ‘dft_exec’ which specifies the DFT execution type (either ‘Wien2k’ or ‘Vasp’).
- G_offdict
Dictionary to store the Fourier-transformed inter-site GF. The keys are constructed from type0, type1, and R_key.
- G_off_invdict
Dictionary to store the Fourier-transformed inter-site GF considering inversion symmetry. It has the same structure as G_off.
Returns:¶
- None.
The method updates the dictionaries G_off and G_off_inv in-place.
Raises:¶
- AssertionError
If the given block names in G_off are neither ‘up/down’ nor ‘ud’. If there’s an inconsistency between direct and inv transformed sites. If there’s a key error for constructed keys in G_off.
- reorder_V(V, V4, orl)¶
Reorders V4 in accordance with the permutation matrix order.
Parameters:¶
- selfobject
The instance of the class.
- Vdict
A dictionary containing complex-valued matrices.
- V4dict
A dictionary containing complex-valued rank-4 tensors.
- orllist
A list containing the permutation order.
This function reorders the rank-4 tensors in V4 according to the permutation order orl. The result is stored back in the V4 dictionary.
- rot_stbas(StBas, n_el, nlm, rot_mat_in, rot_time_rev)¶
Rotate standard basis
Parameters:¶
- StBasnp.ndarray
initial standard basis
- n_elinteger
shell occupancy
- nlminteger
shell orbital degeneracy
- rot_mat_innp.ndarray
one-electron rotation matrix of dimension ( nlm*2 x nlm*2 ) if SO included or ( nlm x nlm ) otherwise
- rot_time_revinteger
=1 if time reversal is to be applied together with rotation
Returns:¶
- StBas_outnp.ndarray
transformed Standard Basis
- trans_V(V, V4, S_INT, tol=1e-07, site_list=None)¶
Transform V and V4 to a new basis given by transmat.
Parameters:¶
- selfobject
The instance of the class.
- Vdict
A dictionary of matrices to be transformed.
- V4dict
A dictionary of 4-index matrices to be transformed.
- transmat0np.ndarray or list
Transformation matrix for the first site. If a list, transmat0[0] is applied to the first site.
- transmat1np.ndarray
Transformation matrix for the second site.
- tolfloat, optional
Tolerance for considering small values as zero. Default is 1e-7.
- site_listlist, optional
List of two sites for which the transformation is applied. Default is None.
Returns:¶
None
Transforms the matrices in V and V4 to a new basis using the provided transformation matrices.
If transmat0 is an np.ndarray, it’s applied to both sites.
If transmat0 is a list, transmat0[0] is applied to the first site, and transmat1 is applied to the second site.
The transformed matrices are stored back in V and V4.