def test_scf(): bas_list = ['STO-3G','DZ','DZP'] mol_list = ['H2O', 'CO2', 'C2H4'] for name in mol_list: geom = mesp.mollib[name] geom += '\nsymmetry c1' for bas in bas_list: psi4.core.clean() mol = mesp.Molecule(name,geom,bas) psi4.set_options({ 'basis':bas, 'scf_type':'pk', 'freeze_core':'false', 'e_convergence':1e-12, 'd_convergence':1e-12}) psi4.set_module_options('SCF', {'e_convergence': 1e-12, 'd_convergence': 1e-12, 'DIIS': True, 'scf_type':'pk'}) print("Results for {}/SCF/{}".format(name,bas)) mesp.scf.do_scf(mol) E_mesp = mol.E_SCF E_psi4 = psi4.energy('SCF',molecule=mol.p4mol) print("mesp energy: {}".format(E_mesp)) print("Psi4 energy: {}\n\n".format(E_psi4)) psi4.compare_values(E_psi4,E_mesp,11,"RHF Energy")
def test_mp2(): bas_list = ['STO-3G','DZ'] mol_list = ['H2O'] for name in mol_list: geom = mesp.mollib[name] geom += '\nsymmetry c1' for bas in bas_list: psi4.core.clean() mol = mesp.Molecule(name,geom,bas) psi4.set_options({ 'basis':bas, 'scf_type':'pk', 'mp2_type':'conv', 'freeze_core':'false', 'e_convergence':1e-12, 'd_convergence':1e-12}) psi4.set_module_options('SCF', {'e_convergence': 1e-12, 'd_convergence': 1e-12, 'DIIS': True, 'scf_type':'pk'}) print("Results for {}/MP2/{}".format(name,bas)) mesp.mp2.do_mp2(mol) E_mesp = mol.E_MP2 E_psi4 = psi4.energy('MP2') print("mesp energy: {}".format(E_mesp)) print("Psi4 energy: {}".format(E_psi4)) psi4.compare_values(E_psi4,E_mesp,11,"MP2 Energy")