fcdmft.gw.pbc.kuqsgw module#

Periodic spin-unrestricted Quasiparticle Self-consistent GW based on the GW-AC (analytic continuation) scheme

Method:

T. Zhu and G.K.-L. Chan, J. Chem. Theory. Comput. 17, 727-741 (2021) Compute self-energy on imaginary frequency with density fitting, then analytically continued to real frequency. Gaussian density fitting must be used (FFTDF and MDF are not supported).

Other useful references:

Phys. Rev. B 76, 165106 (2007) Front. Chem. 9:736591 (2021) J. Chem. Theory. Comput. 12, 2528-2541 (2016)

class fcdmft.gw.pbc.kuqsgw.KUQSGW(mf, frozen=None)[source]#

Bases: KRQSGW

Attributes:
nmo
nocc

Methods

__call__(*args, **kwargs)

Update the attributes of the current object.

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

dump_chk()

Dump qsGW check files to disk.

kernel()

Run qsGW calculation.

make_gf(omega, eta)

Get qsGW Green's function.

make_rdm1([ao_repr])

Get GW density matrix from Green's function 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.

set_frozen_orbs()

Set .frozen attribute from frozen mask.

view(cls)

New view of object with the same attributes.

dump_flags

dump_flags()[source]#
kernel()[source]#

Run qsGW calculation.

make_gf(omega, eta)#

Get qsGW Green’s function. G = G0 + G0 (sigma - vc) G, where G0 is non-interacting Green’s function evaluated at quasiparticle energy, vc is the static correlation self-energy. TODO: this definition might be incorrect, because it doesn’t consider the change in hcore and J.

Parameters:
gwKUQSGW

GW object, provides attributes: mo_energy, mo_coeff, ef, ac_coeff, omega_fit, vsig

omegadouble or complex array

frequency grids

etadouble

broadening parameter

Returns:
gfcomplex ndarray

qsGW Green’s function

make_rdm1(ao_repr=False)#

Get GW density matrix from Green’s function G(it=0). G is from Dyson equation G = G0 + G0 Sigma G

Parameters:
gwKUQSGW

GW object, provides attributes: mo_energy, mo_coeff, vsig, sigmaI, _scf, mol

ao_reprbool, optional

return density matrix in AO, by default False

Returns:
rdm1double ndarray

density matrix

property nmo#
property nocc#
set_frozen_orbs()#

Set .frozen attribute from frozen mask.

Parameters:
gwKUGWAC

unrestricted GW object

fcdmft.gw.pbc.kuqsgw.kernel(gw)[source]#
fcdmft.gw.pbc.kuqsgw.make_gf(gw, omega, eta)[source]#

Get qsGW Green’s function. G = G0 + G0 (sigma - vc) G, where G0 is non-interacting Green’s function evaluated at quasiparticle energy, vc is the static correlation self-energy. TODO: this definition might be incorrect, because it doesn’t consider the change in hcore and J.

Parameters:
gwKUQSGW

GW object, provides attributes: mo_energy, mo_coeff, ef, ac_coeff, omega_fit, vsig

omegadouble or complex array

frequency grids

etadouble

broadening parameter

Returns:
gfcomplex ndarray

qsGW Green’s function

fcdmft.gw.pbc.kuqsgw.make_rdm1_dyson(gw, ao_repr=False)[source]#

Get GW density matrix from Green’s function G(it=0). G is from Dyson equation G = G0 + G0 Sigma G

Parameters:
gwKUQSGW

GW object, provides attributes: mo_energy, mo_coeff, vsig, sigmaI, _scf, mol

ao_reprbool, optional

return density matrix in AO, by default False

Returns:
rdm1double ndarray

density matrix