Ejemplo n.º 1
0
    def test_n3_cis(self):
        ehf_bench = [-8.651923514149, -10.530905169078]

        ekrhf = kmf_n3_none.e_tot
        self.assertAlmostEqual(ekrhf, ehf_bench[0], 6)
        ekrhf = kmf_n3_ewald.e_tot
        self.assertAlmostEqual(ekrhf, ehf_bench[1], 6)

        # KCIS
        myci = ci.KCIS(kmf_n3_none)
        eci, v = myci.kernel(nroots=2, kptlist=[0])
        self.assertAlmostEqual(eci[0][0], 0.223920101177, 5)
        self.assertAlmostEqual(eci[0][1], 0.223920101177, 5)
        eci, v = myci.kernel(nroots=2, kptlist=[1])
        self.assertAlmostEqual(eci[0][0], 0.291182202333, 5)
        self.assertAlmostEqual(eci[0][1], 0.330573456724, 5)

        myci = ci.KCIS(kmf_n3_ewald)
        myci.keep_exxdiv = True
        eci, v = myci.kernel(nroots=2, kptlist=[0])
        self.assertAlmostEqual(eci[0][0], 0.693665750383, 5)
        self.assertAlmostEqual(eci[0][1], 0.693665750384, 5)
        eci, v = myci.kernel(nroots=2, kptlist=[1])
        self.assertAlmostEqual(eci[0][0], 0.760927568875, 5)
        self.assertAlmostEqual(eci[0][1], 0.800318837778, 5)
Ejemplo n.º 2
0
    def test_n3_cis_ewald(self):
        kmf_n3_ewald = scf.KRHF(cell,
                                kpts=cell.make_kpts([2, 1, 1]),
                                exxdiv='ewald')
        kmf_n3_ewald.kernel()
        ekrhf = kmf_n3_ewald.e_tot
        self.assertAlmostEqual(ekrhf, -10.530905169078, 6)

        myci = ci.KCIS(kmf_n3_ewald)
        myci.keep_exxdiv = True
        eci, v = myci.kernel(nroots=2, kptlist=[0])
        self.assertAlmostEqual(eci[0][0], 0.693665750383, 5)
        self.assertAlmostEqual(eci[0][1], 0.693665750384, 5)
        eci, v = myci.kernel(nroots=2, kptlist=[1])
        self.assertAlmostEqual(eci[0][0], 0.760927568875, 5)
        self.assertAlmostEqual(eci[0][1], 0.800318837778, 5)
Ejemplo n.º 3
0
    def test_n3_cis_high_cost(self):
        kmf_n3_none = scf.KRHF(cell,
                               kpts=cell.make_kpts([2, 1, 1]),
                               exxdiv=None)
        kmf_n3_none.kernel()
        ekrhf = kmf_n3_none.e_tot
        self.assertAlmostEqual(ekrhf, -8.651923514149, 6)

        # KCIS
        myci = ci.KCIS(kmf_n3_none)
        eci, v = myci.kernel(nroots=2, kptlist=[0])
        self.assertAlmostEqual(eci[0][0], 0.223920101177, 5)
        self.assertAlmostEqual(eci[0][1], 0.223920101177, 5)
        eci, v = myci.kernel(nroots=2, kptlist=[1])
        self.assertAlmostEqual(eci[0][0], 0.291182202333, 5)
        self.assertAlmostEqual(eci[0][1], 0.330573456724, 5)
Ejemplo n.º 4
0
    log.timer_debug1("transforming DF-CIS integrals", *cput0)

    return eris


if __name__ == "__main__":
    from pyscf.pbc import gto, scf, ci

    cell = gto.Cell()
    cell.atom = """
    C 0.000000000000   0.000000000000   0.000000000000
    C 1.685068664391   1.685068664391   1.685068664391
    """
    cell.basis = "gth-szv"
    cell.pseudo = "gth-pade"
    cell.a = """
    0.000000000, 3.370137329, 3.370137329
    3.370137329, 0.000000000, 3.370137329
    3.370137329, 3.370137329, 0.000000000"""
    cell.unit = "B"
    cell.verbose = 7
    cell.build()

    # Running HF and MP2 with 1x1x2 Monkhorst-Pack k-point mesh
    kmf = scf.KRHF(cell, kpts=cell.make_kpts([1, 1, 2]), exxdiv=None)
    ehf = kmf.kernel()

    mycis = ci.KCIS(kmf)
    e_cis, v_cis = mycis.kernel(nroots=1, kptlist=[0])
    print(e_cis[0] - 0.2239201285373249)