def test_duccsdtq(): """Test projective factorized UCCSDTQ on Ne using RHF/cc-pVDZ orbitals""" import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -128.679023738907 geom = "Ne" scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='cc-pVDZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects( psi4_wfn, mo_spaces={'FROZEN_DOCC': [1, 0, 0, 0, 0, 0, 0, 0]}) calc_data = scc.run_cc(forte_objs[1], forte_objs[2], forte_objs[3], cc_type='ducc', max_exc=4, e_convergence=1.0e-11) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' DUCCSDTQ energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_ccsdtq(): """Test CCSDTQ on H4 using RHF/DZ orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 ref_energy = -2.225370535177 # from psi4 geom = """ H 0.0 0.0 0.0 H 0.0 0.0 1.0 H 0.0 0.0 2.0 H 0.0 0.0 3.0 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='DZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc( forte_objs['as_ints'], forte_objs['scf_info'], forte_objs['mo_space_info'], cc_type='cc', max_exc=4 ) psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' CCSDTQ energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_uccsd_8(): """Test projective unlinked UCCSD on H4 using RHF/STO-3G orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -1.9976233094 # from Jonathon geom = """ H 0.0 0.0 0.0 H 0.0 0.0 1.5 H 0.0 0.0 3.0 H 0.0 0.0 4.5 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='sto-3g', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc( forte_objs[1], forte_objs[2], forte_objs[3], cc_type='ucc', max_exc=2, e_convergence=1.0e-10, linked=False ) forte.cleanup() psi4.core.clean() energy = calc_data[-1][2] print(f' HF energy: {scf_energy}') print(f' CCSD energy: {energy}') print(f' corr. energy: {energy - scf_energy}') assert energy == pytest.approx(ref_energy, 1.0e-6)
def test_ccsdtq_3(): """Test CCSDTQ on Ne using RHF/cc-pVDZ orbitals""" import forte.proc.scc as scc import forte import psi4 ref_energy = -128.679014931 # from Evangelista, J. Chem. Phys. 134, 224102 (2011). geom = "Ne" scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='cc-pVDZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects( psi4_wfn, mo_spaces={'FROZEN_DOCC': [1, 0, 0, 0, 0, 0, 0, 0]}) calc_data = scc.run_cc(forte_objs['as_ints'], forte_objs['scf_info'], forte_objs['mo_space_info'], cc_type='cc', max_exc=4, e_convergence=1.0e-12) psi4.core.clean() energy = calc_data[-1][1] print(energy - ref_energy) assert energy == pytest.approx(ref_energy, 1.0e-9)
def test_duccsd(): """Test projective factorized UCCSDT on Ne using RHF/cc-pVDZ orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 ref_energy = -128.677997285129 geom = "Ne" scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='cc-pVDZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects( psi4_wfn, mo_spaces={'FROZEN_DOCC': [1, 0, 0, 0, 0, 0, 0, 0]}) calc_data = scc.run_cc(forte_objs['as_ints'], forte_objs['scf_info'], forte_objs['mo_space_info'], cc_type='ducc', max_exc=2, e_convergence=1.0e-10) psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' DUCCSD energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_uccsd(): """Test projective UCCSD on H2 using RHF/DZ orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 ref_energy = -1.126712715716011 # UCCSD = FCI energy from psi4 geom = """ H H 1 1.0 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='DZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc(forte_objs['as_ints'], forte_objs['scf_info'], forte_objs['mo_space_info'], cc_type='ucc', max_exc=2, e_convergence=1.0e-11) psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' UCCSD energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_duccsdt(): """Test projective factorized UCCSDT on Ne using RHF/cc-pVDZ orbitals""" ref_energy = -128.679016191303 # this number was obtained with the on_the_fly implementation geom = "Ne" scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='cc-pVDZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects( psi4_wfn, mo_spaces={'FROZEN_DOCC': [1, 0, 0, 0, 0, 0, 0, 0]}) calc_data = scc.run_cc(forte_objs['as_ints'], forte_objs['scf_info'], forte_objs['mo_space_info'], cc_type='ducc', max_exc=3, e_convergence=1.0e-11) psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' DUCCSDT energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_uccsd_2(): """Test projective UCCSD on Ne using RHF/cc-pVDZ orbitals""" import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -128.677999887 # from Evangelista, J. Chem. Phys. 134, 224102 (2011). geom = "Ne" scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='cc-pVDZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={'FROZEN_DOCC': [1, 0, 0, 0, 0, 0, 0, 0]}) calc_data = scc.run_cc(forte_objs[1], forte_objs[2], forte_objs[3], cc_type='ucc', max_exc=2, e_convergence=1.0e-10) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' UCCSD energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_uccsd_3(): """Test projective UCCSD on Ne using RHF/cc-pVDZ orbitals""" import forte.proc.scc as scc import forte import psi4 import os.path forte.startup() ref_energy = -107.655681875111 psi4.set_options({'FORTE__FROZEN_DOCC': [2]}) options = forte.prepare_forte_options() forte_objects = forte.prepare_forte_objects_from_fcidump( options, os.path.dirname(__file__)) state_weights_map, mo_space_info, scf_info, fcidump = forte_objects ints = forte.make_ints_from_fcidump(fcidump, options, mo_space_info) as_ints = forte.make_active_space_ints(mo_space_info, ints, 'CORRELATED', []) calc_data = scc.run_cc(as_ints, scf_info, mo_space_info, cc_type='ucc', max_exc=2, e_convergence=1.0e-10) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' UCCSD energy: {energy}') assert energy == pytest.approx(ref_energy, 1.0e-9)
def test_ccsd(): """Test CCSD on H2 using RHF/DZ orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -1.126712715716011 # CCSD = FCI energy from psi4 geom = """ H H 1 1.0 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='DZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc( forte_objs[1], forte_objs[2], forte_objs[3], cc_type='dcc', max_exc=2, e_convergence=1.0e-11, on_the_fly=True ) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' CCSD energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_ul_uccsd_1(): """Test projective unlinked UCCSD on H4 using RHF/STO-3G orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 import os.path forte.startup() ref_energy = -1.9437216535661626 # from Jonathon psi4.set_options({ 'FORTE__FCIDUMP_FILE': 'INTDUMP2', 'FORTE__FCIDUMP_DOCC': [2], 'FORTE__FROZEN_DOCC': [0], }) options = forte.prepare_forte_options() forte_objects = forte.prepare_forte_objects_from_fcidump( options, os.path.dirname(__file__)) state_weights_map, mo_space_info, scf_info, fcidump = forte_objects ints = forte.make_ints_from_fcidump(fcidump, options, mo_space_info) as_ints = forte.make_active_space_ints(mo_space_info, ints, 'CORRELATED', []) calc_data = scc.run_cc(as_ints, scf_info, mo_space_info, cc_type='ucc', max_exc=2, e_convergence=1.0e-10, linked=False, diis_start=2) forte.cleanup() psi4.core.clean() energy = calc_data[-1][2] assert energy == pytest.approx(ref_energy, 1.0e-6)
def test_uccsd_4(): """Test projective UCCSD on Ne using RHF/cc-pVDZ orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -107.655681875111 geom = """ N N 1 1.3 symmetry c1 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='sto-3g', reference='RHF') forte_objs = forte.utils.prepare_forte_objects( psi4_wfn, mo_spaces={'frozen_docc': [2]}) calc_data = scc.run_cc(forte_objs[1], forte_objs[2], forte_objs[3], cc_type='ucc', max_exc=2, e_convergence=1.0e-10) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' CCSD energy: {energy}') print(f' corr. energy: {energy - scf_energy}') assert energy == pytest.approx(ref_energy, 1.0e-9)
def test_ccsdtq_2(): """Test CCSDTQ on H4 using RHF/cc-pVDZ orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -2.253982496764673 # from psi4 geom = """ H 0.0 0.0 0.0 H 0.0 0.0 1.0 H 0.0 0.0 2.0 H 0.0 0.0 3.0 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='cc-pVDZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc(forte_objs[1], forte_objs[2], forte_objs[3], cc_type='cc', max_exc=4, e_convergence=1.0e-12) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' CCSDTQ energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_ccsd_3(): """Test CCSD on H4 using RHF/DZ orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -2.225059801642 # from psi4 geom = """ H 0.0 0.0 0.0 H 0.0 0.0 1.0 H 0.0 0.0 2.0 H 0.0 0.0 3.0 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='DZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc(forte_objs[1], forte_objs[2], forte_objs[3], cc_type='cc', max_exc=2, on_the_fly=True) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' CCSD energy: {energy}') print(f' E - Eref: {energy - ref_energy}') assert energy == pytest.approx(ref_energy, 1.0e-11)
def test_uccsd_7(): """Test projective linearized unliked UCCSDT = CISDT on H4 using RHF/STO-3G orbitals""" import pytest import forte.proc.scc as scc import forte import psi4 ref_energy = -1.9824130356 # from CISDT geom = """ H 0.0 0.0 0.0 H 0.0 0.0 1.5 H 0.0 0.0 3.0 H 0.0 0.0 4.5 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='sto-3g', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc(forte_objs['as_ints'], forte_objs['scf_info'], forte_objs['mo_space_info'], cc_type='ucc', max_exc=3, e_convergence=1.0e-10, linked=False, maxk=1) psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' CCSD energy: {energy}') print(f' corr. energy: {energy - scf_energy}') assert energy == pytest.approx(ref_energy, 1.0e-9)
def test_ccsd2(): """Test CCSD on H2 using RHF/DZ orbitals""" import forte.proc.scc as scc import forte import psi4 forte.startup() ref_energy = -76.237730204702288 # CCSD energy from psi4 geom = """ O H 1 1.0 H 1 1.0 2 104.5 """ scf_energy, psi4_wfn = forte.utils.psi4_scf(geom, basis='cc-pVDZ', reference='RHF') forte_objs = forte.utils.prepare_forte_objects(psi4_wfn, mo_spaces={}) calc_data = scc.run_cc(forte_objs[1], forte_objs[2], forte_objs[3], cc_type='cc', max_exc=2, e_convergence=1.0e-6, r_convergence=1.0e-4, compute_threshold=1.0e-6, on_the_fly=True) forte.cleanup() psi4.core.clean() energy = calc_data[-1][1] print(f' HF energy: {scf_energy}') print(f' CCSD energy: {energy}') print(f' E - Eref: {energy - ref_energy}')