예제 #1
0
    def test_multistate(self):
        # See issue #1081
        mol = gto.M(atom='''
        O  0.0000000000 0.0000000000 -0.1302052882
        H  1.4891244004 0.0000000000  1.0332262019
        H -1.4891244004 0.0000000000  1.0332262019
        ''',
            basis = '631g',
            symmetry = False)
        mf = scf.RHF(mol).run()

        mc = mcscf.CASSCF(mf, 6, [4,4])
        mc.fcisolver=fci.solver(mol,singlet=True)
        mc.fcisolver.nroots=2
        mc = mcscf.state_average_(mc, [0.5,0.5])
        mc.kernel()
        orbital = mc.mo_coeff.copy()

        mc = mcscf.CASCI(mf, 6, 8)
        mc.fcisolver=fci.solver(mol,singlet=True)
        mc.fcisolver.nroots=2
        mc.kernel(orbital)
        
        # Ground State
        mp0 = nevpt2.NEVPT(mc, root=0)
        mp0.kernel()
        e0 = mc.e_tot[0] + mp0.e_corr
        self.assertAlmostEqual(e0, -75.867171, 4) # From ORCA (4.2.1)

        # First Excited State
        mp1 = nevpt2.NEVPT(mc, root=1)
        mp1.kernel()
        e1 = mc.e_tot[1] + mp1.e_corr
        self.assertAlmostEqual(e1, -75.828469, 4) # From ORCA (4.2.1)
예제 #2
0
파일: test_nevpt2.py 프로젝트: pyscf/pyscf
    def test_for_occ2(self):
        mol = gto.Mole(verbose=0,
                       atom='''
                O    -3.3006173    2.2577663    0.0000000
                H    -4.0301066    2.8983985    0.0000000
                H    -2.5046061    2.8136052    0.0000000
                ''')
        mf = mol.UHF().run()

        mc = mcscf.CASSCF(mf, 3, 6)
        caslist = [4, 5, 3]
        mc.kernel(mc.sort_mo(caslist))
        e = nevpt2.NEVPT(mc).kernel()
        self.assertAlmostEqual(e, -0.031179434919517, 6)

        mc = mcscf.CASSCF(mf, 3, 6)
        caslist = [4, 5, 1]
        mc.kernel(mc.sort_mo(caslist))
        e = nevpt2.NEVPT(mc).kernel()
        self.assertAlmostEqual(e, -0.031179434919517, 6)
예제 #3
0
파일: test_nevpt2.py 프로젝트: pyscf/pyscf
 def test_energy1(self):
     o2 = gto.M(verbose=0,
                atom='''
         O   0 0 0
         O   0 0 1.207''',
                basis='6-31g',
                spin=2)
     mf_o2 = scf.RHF(o2).run()
     mc = mcscf.CASCI(mf_o2, 6, 8)
     mc.fcisolver.conv_tol = 1e-16
     mc.kernel()
     e = nevpt2.NEVPT(mc).kernel()
     self.assertAlmostEqual(e, -0.16978532268234559, 6)
예제 #4
0
파일: test_nevpt2.py 프로젝트: v3op01/pyscf
 def test_energy(self):
     e = nevpt2.NEVPT(mc).kernel()
     self.assertAlmostEqual(e, -0.10315217594326213, 7)
예제 #5
0
 def test_reset(self):
     mol1 = gto.M(atom='C')
     pt = nevpt2.NEVPT(mc)
     pt.reset(mol1)
     self.assertTrue(pt.mol is mol1)
     self.assertTrue(pt._mc.mol is mol1)
예제 #6
0
 def test_energy(self):
     e = nevpt2.NEVPT(mc).kernel()
     self.assertAlmostEqual(e, -0.1031529251, delta=1.0e-6)