40
40
# core routines, kernel, rpa_ecorr, rho_response
41
41
# ****************************************************************************
42
42
43
- def kernel (rpa , mo_energy , mo_coeff , Lpq = None , nw = None , verbose = logger .NOTE ):
43
+ def kernel (rpa , mo_energy , mo_coeff , Lpq = None , nw = 40 , x0 = 0.5 , verbose = logger .NOTE ):
44
44
"""
45
45
RPA correlation and total energy
46
46
47
47
Args:
48
48
Lpq : density fitting 3-center integral in MO basis.
49
49
nw : number of frequency point on imaginary axis.
50
- vhf_df : using density fitting integral to compute HF exchange .
50
+ x0: scaling factor for frequency grid .
51
51
52
52
Returns:
53
53
e_tot : RPA total energy
@@ -64,7 +64,7 @@ def kernel(rpa, mo_energy, mo_coeff, Lpq=None, nw=None, verbose=logger.NOTE):
64
64
Lpq = rpa .ao2mo (mo_coeff )
65
65
66
66
# Grids for integration on imaginary axis
67
- freqs , wts = _get_scaled_legendre_roots (nw )
67
+ freqs , wts = _get_scaled_legendre_roots (nw , x0 )
68
68
69
69
# Compute HF exchange energy (EXX)
70
70
dm = mf .make_rdm1 ()
@@ -153,13 +153,14 @@ def dump_flags(self):
153
153
get_nmo = get_nmo
154
154
get_frozen_mask = get_frozen_mask
155
155
156
- def kernel (self , mo_energy = None , mo_coeff = None , Lpq = None , nw = 40 ):
156
+ def kernel (self , mo_energy = None , mo_coeff = None , Lpq = None , nw = 40 , x0 = 0.5 ):
157
157
"""
158
158
Args:
159
159
mo_energy : 2D array (2, nmo), mean-field mo energy
160
160
mo_coeff : 3D array (2, nmo, nmo), mean-field mo coefficient
161
161
Lpq : 4D array (2, naux, nmo, nmo), 3-index ERI
162
162
nw: interger, grid number
163
+ x0: real, scaling factor for frequency grid
163
164
164
165
Returns:
165
166
self.e_tot : RPA total eenrgy
@@ -174,7 +175,7 @@ def kernel(self, mo_energy=None, mo_coeff=None, Lpq=None, nw=40):
174
175
cput0 = (logger .process_clock (), logger .perf_counter ())
175
176
self .dump_flags ()
176
177
self .e_tot , self .e_hf , self .e_corr = \
177
- kernel (self , mo_energy , mo_coeff , Lpq = Lpq , nw = nw , verbose = self .verbose )
178
+ kernel (self , mo_energy , mo_coeff , Lpq = Lpq , nw = nw , x0 = x0 , verbose = self .verbose )
178
179
179
180
logger .timer (self , 'RPA' , * cput0 )
180
181
return self .e_corr
0 commit comments