TABLE OF CONTENTS
ABINIT/calc_sigx_me [ Functions ]
NAME
calc_sigx_me
FUNCTION
Calculate diagonal and off-diagonal matrix elements of the exchange part of the self-energy operator.
INPUTS
sigmak_ibz=Index of the k-point in the IBZ. bmin, bmax= min and Max band index for GW correction (for this k-point) Gsph_x<gsphere_t>= Info on the G-sphere used for Sigma_x ikcalc=index in the array Sigp%kptgw2bz of the k-point where GW corrections are calculated ltg_k datatype containing information on the little group Kmesh <kmesh_t> x_ngfft(18)=Information about 3D FFT for the oscillator strengths, see ~abinit/doc/variables/vargs.htm#ngfft Vcp <vcoul_t datatype> containing information on the cutoff technique Pawtab(psps%ntypat) <type(pawtab_type)>=paw tabulated starting data Pawang <type(pawang_type)>=paw angular mesh and related data psps <type(pseudopotential_type)>=variables related to pseudopotentials Qmesh <kmesh_t> : datatype gathering information of the q-mesh used Sigp <sigparams_t> (see the definition of this structured datatype) cryst<crystal_t>=Info on unit cell and symmetries qp_ebands<ebands_t>=Datatype gathering info on the QP energies (KS if one shot) Paw_pwff<pawpwff_t>=Form factor used to calculate the onsite mat. elements of a plane wave. allQP_sym(%nkibz, %nsppol)<esymm_t>=Datatype collecting data on the irreducible representations of the little group of kcalc in the KS representation as well as the symmetry of the bdgw_k states. prtvol=Flags governing verbosity level.
OUTPUT
Sr%x_mat(bmin:bmax,bmin:bmax,%nsppol*Sigp%nsig_ab)=Matrix elements of Sigma_x.
NOTES
1) The treatment of the divergence of Gygi+Baldereschi (PRB 1986) [[cite:Gigy1986]] is included. 2) On the symmetrization of Sigma matrix elements If Sk = k+G0 then M_G(k, Sq)= e^{-i( Sq+G).t} M_{ S^-1(G} (k,q) If -Sk = k+G0 then M_G(k,-Sq)= e^{-i(-Sq+G).t} M_{-S^-1(G)}^*(k,q) Notice the absence of G0 in the expression. Moreover, when we sum over the little group, it turns out that there is a cancellation of the phase factor associated to the non-symmorphic operations due to a similar term coming from the symmetrization of \epsilon^{-1}. Mind however that the nonsymmorphic phase has to be considered when epsilon^-1 is reconstructed starting from the q-points in the IBZ. 3) the unitary transformation relating wavefunctions at symmetric k-points should be taken into account during the symmetrization of the oscillator matrix elements. In case of G_oW_o and GW_o calculations, however, it is possible to make an invariant by just including all the degenerate states and averaging the final results over the degenerate subset. Here we divide the states where the QP energies are required into complexes. Note however that this approach is not based on group theory, and it might lead to spurious results in case of accidental degeneracies.
ABINIT/m_sigx [ Modules ]
NAME
m_sigx
FUNCTION
Calculate diagonal and off-diagonal matrix elements of the exchange part of the self-energy operator.
COPYRIGHT
Copyright (C) 1999-2024 ABINIT group (FB, GMR, VO, LR, RWG, MG, RShaltaf) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .
SOURCE
16 #if defined HAVE_CONFIG_H 17 #include "config.h" 18 #endif 19 20 #include "abi_common.h" 21 22 module m_sigx 23 24 use defs_basis 25 use m_abicore 26 use m_gwdefs 27 use m_xmpi 28 use m_defs_ptgroups 29 use m_errors 30 use m_time 31 32 use defs_datatypes, only : pseudopotential_type, ebands_t 33 use m_fstrings, only : itoa, sjoin, ktoa, ltoa 34 use m_hide_blas, only : xdotc, xgemv 35 use m_numeric_tools, only : hermitianize 36 use m_geometry, only : normv 37 use m_crystal, only : crystal_t 38 use m_fft_mesh, only : rotate_FFT_mesh, cigfft 39 use m_bz_mesh, only : kmesh_t, findqg0, littlegroup_t 40 use m_gsphere, only : gsphere_t 41 use m_vcoul, only : vcoul_t 42 use m_pawpwij, only : pawpwff_t, pawpwij_t, pawpwij_init, pawpwij_free, paw_rho_tw_g, paw_cross_rho_tw_g 43 use m_paw_pwaves_lmn,only : paw_pwaves_lmn_t 44 use m_pawang, only : pawang_type 45 use m_pawtab, only : pawtab_type 46 use m_pawfgrtab, only : pawfgrtab_type 47 use m_pawcprj, only : pawcprj_type, pawcprj_alloc, pawcprj_free, pawcprj_copy, paw_overlap 48 use m_paw_nhat, only : pawmknhat_psipsi 49 use m_paw_sym, only : paw_symcprj 50 use m_wfd, only : wfdgw_t, wave_t 51 use m_sigma, only : sigma_t, sigma_distribute_bks 52 use m_oscillators, only : rho_tw_g 53 use m_esymm, only : esymm_t, esymm_symmetrize_mels, esymm_failed 54 55 implicit none 56 57 private
ABINIT/sigx_symmetrize [ Functions ]
NAME
sigx_symmetrize
FUNCTION
Symmetrize Sig_x matrix elements