Exemplo n.º 1
0
def test_scf():

    for mol_str in quest.mollib:
        basis = 'sto-3g'

        molecule = quest.Molecule(mol_str, basis)
        wfn = quest.Wavefunction(molecule, {})


        # Compute RHF
        scf_energy = quest.scf_module.compute_rhf(wfn)

        psi4.set_options({"scf_type": "pk"})
        ref_energy = psi4.energy("SCF" + "/" + basis, molecule=molecule.mol)

        assert np.allclose(ref_energy, scf_energy)
Exemplo n.º 2
0
def test_mp2():
    geometry = psi4.geometry("""
    O
    H 1 1.1
    H 1 1.1 2 104
    """)
    basis = "STO-3G"
    mol = quest.Molecule(geometry, basis)
    wafu = quest.Wavefunction(mol, {})
    scf_energy = quest.scf_module.compute_rhf(wafu, diis=False)
    mp2_energy = quest.mp2.mp2(wafu)

    psi4.set_options({"scf_type": "pk", "mp2_type": "conv"})
    psi4_scf_energy = psi4.energy('scf/' + basis, molecule=geometry)
    psi4_mp2_energy = psi4.energy('mp2/' + basis, molecule=geometry)

    assert np.allclose(scf_energy, psi4_scf_energy)
    assert np.allclose(mp2_energy, psi4_mp2_energy, 1e-4)
Exemplo n.º 3
0
def test_df_mp2(mol_str):
    geometry = psi4.geometry(quest.mollib[mol_str])
    basis = "STO-3G"
    rhf_options = \
    {
        'e_conv': 1.e-8,
        'd_conv': 1.e-8,
        'diis': True,
        'max_diis': 7,
        'max_iter': 100,
    }
    mol = quest.Molecule(geometry, basis)
    wafu = quest.Wavefunction(mol, rhf_options)
    scf_energy = quest.scf_module.compute_rhf(wafu)
    mp2_energy = quest.mp2.df_mp2(wafu)

    psi4.set_options({"scf_type": "df"})
    psi4_mp2_energy = psi4.energy('mp2/' + basis, molecule=geometry)
Exemplo n.º 4
0
def test_scf(mol_str):

    basis = 'sto-3g'

    molecule = quest.Molecule(quest.mollib[mol_str], basis)
    rhf_options = \
    {
        'e_conv': 1.e-8,
        'd_conv': 1.e-8,
        'diis': True,
        'max_diis': 7,
        'max_iter': 100,
    }

    wfn = quest.Wavefunction(molecule, rhf_options)

    # Compute RHF
    scf_energy = quest.scf_module.compute_rhf(wfn)

    psi4.set_options({"scf_type": "pk"})
    ref_energy = psi4.energy("SCF" + "/" + basis, molecule=molecule.mol)

    assert np.allclose(ref_energy, scf_energy)
Exemplo n.º 5
0
def test_mp2(mol_str):
    mol_str = quest.mollib[mol_str]
    basis = "sto-3g"

    rhf_options = \
    {
        'e_conv': 1.e-8,
        'd_conv': 1.e-8,
        'diis': True,
        'max_diis': 7,
        'max_iter': 100,
    }

    molecule = quest.Molecule(mol_str, basis)
    wfn = quest.Wavefunction(molecule, rhf_options)

    scf_energy = quest.scf_module.compute_rhf(wfn)
    mp2_energy = quest.mp2.mp2(wfn)

    psi4.set_options({"scf_type": "pk", "mp2_type": "conv"})
    ref_energy = psi4.energy("MP2" + "/" + basis, molecule=molecule.mol)

    assert np.allclose(mp2_energy, ref_energy)