def test_json(): """json/energy""" import numpy as np # Generate JSON data json_data = {} json_data["molecule"] = """He 0 0 0\n--\nHe 0 0 1""" json_data["driver"] = "gradient" json_data["method"] = 'SCF' json_data["kwargs"] = {} json_data["options"] = {"BASIS": "STO-3G"} json_data["return_output"] = True psi4.json_wrapper.run_json(json_data) assert psi4.compare_strings("STO-3G", json_data["options"]["BASIS"], "Options test") assert psi4.compare_integers(True, json_data["success"], "Success") bench_energy = -5.433191881443323 cenergy = json_data["variables"]["CURRENT ENERGY"] bench_gradient = np.array([[0.0, 0.0, 0.4206844], [0.0, 0.0, -0.4206844]]) cgradient = psi4.core.Matrix.from_serial(json_data["return_value"]) assert psi4.compare_arrays(bench_gradient, cgradient.np, 4, "SCF RETURN_VALUE") return_wfn = "return_wfn" not in json_data["kwargs"] assert psi4.compare_integers(True, return_wfn, "Immutable input") with open("pytest_output.dat", "w") as f: f.write(json_data["raw_output"])
def test_json(): """json/energy""" import numpy as np # Generate JSON data json_data = {} json_data["molecule"] = """He 0 0 0\n--\nHe 0 0 1""" json_data["driver"] = "gradient" json_data["method"] = 'SCF' json_data["kwargs"] = {} json_data["options"] = {"BASIS": "STO-3G"} json_data["return_output"] = True psi4.json_wrapper.run_json(json_data) assert psi4.compare_strings("STO-3G", json_data["options"]["BASIS"], "Options test") assert psi4.compare_integers(True, json_data["success"], "Success") bench_energy = -5.433191881443323 cenergy = json_data["variables"]["CURRENT ENERGY"] bench_gradient = np.array([[ 0.0 , 0.0 , 0.4206844], [ 0.0 , 0.0 , -0.4206844]]) cgradient = psi4.core.Matrix.from_serial(json_data["return_value"]) assert psi4.compare_arrays(bench_gradient, cgradient.np, 4, "SCF RETURN_VALUE") return_wfn = "return_wfn" not in json_data["kwargs"] assert psi4.compare_integers(True, return_wfn, "Immutable input") with open("pytest_output.dat", "w") as f: f.write(json_data["raw_output"])
expected_properties = { "calcinfo_nbasis": 13, "calcinfo_nmo": 13, "calcinfo_nalpha": 5, "calcinfo_nbeta": 5, "calcinfo_natom": 3, "scf_one_electron_energy": -122.27509111304202, "scf_two_electron_energy": 37.49348718008625, "nuclear_repulsion_energy": 8.80146206062943, "scf_total_energy": -75.98014187232634, "return_energy": -75.98014187232634 } json_ret = psi4.json_wrapper.run_json(json_data) with open("output.json", "w") as ofile: #TEST json.dump(json_ret, ofile, indent=2) #TEST psi4.compare_integers(True, json_ret["success"], "JSON Success") #TEST psi4.compare_strings("qc_schema_output", json_ret["schema_name"], "Schema Name") #TEST for k in expected_return_result.keys(): #TEST psi4.compare_arrays(expected_return_result[k], json_ret["return_result"][k], 5, "Result: " + k.upper()) #TEST for k in expected_properties.keys(): #TEST psi4.compare_values(expected_properties[k], json_ret["properties"][k], 5, k.upper()) #TEST
} expected_properties = { "calcinfo_nbasis": 13, "calcinfo_nmo": 13, "calcinfo_nalpha": 5, "calcinfo_nbeta": 5, "calcinfo_natom": 3, "scf_one_electron_energy": -122.27509111304202, "scf_two_electron_energy": 37.49348718008625, "nuclear_repulsion_energy": 8.80146206062943, "scf_total_energy": -75.98014187232634, "return_energy": -75.98014187232634 } json_ret = psi4.json_wrapper.run_json(json_data) with open("output.json", "w") as ofile: #TEST json.dump(json_ret, ofile, indent=2) #TEST psi4.compare_integers(True, json_ret["success"], "JSON Success") #TEST psi4.compare_strings("qc_schema_output", json_ret["schema_name"], "Schema Name") #TEST for k in expected_return_result.keys(): #TEST psi4.compare_arrays(expected_return_result[k], json_ret["return_result"][k], 5, "Result: " + k.upper()) #TEST for k in expected_properties.keys(): #TEST psi4.compare_values(expected_properties[k], json_ret["properties"][k], 5, k.upper()) #TEST
import numpy as np import psi4 # Generate JSON data json_data = {} json_data["molecule"] = """He 0 0 0\n--\nHe 0 0 1""" json_data["memory"] = "5GB" json_data["driver"] = "energy" json_data["method"] = 'SCF' json_data["kwargs"] = {"bsse_type": "cp"} json_data["options"] = {"BASIS": "STO-3G"} json_data["return_output"] = True psi4.json_wrapper.run_json(json_data) psi4.compare_strings("STO-3G", json_data["options"]["BASIS"], "Options test") #TEST psi4.compare_integers(True, len(json_data["raw_output"]) > 5000, "Output returned") #TEST psi4.compare_integers(True, json_data["success"], "Success") #TEST bench_cp_energy = 0.183936053861 #TEST cenergy = json_data["variables"]["CURRENT ENERGY"] #TEST psi4.compare_values(bench_cp_energy, cenergy, 5, "SCF CURRENT ENERGY") #TEST cenergy = json_data["return_value"] #TEST psi4.compare_values(bench_cp_energy, cenergy, 5, "SCF RETURN_VALUE") #TEST return_wfn = "return_wfn" not in json_data["kwargs"] #TEST psi4.compare_integers(True, return_wfn, "Immutable input") #TEST
172.2560000 0.0617669 25.9109000 0.3587940 5.5333500 0.7007130 SP 2 1.00 3.6649800 -0.3958970 0.2364600 0.7705450 1.2158400 0.8606190 SP 1 1.00 0.1958570 1.0000000 1.0000000 **** [DZ] spherical **** H 0 S 3 1.00 19.2406000 0.0328280 2.8992000 0.2312080 0.6534000 0.8172380 S 1 1.00 0.1776000 1.0000000 **** """) psi4.set_options({'d_convergence': 11, 'e_convergence': 11, 'scf_type': 'pk'}) scfenergy = psi4.energy('scf') psi4.compare_strings("c2v", bz.schoenflies_symbol(), "Point group") #TEST psi4.compare_values(refnuc, bz.nuclear_repulsion_energy(), 10, "Nuclear repulsion energy") #TEST psi4.compare_values(refscf, scfenergy, 10, "SCF Energy") #TEST
# RIFIT H 14/15 C 56/66 H +9/10 C +16/20 # JKFIT H 23/25 C 70/81 H +9/10 C +16/20 mymol = psi4.geometry(""" C 0.0 0.0 0.0 O 1.4 0.0 0.0 H_r -0.5 -0.7 0.0 H_l -0.5 0.7 0.0 """) psi4.set_options({'basis': 'cc-pvdz'}) print('[1] <<< uniform cc-pVDZ >>>') wert, ecp = psi4.core.BasisSet.build(mymol, 'BASIS', psi4.core.get_global_option('BASIS')) psi4.compare_strings('CC-PVDZ', psi4.core.get_global_option('BASIS'), 'name') #TEST psi4.compare_integers(38, wert.nbf(), 'nbf()') #TEST psi4.compare_integers(40, wert.nao(), 'nao()') #TEST psi4.compare_strings('c2v', mymol.schoenflies_symbol(), 'symm') #TEST psi4.compare_strings('CC-PVDZ', wert.name(), 'callby') #TEST psi4.compare_strings('CC-PVDZ', wert.blend(), 'blend') #TEST mymol.print_out() print('[2] <<< RIFIT (default) >>>') wert = psi4.core.BasisSet.build(mymol, 'DF_BASIS_MP2', '', 'RIFIT', psi4.core.get_global_option('BASIS')) psi4.compare_integers(140, wert.nbf(), 'nbf()') #TEST psi4.compare_integers(162, wert.nao(), 'nao()') #TEST psi4.compare_strings('c2v', mymol.schoenflies_symbol(), 'symm') #TEST psi4.compare_strings('(CC-PVDZ AUX)', wert.name(), 'callby') #TEST psi4.compare_strings('CC-PVDZ-RI', wert.blend(), 'blend') #TEST
# RIFIT H 14/15 C 56/66 H +9/10 C +16/20 # JKFIT H 23/25 C 70/81 H +9/10 C +16/20 mymol = psi4.geometry(""" C 0.0 0.0 0.0 O 1.4 0.0 0.0 H_r -0.5 -0.7 0.0 H_l -0.5 0.7 0.0 """) psi4.set_options({'basis': 'cc-pvdz'}) print('[1] <<< uniform cc-pVDZ >>>') wert,ecp = psi4.core.BasisSet.build(mymol, 'BASIS', psi4.core.get_global_option('BASIS')) psi4.compare_strings('CC-PVDZ', psi4.core.get_global_option('BASIS'), 'name') #TEST psi4.compare_integers(38, wert.nbf(), 'nbf()') #TEST psi4.compare_integers(40, wert.nao(), 'nao()') #TEST psi4.compare_strings('c2v', mymol.schoenflies_symbol(), 'symm') #TEST psi4.compare_strings('CC-PVDZ', wert.name(), 'callby') #TEST psi4.compare_strings('CC-PVDZ', wert.blend(), 'blend') #TEST mymol.print_out() print('[2] <<< RIFIT (default) >>>') wert = psi4.core.BasisSet.build(mymol, 'DF_BASIS_MP2', '', 'RIFIT', psi4.core.get_global_option('BASIS')) psi4.compare_integers(140, wert.nbf(), 'nbf()') #TEST psi4.compare_integers(162, wert.nao(), 'nao()') #TEST psi4.compare_strings('c2v', mymol.schoenflies_symbol(), 'symm') #TEST psi4.compare_strings('(CC-PVDZ AUX)', wert.name(), 'callby') #TEST psi4.compare_strings('CC-PVDZ-RI', wert.blend(), 'blend') #TEST
import psi4 psi4.set_output_file("output.dat", False) # Generate JSON data json_data = {} json_data["molecule"] = """He 0 0 0\n--\nHe 0 0 1""" json_data["driver"] = "gradient" json_data["method"] = 'SCF' json_data["kwargs"] = {} json_data["options"] = {"BASIS": "STO-3G"} json_data["return_output"] = True psi4.json_wrapper.run_json(json_data) psi4.compare_strings("STO-3G", json_data["options"]["BASIS"], "Options test") #TEST psi4.compare_integers(True, json_data["success"], "Success") #TEST bench_energy = -5.433191881443323 #TEST cenergy = json_data["variables"]["CURRENT ENERGY"] #TEST psi4.compare_values(bench_energy, cenergy, 5, "SCF CURRENT ENERGY") #TEST bench_gradient = np.array([[ 0.0 , 0.0 , 0.4206844], [ 0.0 , 0.0 , -0.4206844]]) cgradient = psi4.core.Matrix.from_serial(json_data["return_value"]) #TEST psi4.compare_arrays(bench_gradient, cgradient.np, 4, "SCF RETURN_VALUE") #TEST return_wfn = "return_wfn" not in json_data["kwargs"] #TEST psi4.compare_integers(True, return_wfn, "Immutable input") #TEST
5.5333500 0.7007130 SP 2 1.00 3.6649800 -0.3958970 0.2364600 0.7705450 1.2158400 0.8606190 SP 1 1.00 0.1958570 1.0000000 1.0000000 **** [DZ] spherical **** H 0 S 3 1.00 19.2406000 0.0328280 2.8992000 0.2312080 0.6534000 0.8172380 S 1 1.00 0.1776000 1.0000000 **** """) psi4.set_options({ 'd_convergence': 11, 'e_convergence': 11, 'scf_type': 'pk'}) scfenergy = psi4.energy('scf') psi4.compare_strings("c2v", bz.schoenflies_symbol(), "Point group") #TEST psi4.compare_values(refnuc, bz.nuclear_repulsion_energy(), 10, "Nuclear repulsion energy") #TEST psi4.compare_values(refscf, scfenergy, 10, "SCF Energy") #TEST