mol.atom = [[8, (0., 0., 0.)], [1, (0., -.957, .587)], [1, (0.2, .757, .487)]] mol.basis = '631g' mol.build() mf0 = mf = scf.RHF(mol).run(conv_tol=1.) mf = scf.addons.convert_to_uhf(mf) from pyscf.cc import ccsd_t_lambda_slow as ccsd_t_lambda from pyscf.cc import ccsd_t_rdm_slow as ccsd_t_rdm mycc0 = cc.CCSD(mf0) eris0 = mycc0.ao2mo() mycc0.kernel(eris=eris0) t1 = mycc0.t1 t2 = mycc0.t2 imds = ccsd_t_lambda.make_intermediates(mycc0, t1, t2, eris0) l1, l2 = ccsd_t_lambda.update_lambda(mycc0, t1, t2, t1, t2, eris0, imds) dm1ref = ccsd_t_rdm.make_rdm1(mycc0, t1, t2, l1, l2, eris0) dm2ref = ccsd_t_rdm.make_rdm2(mycc0, t1, t2, l1, l2, eris0) t1 = (t1, t1) t2aa = t2 - t2.transpose(1, 0, 2, 3) t2 = (t2aa, t2, t2aa) l1 = (l1, l1) l2aa = l2 - l2.transpose(1, 0, 2, 3) l2 = (l2aa, l2, l2aa) mycc = cc.UCCSD(mf) eris = mycc.ao2mo() dm1 = make_rdm1(mycc, t1, t2, l1, l2, eris) dm2 = make_rdm2(mycc, t1, t2, l1, l2, eris) trdm1 = dm1[0] + dm1[1] trdm2 = dm2[0] + dm2[1] + dm2[1].transpose(2, 3, 0, 1) + dm2[2]
[1 , (0. , -.957 , .587)], [1 , (0.2, .757 , .487)]] mol.basis = '631g' mol.build() mf0 = mf = scf.RHF(mol).run(conv_tol=1.) mf = scf.addons.convert_to_uhf(mf) from pyscf.cc import ccsd_t_lambda_slow as ccsd_t_lambda from pyscf.cc import ccsd_t_rdm_slow as ccsd_t_rdm mycc0 = cc.CCSD(mf0) eris0 = mycc0.ao2mo() mycc0.kernel(eris=eris0) t1 = mycc0.t1 t2 = mycc0.t2 imds = ccsd_t_lambda.make_intermediates(mycc0, t1, t2, eris0) l1, l2 = ccsd_t_lambda.update_lambda(mycc0, t1, t2, t1, t2, eris0, imds) dm1ref = ccsd_t_rdm.make_rdm1(mycc0, t1, t2, l1, l2, eris0) dm2ref = ccsd_t_rdm.make_rdm2(mycc0, t1, t2, l1, l2, eris0) t1 = (t1, t1) t2aa = t2 - t2.transpose(1,0,2,3) t2 = (t2aa, t2, t2aa) l1 = (l1, l1) l2aa = l2 - l2.transpose(1,0,2,3) l2 = (l2aa, l2, l2aa) mycc = cc.UCCSD(mf) eris = mycc.ao2mo() dm1 = make_rdm1(mycc, t1, t2, l1, l2, eris) dm2 = make_rdm2(mycc, t1, t2, l1, l2, eris) trdm1 = dm1[0] + dm1[1] trdm2 = dm2[0] + dm2[1] + dm2[1].transpose(2,3,0,1) + dm2[2]
mol.basis = '631g' mol.spin = 0 mol.build() mf0 = mf = scf.RHF(mol).run(conv_tol=1) mf = scf.addons.convert_to_uhf(mf) mycc = cc.UCCSD(mf) eris = mycc.ao2mo() from pyscf.cc import ccsd_t_lambda_slow as ccsd_t_lambda mycc0 = cc.CCSD(mf0) eris0 = mycc0.ao2mo() mycc0.kernel(eris=eris0) t1 = mycc0.t1 t2 = mycc0.t2 imds = ccsd_t_lambda.make_intermediates(mycc0, t1, t2, eris0) l1, l2 = ccsd_t_lambda.update_lambda(mycc0, t1, t2, t1, t2, eris0, imds) l1ref, l2ref = ccsd_t_lambda.update_lambda(mycc0, t1, t2, l1, l2, eris0, imds) t1 = (t1, t1) t2aa = t2 - t2.transpose(1,0,2,3) t2 = (t2aa, t2, t2aa) l1 = (l1, l1) l2aa = l2 - l2.transpose(1,0,2,3) l2 = (l2aa, l2, l2aa) imds = make_intermediates(mycc, t1, t2, eris) l1, l2 = update_lambda(mycc, t1, t2, l1, l2, eris, imds) print(abs(l2[1]-l2[1].transpose(1,0,2,3)-l2[0]).max()) print(abs(l2[1]-l2[1].transpose(0,1,3,2)-l2[2]).max()) print(abs(l1[0]-l1ref).max()) print(abs(l2[1]-l2ref).max())
[1 , (0. , -0.757 , 0.587)], [1 , (0. , 0.757 , 0.587)]] mol.basis = '631g' mol.spin = 0 mol.build() mf0 = mf = scf.RHF(mol).run(conv_tol=1.) mf = scf.addons.convert_to_ghf(mf) from pyscf.cc import ccsd_t_lambda_slow as ccsd_t_lambda mycc0 = cc.CCSD(mf0) eris0 = mycc0.ao2mo() mycc0.kernel(eris=eris0) t1 = mycc0.t1 t2 = mycc0.t2 imds = ccsd_t_lambda.make_intermediates(mycc0, t1, t2, eris0) l1, l2 = ccsd_t_lambda.update_lambda(mycc0, t1, t2, t1, t2, eris0, imds) l1ref, l2ref = ccsd_t_lambda.update_lambda(mycc0, t1, t2, l1, l2, eris0, imds) mycc = cc.GCCSD(mf) eris = mycc.ao2mo() t1 = mycc.spatial2spin(t1, mycc.mo_coeff.orbspin) t2 = mycc.spatial2spin(t2, mycc.mo_coeff.orbspin) l1 = mycc.spatial2spin(l1, mycc.mo_coeff.orbspin) l2 = mycc.spatial2spin(l2, mycc.mo_coeff.orbspin) imds = make_intermediates(mycc, t1, t2, eris) l1, l2 = update_lambda(mycc, t1, t2, l1, l2, eris, imds) l1 = mycc.spin2spatial(l1, mycc.mo_coeff.orbspin) l2 = mycc.spin2spatial(l2, mycc.mo_coeff.orbspin) print(abs(l2[1]-l2[1].transpose(1,0,2,3)-l2[0]).max()) print(abs(l2[1]-l2[1].transpose(0,1,3,2)-l2[0]).max()) print(abs(l1[0]-l1ref).max()) print(abs(l2[1]-l2ref).max())