def get_jk(self, dm, hermi=1, kpts=None, kpts_band=None, with_j=True, with_k=True, omega=None, exxdiv=None): from pyscf.pbc.df import fft_jk if omega is not None: # J/K for RSH functionals return _sub_df_jk_(self, dm, hermi, kpts, kpts_band, with_j, with_k, omega, exxdiv) if kpts is None: if numpy.all(self.kpts == 0): # Gamma-point J/K by default kpts = numpy.zeros(3) else: kpts = self.kpts else: kpts = numpy.asarray(kpts) vj = vk = None if kpts.shape == (3, ): vj, vk = fft_jk.get_jk(self, dm, hermi, kpts, kpts_band, with_j, with_k, exxdiv) else: if with_k: vk = fft_jk.get_k_kpts(self, dm, hermi, kpts, kpts_band, exxdiv) if with_j: vj = fft_jk.get_j_kpts(self, dm, hermi, kpts, kpts_band) return vj, vk
def get_jk(self, dm, hermi=1, kpts=None, kpts_band=None, with_j=True, with_k=True, exxdiv='ewald'): from pyscf.pbc.df import fft_jk if kpts is None: if numpy.all(self.kpts == 0): # Gamma-point calculation by default kpts = numpy.zeros(3) else: kpts = self.kpts else: kpts = numpy.asarray(kpts) vj = vk = None if kpts.shape == (3, ): vj, vk = fft_jk.get_jk(self, dm, hermi, kpts, kpts_band, with_j, with_k, exxdiv) else: if with_k: vk = fft_jk.get_k_kpts(self, dm, hermi, kpts, kpts_band, exxdiv) if with_j: vj = fft_jk.get_j_kpts(self, dm, hermi, kpts, kpts_band) return vj, vk
def get_jk(self, dm, hermi=1, kpts=None, kpts_band=None, with_j=True, with_k=True, exxdiv=None): from pyscf.pbc.df import fft_jk, fft_occk if kpts is None: if numpy.all(self.kpts == 0): # Gamma-point J/K by default kpts = numpy.zeros(3) else: kpts = self.kpts else: kpts = numpy.asarray(kpts) vj = vk = None if kpts.shape == (3,): vj, vk = fft_jk.get_jk(self, dm, hermi, kpts, kpts_band, with_j, with_k, exxdiv) else: if with_j: vj = fft_jk.get_j_kpts(self, dm, hermi, kpts, kpts_band) if with_k: if self.occ == False: vk = fft_jk.get_k_kpts(self, dm, hermi, kpts, kpts_band, exxdiv) else: vk = fft_occk.get_k_kpts_occ(self, dm, hermi, kpts, kpts_band, exxdiv) return vj, vk