Exemple #1
0
    def test_kernel_small_system(self):
        e1, c1 = selected_ci.kernel(h1[:2, :2], eri[:6], 2, (1, 1), nroots=2)
        e2, c2 = direct_spin1.kernel(h1[:2, :2], eri[:6], 2, (1, 1), nroots=2)
        self.assertAlmostEqual(abs(numpy.array(e1) - e2).max(), 0, 9)

        self.assertRaises(RuntimeError,
                          selected_ci.kernel,
                          h1[:2, :2],
                          eri[:6],
                          2, (1, 1),
                          nroots=6)
Exemple #2
0
 def test_kernel(self):
     myci = selected_ci.SCI()
     e1, c1 = selected_ci.kernel(h1, eri, norb, nelec)
     e2, c2 = direct_spin1.kernel(h1, eri, norb, nelec)
     self.assertAlmostEqual(e1, e2, 9)
     self.assertAlmostEqual(abs(numpy.dot(c1.ravel(), c2.ravel())), 1, 9)
     dm1_1 = myci.make_rdm1(c1, norb, nelec)
     dm1_2 = direct_spin1.make_rdm1(c2, norb, nelec)
     self.assertAlmostEqual(abs(dm1_1 - dm1_2).sum(), 0, 4)
     dm2_1 = myci.make_rdm2(c1, norb, nelec)
     dm2_2 = direct_spin1.make_rdm12(c2, norb, nelec)[1]
     self.assertAlmostEqual(abs(dm2_1 - dm2_2).sum(), 0, 2)
Exemple #3
0
    def test_kernel(self):
        myci = selected_ci.SCI()
        e1, c1 = selected_ci.kernel(h1, eri, norb, nelec, nroots=2)
        e1 = e1[0]
        c1 = c1[0]
        e2, c2 = direct_spin1.kernel(h1, eri, norb, nelec)
        self.assertAlmostEqual(e1, e2, 9)
        self.assertAlmostEqual(abs(numpy.dot(c1.ravel(), c2.ravel())), 1, 9)
        dm1_1 = myci.make_rdm1(c1, norb, nelec)
        dm1_2 = direct_spin1.make_rdm1(c2, norb, nelec)
        self.assertAlmostEqual(abs(dm1_1 - dm1_2).sum(), 0, 4)
        dm2_1 = myci.make_rdm2(c1, norb, nelec)
        dm2_2 = direct_spin1.make_rdm12(c2, norb, nelec)[1]
        self.assertAlmostEqual(abs(dm2_1 - dm2_2).sum(), 0, 2)

        e1, c1 = selected_ci_spin0.kernel(h1, eri, norb, nelec)
        self.assertAlmostEqual(e1, e2, 9)
        self.assertAlmostEqual(abs(numpy.dot(c1.ravel(), c2.ravel())), 1, 9)

        e1, c1 = selected_ci_slow.kernel(h1, eri, norb, nelec)
        self.assertAlmostEqual(e1, e2, 9)
Exemple #4
0
    def test_kernel_small_system(self):
        e1, c1 = selected_ci.kernel(h1[:2,:2], eri[:6], 2, (1,1), nroots=2)
        e2, c2 = direct_spin1.kernel(h1[:2,:2], eri[:6], 2, (1,1), nroots=2)
        self.assertAlmostEqual(abs(numpy.array(e1) - e2).max(), 0, 9)

        self.assertRaises(RuntimeError, selected_ci.kernel, h1[:2,:2], eri[:6], 2, (1,1), nroots=6)