fcdmft.gw.mol.gw_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.gw_cd.GWCD(mf, frozen=None, auxbasis=None, chkfile=None)[source]#
Bases:
GWAC- 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 restricted 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, ijslice])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.gw_cd.get_WmnI_diag(gw, orbs, Lpq, Lia, quad_freqs, mo_energy)[source]#
Calculate Wmn on imaginary axis.
- Parameters:
- gwGWCD
GWCD object
- orbs
list list of orbital indexes
- Lpqdouble 3d
array three-center density-fitting matrix in MO space
- Liadouble 3d
array three-center density-fitting matrix in MO space, O-V block
- quad_freqsdouble 1d
array position of imaginary frequency grids used for integration
- mo_energydouble 1d
array MO energies
- Returns:
- complex 3d
array Wmn on imaginary axis, shape (nw, norbs, nmo)
- complex 3d
- fcdmft.gw.mol.gw_cd.get_rho_response_R(eia, omega, Lia, eta)[source]#
Compute density response function in auxiliary basis at poles
- fcdmft.gw.mol.gw_cd.get_sigmaR_diag(mo_energy, omega, orbp, ef, Lpq, Lia, eta)[source]#
Compute self-energy for poles inside contour (more and more expensive away from Fermi surface)
- fcdmft.gw.mol.gw_cd.get_sigma_diag(ef, ep, p, mo_energy, Lpq, Lia, Wmn, freqs, wts, eta)[source]#
Compute self-energy on real axis using contour deformation