fcdmft.gw.mol.ugw_cd module#
Spin-restricted G0W0 approximation with contour deformation
This implementation has the same scaling (N^4) as GW-AC, more robust but slower. GW-CD is particularly recommended for accurate core and high-energy states.
- Method:
See T. Zhu and G.K.-L. Chan, arxiv:2007.03148 (2020) for details Compute Sigma directly on real axis with density fitting through a contour deformation method
- Useful References:
Chem. Theory Comput. 14, 4856-4869 (2018)
- class fcdmft.gw.mol.ugw_cd.UGWCD(mf, frozen=None, auxbasis=None, chkfile=None)[source]#
Bases:
UGWAC- Attributes:
- nmo
- nocc
Methods
__call__(*args, **kwargs)Update the attributes of the current object.
ao2mo([mo_coeff])Transform density-fitting integral from AO to MO.
apply(fn, *args, **kwargs)Apply the fn to rest arguments: return fn(*args, **kwargs). The return value of method set is the object itself. This allows a series of functions/methods to be executed in pipe.
check_sanity()Check input of class/object attributes, check whether a class method is overwritten.
copy()Returns a shallow copy
energy_tot()Compute GW total energy according to Galitskii-Migdal formula.
get_ef([mo_energy])Get Fermi level.
get_frozen_mask()Get boolean mask for the unrestricted reference orbitals.
get_sigma_exchange(mo_coeff)Get exchange self-energy (EXX).
initialize_df([auxbasis])Initialize density fitting.
kernel()Do one-shot GW calculation using contour deformation.
loop_ao2mo([mo_coeff, spin, ijslicea, ijsliceb])Transform density-fitting integral from AO to MO by block.
make_gf(omega[, eta, mode])Get G0W0 Green's function by AC fitting.
make_rdm1([ao_repr, mode])Get GW density matrix from G(it=0).
post_kernel(envs)A hook to be run after the main body of the kernel function.
pre_kernel(envs)A hook to be run before the main body of kernel function is executed.
run(*args, **kwargs)Call the kernel function of current object.
set(*args, **kwargs)Update the attributes of the current object.
setup_evaluation_grid([fallback_freqs, ...])Set up self-energy grid, aka freqs2, aka gw.freqs.
view(cls)New view of object with the same attributes.
dump_flags
get_nmo
get_nocc
- fcdmft.gw.mol.ugw_cd.get_WmnI_diag(gw, orbs, Lpqa, Lpqb, Lia_a, Lia_b, freqs)[source]#
Compute W_mn(iw) on imarginary axis grids Return:
Wmn: (s, Nmo, Norbs, Nw)
- fcdmft.gw.mol.ugw_cd.get_rho_response_R(eia_a, eia_b, omega, Lia_a, Lia_b, eta)[source]#
Compute density response function in auxiliary basis at poles
- fcdmft.gw.mol.ugw_cd.get_sigmaR_diag(mo_energy, omega, s, orbp, ef, Lpqa, Lpqb, Lia_a, Lia_b, eta)[source]#
Compute self-energy for poles inside contour (more and more expensive away from Fermi surface)
- fcdmft.gw.mol.ugw_cd.get_sigma_diag(ef, ep, s, p, mo_energy, Lpqa, Lpqb, Lia_a, Lia_b, Wmn_s, freqs, wts, eta)[source]#
Compute self-energy on real axis using contour deformation