def new_df(self, auxbasis=None, with_df=None, *args, **kwargs): mf = density_fit(self, auxbasis, with_df, *args, **kwargs) mf.with_df._j_only = True mf.grids = gen_grid.BeckeGrids(self.cell) mf.grids.level = getattr(__config__, 'pbc_dft_rks_RKS_grids_level', mf.grids.level) return mf
def get_ovlp(cell, grids=None): if grids is None: grids = gen_grid.BeckeGrids(cell) grids.level = 3 grids.build() aoR = numint.eval_ao(cell, grids.coords) s = numpy.dot(aoR.T.conj(), grids.weights.reshape(-1, 1) * aoR).real return s
def test_becke_grids_1d(self): L = 4. n = 61 cell = pgto.Cell() cell.a = numpy.eye(3) * L cell.mesh = numpy.array([n, n, n]) cell.atom = 'He 1 0 1' cell.basis = {'He': [[0, (1.0, 1.0)]]} cell.rcut = 6.78614042442 cell.dimension = 1 cell.build() grids = gen_grid.BeckeGrids(cell) grids.level = 3 grids.build() s1 = get_ovlp(cell, grids) s2 = cell.pbc_intor('int1e_ovlp_sph') self.assertAlmostEqual(numpy.linalg.norm(s1 - s2), 0, 5) self.assertEqual(grids.weights.size, 8040)
def test_becke_grids(self): L = 4. n = 30 cell = pgto.Cell() cell.a = numpy.eye(3) * L cell.a[1, 0] = cell.a[2, 1] = L / 2 cell.gs = numpy.array([n, n, n]) cell.atom = [['He', (L / 2 + 0., L / 2 + 0., L / 2 + 1.)], ['He', (L / 2 + 1., L / 2 + 0., L / 2 + 1.)]] cell.basis = {'He': [[0, (1.0, 1.0)]]} cell.build() grids = gen_grid.BeckeGrids(cell) grids.level = 3 grids.build() s1 = get_ovlp(cell, grids) s2 = cell.pbc_intor('cint1e_ovlp_sph') self.assertAlmostEqual(numpy.linalg.norm(s1 - s2), 0, 5) self.assertEqual(grids.weights.size, 14829)
def new_df(self, auxbasis=None, gs=None): mf = density_fit(self, auxbasis, gs) mf.with_df._j_only = True mf.grids = gen_grid.BeckeGrids(self.cell) return mf