示例#1
0
 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
示例#2
0
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
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
文件: rks.py 项目: armunoz/pyscf
 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