def test_qcdb__energy_d3(): eneyne = qcdb.set_molecule(seneyne) eneyne.update_geometry() E, jrec = qcdb.energy('d3-b3lyp-d2', return_wfn=True) assert compare_values(ref['eneyne']['B3LYP-D2']['dimer'], E, 7, 'P: Ethene-Ethyne -D2') assert compare_values(ref['eneyne']['B3LYP-D2']['dimer'], jrec['qcvars']['DISPERSION CORRECTION ENERGY'].data, 7, tnm()) assert compare_values( ref['eneyne']['B3LYP-D2']['dimer'], jrec['qcvars']['B3LYP-D2 DISPERSION CORRECTION ENERGY'].data, 7, tnm()) mA = eneyne.extract_subsets(1) E, jrec = qcdb.energy('d3-b3lyp-d3bj', return_wfn=True, molecule=mA) assert compare_values(ref['eneyne']['B3LYP-D3(BJ)']['mA'], E, 7, tnm()) assert compare_values(ref['eneyne']['B3LYP-D3(BJ)']['mA'], jrec['qcvars']['DISPERSION CORRECTION ENERGY'].data, 7, tnm()) assert compare_values( ref['eneyne']['B3LYP-D3(BJ)']['mA'], jrec['qcvars']['B3LYP-D3(BJ) DISPERSION CORRECTION ENERGY'].data, 7, tnm())
def test_pubchem_4a(): subject = subject4 fullans = copy.deepcopy(fullans4) fullans["provenance"] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True) assert compare_molrecs(ans4, intermed, tnm() + ": intermediate") assert compare_molrecs(fullans, final["qm"], tnm() + ": full")
def test_pubchem_13i(): subject = "PubChem:223" fullans = copy.deepcopy(fullans13) fullans['provenance'] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True) assert compare_molrecs(ans13, intermed, tnm() + ': intermediate') assert compare_molrecs(fullans, final['qm'], tnm() + ': full')
def test_pubchem_13i(): subject = "PubChem:223" fullans = copy.deepcopy(fullans13) fullans["provenance"] = _string_prov_stamp with xfail_on_pubchem_busy(): final, intermed = qcelemental.molparse.from_string(subject, return_processed=True) assert compare_molrecs(ans13, intermed, tnm() + ": intermediate") assert compare_molrecs(fullans, final["qm"], tnm() + ": full")
def test_pubchem_4c(): subject = """ pubchem : 241 """ ans = copy.deepcopy(ans4) ans["name"] = "benzene" fullans = copy.deepcopy(fullans4) fullans["name"] = "benzene" fullans["provenance"] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True, name="benzene", verbose=2) assert compare_molrecs(ans, intermed, tnm() + ": intermediate") assert compare_molrecs(fullans, final["qm"], tnm() + ": full")
def test_pubchem_4c(): subject = """ pubchem : 241 """ ans = copy.deepcopy(ans4) ans['name'] = 'benzene' fullans = copy.deepcopy(fullans4) fullans['name'] = 'benzene' fullans['provenance'] = _string_prov_stamp final, intermed = qcelemental.molparse.from_string(subject, return_processed=True, name='benzene', verbose=2) assert compare_molrecs(ans, intermed, tnm() + ': intermediate') assert compare_molrecs(fullans, final['qm'], tnm() + ': full')
def test_dftd3__from_arrays(inp, expected): res = empirical_dispersion_resources.from_arrays(**inp[0]) assert compare_recursive(expected, res, atol=1.e-4) assert compare(inp[1], _compute_key(res), 'key') res = empirical_dispersion_resources.from_arrays(name_hint=res['fctldash'], level_hint=res['dashlevel'], param_tweaks=res['dashparams']) assert compare_recursive(expected, res, tnm() + ' idempotent', atol=1.e-4)
def test_qcdb__energy_d3(): eneyne = qcdb.set_molecule(seneyne) eneyne.update_geometry() E, jrec = qcdb.energy('d3-b3lyp-d2', return_wfn=True) assert compare_values(ref['eneyne']['B3LYP-D2']['dimer'], E, 7, 'P: Ethene-Ethyne -D2') assert compare_values(ref['eneyne']['B3LYP-D2']['dimer'], jrec['qcvars']['DISPERSION CORRECTION ENERGY'].data, 7, tnm()) assert compare_values(ref['eneyne']['B3LYP-D2']['dimer'], jrec['qcvars']['B3LYP-D2 DISPERSION CORRECTION ENERGY'].data, 7, tnm()) mA = eneyne.extract_subsets(1) E, jrec = qcdb.energy('d3-b3lyp-d3bj', return_wfn=True, molecule=mA) assert compare_values(ref['eneyne']['B3LYP-D3(BJ)']['mA'], E, 7, tnm()) assert compare_values(ref['eneyne']['B3LYP-D3(BJ)']['mA'], jrec['qcvars']['DISPERSION CORRECTION ENERGY'].data, 7, tnm()) assert compare_values(ref['eneyne']['B3LYP-D3(BJ)']['mA'], jrec['qcvars']['B3LYP-D3(BJ) DISPERSION CORRECTION ENERGY'].data, 7, tnm())
def test_dftd3__from_arrays__supplement(): ans = { 'dashlevel': 'chg', 'dashparams': { 's6': 4.05 }, 'fctldash': 'asdf-d4', 'dashparams_citation': ' mypaper\n' } supp = {'chg': {'definitions': {'asdf-d4': {'params': {'s6': 4.05}, 'citation': ' mypaper\n'}}}} res = dftd3.from_arrays(name_hint='asdf-d4', level_hint='chg', dashcoeff_supplement=supp) assert compare_recursive(ans, res, atol=1.e-4) with pytest.raises(ValueError) as e: dftd3.from_arrays(name_hint=res['fctldash'], level_hint=res['dashlevel'], param_tweaks=res['dashparams']) assert "Can't guess -D correction level" in str(e) res = dftd3.from_arrays( name_hint=res['fctldash'], level_hint=res['dashlevel'], param_tweaks=res['dashparams'], dashcoeff_supplement=supp) assert compare_recursive(ans, res, tnm() + ' idempotent', atol=1.e-4)
def test_dftd3__from_arrays(inp, expected): res = dftd3.from_arrays(**inp[0]) assert compare_recursive(expected, res, atol=1.e-4) assert compare(inp[1], _compute_key(res), 'key') res = dftd3.from_arrays(name_hint=res['fctldash'], level_hint=res['dashlevel'], param_tweaks=res['dashparams']) assert compare_recursive(expected, res, tnm() + ' idempotent', atol=1.e-4)