def test_casci_grad(self): mc = mcscf.CASCI(mf, 4, 4).run() g1 = casci_grad.Gradients(mc).kernel() self.assertAlmostEqual(lib.finger(g1), -0.066025991364829367, 7) g1ref = kernel(mc) self.assertAlmostEqual(abs(g1 - g1ref).max(), 0, 7) mcs = mc.as_scanner() pmol = mol.copy() e1 = mcs(pmol.set_geom_('N 0 0 0; N 0 0 1.201; H 1 1 0; H 1 1 1.2')) e2 = mcs(pmol.set_geom_('N 0 0 0; N 0 0 1.199; H 1 1 0; H 1 1 1.2')) self.assertAlmostEqual(g1[1, 2], (e1 - e2) / 0.002 * lib.param.BOHR, 5)
def nuc_grad_method(self): from pyscf.grad import casci return casci.Gradients(self)