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)
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)
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)
def test_energy(self): e = nevpt2.NEVPT(mc).kernel() self.assertAlmostEqual(e, -0.10315217594326213, 7)
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)
def test_energy(self): e = nevpt2.NEVPT(mc).kernel() self.assertAlmostEqual(e, -0.1031529251, delta=1.0e-6)