def test_init(self): from pyscf.mcscf import df mf = scf.RHF(mol) self.assertTrue(isinstance(mcscf.CASCI(mf, 2, 2), mcscf.casci.CASCI)) self.assertTrue(isinstance(mcscf.CASCI(mf.density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASCI(mf.newton(), 2, 2), mcscf.casci.CASCI)) self.assertTrue(isinstance(mcscf.CASCI(mf.density_fit().newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASCI(mf.newton().density_fit(), 2, 2), mcscf.casci.CASCI)) self.assertTrue(isinstance(mcscf.CASCI(mf.density_fit().newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(mf, 2, 2), mcscf.mc1step.CASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(mf.density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(mf.newton(), 2, 2), mcscf.mc1step.CASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(mf.density_fit().newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(mf.newton().density_fit(), 2, 2), mcscf.mc1step.CASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(mf.density_fit().newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASCI(mf, 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASCI(mf.density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASCI(mf.newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASCI(mf.density_fit().newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASCI(mf.newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASCI(mf.density_fit().newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASSCF(mf, 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASSCF(mf.density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASSCF(mf.newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASSCF(mf.density_fit().newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASSCF(mf.newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.DFCASSCF(mf.density_fit().newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASCI(msym, 2, 2), mcscf.casci_symm.CASCI)) self.assertTrue(isinstance(mcscf.CASCI(msym.density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASCI(msym.newton(), 2, 2), mcscf.casci_symm.CASCI)) self.assertTrue(isinstance(mcscf.CASCI(msym.density_fit().newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASCI(msym.newton().density_fit(), 2, 2), mcscf.casci_symm.CASCI)) self.assertTrue(isinstance(mcscf.CASCI(msym.density_fit().newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(msym, 2, 2), mcscf.mc1step_symm.CASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(msym.density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(msym.newton(), 2, 2), mcscf.mc1step_symm.CASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(msym.density_fit().newton(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(msym.newton().density_fit(), 2, 2), mcscf.mc1step_symm.CASSCF)) self.assertTrue(isinstance(mcscf.CASSCF(msym.density_fit().newton().density_fit(), 2, 2), df._DFCASSCF)) self.assertTrue(isinstance(msym.CASCI(2, 2), mcscf.casci_symm.CASCI)) self.assertTrue(isinstance(msym.density_fit().CASCI(2, 2), df._DFCASCI)) self.assertTrue(isinstance(msym.density_fit().CASCI(2, 2), mcscf.casci_symm.CASCI)) self.assertTrue(isinstance(msym.CASSCF(2, 2), mcscf.mc1step_symm.CASSCF)) self.assertTrue(isinstance(msym.density_fit().CASSCF(2, 2), df._DFCASSCF)) self.assertTrue(isinstance(msym.density_fit().CASSCF(2, 2), mcscf.mc1step_symm.CASSCF))
emc = mc.kernel(mo)[0] print(ehf, emc, emc - ehf) #-76.0267656731 -76.0873922924 -0.0606266193028 print(emc - -76.0873923174, emc - -76.0926176464) mc = approx_hessian(mcscf.CASSCF(m, 6, (3, 1))) mc.verbose = 4 emc = mc.mc2step(mo)[0] print(emc - -75.7155632535814) mf = scf.density_fit(m) mf.kernel() #mc = density_fit(mcscf.CASSCF(mf, 6, 4)) #mc = mcscf.CASSCF(mf, 6, 4) mc = mcscf.DFCASSCF(mf, 6, 4) mc.verbose = 4 mo = addons.sort_mo(mc, mc.mo_coeff, (3, 4, 6, 7, 8, 9), 1) emc = mc.kernel(mo)[0] print(emc, 'ref = -76.0917567904955', emc - -76.0917567904955) mc.with_dep4 = True mc.max_cycle_micro = 10 emc = mc.kernel(mo)[0] print(emc, 'ref = -76.0917567904955', emc - -76.0917567904955) #mc = density_fit(mcscf.CASCI(mf, 6, 4)) #mc = mcscf.CASCI(mf, 6, 4) mc = mcscf.DFCASCI(mf, 6, 4) mo = addons.sort_mo(mc, mc.mo_coeff, (3, 4, 6, 7, 8, 9), 1) emc = mc.kernel(mo)[0] print(emc, 'ref = -76.0476686258461', emc - -76.0476686258461)
def test_casci_symm_4o4e(self): mc = mcscf.DFCASCI(msym.density_fit('weigend'), 4, 4) emc = mc.casci()[0] self.assertAlmostEqual(emc, -108.88669369639578, 7)
def CASCI(self, ncas, nelecas, auxbasis=None, ncore=None): from pyscf import mcscf return mcscf.DFCASCI(self, ncas, nelecas, auxbasis, ncore)