示例#1
0
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"])
示例#2
0
def test_rhf_fchk(inp, datadir):
    """  FCHK RHF """
    mol = psi4.geometry("""
  no_reorient
  0 1
  O
  H 1 1.01
  H 1 1.0 2 104.5
  """)
    psi4.set_options({
        "BASIS": "pcseg-0",
        'd_convergence': 1e-12,
    })
    FCHK_file = f"rhf-{inp['name']}.fchk"
    reference_file = datadir.join(f"rhf-{inp['name']}.ref")
    psi4.set_options(inp['options'])
    e, wfn = psi4.gradient(inp['name'], return_wfn=True, molecule=mol)
    ret = psi4.driver.fchk(wfn, FCHK_file, debug=True)
    if inp['name'] in ['mp2', 'dct', 'omp2']:
        refwfn = wfn.reference_wavefunction()
        expected = calcD(refwfn)
    else:
        expected = calcD(wfn)
    assert psi4.compare_arrays(ret["Total SCF Density"], expected, 9, "FCHK RHF Density")
    assert psi4.compare_fchkfiles(reference_file, FCHK_file, 1.e-8, f" File comparison: {FCHK_file}")
示例#3
0
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"])
示例#4
0
def test_json():
    """json/energy"""

    import numpy as np

    # Generate JSON data
    json_input = {
        "schema_name": "qc_schema_input",
        "schema_version": 1,
        "molecule": {
            "symbols": ["He", "He"],
            "geometry": [0, 0, -1, 0, 0, 1]
        },
        "driver": "gradient",
        "model": {
            "method": "SCF",
            "basis": "sto-3g"
        },
        "keywords": {}
    }

    json_ret = psi4.json_wrapper.run_json(json_input)

    assert psi4.compare_integers(True, json_ret["success"], "Success")
    assert psi4.compare_values(-5.474227786274896, json_ret["properties"]["return_energy"], 4, "SCF ENERGY")

    bench_gradient = np.array([[  0.0 , 0.0 ,   0.32746933],
                               [  0.0 , 0.0 ,  -0.32746933]])
    cgradient = np.array(json_ret["return_result"]).reshape(-1, 3)
    assert psi4.compare_arrays(bench_gradient, cgradient, 4, "SCF RETURN GRADIENT")

    with open("pytest_output.dat", "w") as f:
        json.dump(json_ret["raw_output"], f)
示例#5
0
def test_uhf_fchk(inp2, datadir):
    """  FCHK UHF """
    mol = psi4.geometry("""
  no_reorient
  0 2
  O
  O 1 1.46
  H 2 0.97 1 104.6
  """)
    psi4.set_options({
        "BASIS": "pcseg-0",
        'reference': 'uhf',
        'e_convergence': 1e-12,
        'd_convergence': 1e-12,
        'r_convergence': 1e-10,
        'pcg_convergence': 1e-10,
    })
    FCHK_file = f"uhf-{inp2['name']}.fchk"
    reference_file = datadir.join(f"uhf-{inp2['name']}.ref")
    psi4.set_options(inp2['options'])
    e, wfn = psi4.gradient(inp2['name'], return_wfn=True, molecule=mol)
    ret = psi4.driver.fchk(wfn, FCHK_file, debug=True)
    assert psi4.compare_arrays(ret["Total SCF Density"], calcD(wfn), 9,
                               "FCHK UHF Density")
    assert psi4.compare_fchkfiles(reference_file, FCHK_file, 1.e-8,
                                  f" File comparison: {FCHK_file}")
示例#6
0
noorient_data["molecule"]["fix_com"] = True

# Write expected output
expected_return_result = -100.0194177509218
linear_dipole = 1.948993625469663 

psi4.json_wrapper.run_json(json_data)

# Orients to Z axis
psi4.compare_integers(True, json_data["success"], "JSON Success")  #TEST
psi4.compare_values(expected_return_result, json_data["return_result"], 5, "Return Value")  #TEST
psi4.compare_values(0.0, json_data["properties"]["scf_dipole_moment"][0], 5, "DIPOLE X")  #TEST
psi4.compare_values(0.0, json_data["properties"]["scf_dipole_moment"][1], 5, "DIPOLE Y")  #TEST
psi4.compare_values(linear_dipole, json_data["properties"]["scf_dipole_moment"][2], 5, "DIPOLE Z")  #TEST

dist = np.linalg.norm(np.array(json_data["molecule"]["geometry"])[:3] - np.array(np.array(json_data["molecule"]["geometry"])[3:])) #TEST
psi4.compare_values(1.732, dist, 4, "HF Bond Distance")  #TEST


psi4.json_wrapper.run_json(noorient_data)

# Orients to Z axis
psi4.compare_integers(True, noorient_data["success"], "JSON Success")  #TEST
psi4.compare_values(expected_return_result, noorient_data["return_result"], 5, "Return Value")  #TEST
psi4.compare_values(0.0, noorient_data["properties"]["scf_dipole_moment"][0], 5, "DIPOLE X")  #TEST
psi4.compare_values(linear_dipole, noorient_data["properties"]["scf_dipole_moment"][1], 5, "DIPOLE Y")  #TEST
psi4.compare_values(0.0, noorient_data["properties"]["scf_dipole_moment"][2], 5, "DIPOLE Z")  #TEST
psi4.compare_arrays([0.0, 0.0, 0.0], noorient_data["molecule"]["geometry"][:3], 5, "H Position")  #TEST
psi4.compare_arrays([0.0, 1.732, 0.0], noorient_data["molecule"]["geometry"][3:], 5, "F Position")  #TEST

示例#7
0
文件: test.py 项目: CDSherrill/psi4
                    if(form == 'pqQ'):    
                        for ind, i in enumerate(transformations):
                            j = space_pairs[ind]
                            dfh_Qmo.append(np.zeros((sizes[j[0]], sizes[j[1]], naux)))
                            for k in range(sizes[j[0]]):
                                dfh_Qmo[ind][k,:,:] = np.asarray(dfh.get_tensor(i, [k, k+1], [0, sizes[j[1]]], [0, naux]))
                    else:
                        for ind, i in enumerate(transformations):
                            dfh_Qmo.append(np.asarray(dfh.get_tensor(i)))

                    test_string = 'Alg: ' + method + ' + ' + form + ' core (AOs, MOs, met): [' 
                    test_string += str(AO_core) + ', ' + str(MO_core) + ', ' + str(hold_met) +  ']' 

                    print(test_string)
                    # am i right?
                    for i in range(ntransforms):
                        if(form == 'pqQ'):    
                            psi4.compare_arrays(np.asarray(dfh_Qmo[i]), Qmo_pqQ[i], 9, test_string)
                        elif(form == 'pQq'):
                            psi4.compare_arrays(np.asarray(dfh_Qmo[i]), Qmo_pQq[i], 9, test_string)
                        else:
                            psi4.compare_arrays(np.asarray(dfh_Qmo[i]), Qmo[i], 9, test_string)

                    del dfh

# TODO:
# test tensor slicing grabs
# test pQq and pqQ builds for store and direct0


示例#8
0
文件: input.py 项目: wjg3/psi4
    6.17969093e-03, 1.74806282e-03, 4.26579485e-03, 5.29784951e-03,
    5.12333890e-03, 4.45846711e-03, -1.57567665e-02, 5.30695677e-03,
    1.23293022e-02, 1.06586884e-02, 7.93900611e-03, -7.73802957e-03,
    7.26178250e-03, 1.17147293e-02, 9.98332008e-03, 7.52680394e-03,
    -4.70874042e-04, 7.07678716e-03, 9.28214077e-03, 8.16156593e-03,
    6.44348860e-03, 1.00781695e-03, 4.75096863e-03, 6.24946368e-03,
    5.97476305e-03, 5.07885832e-03, 9.07850148e-04, 2.91174728e-03,
    3.98405846e-03, 4.14293807e-03, 3.80513995e-03, -5.01856357e-03,
    1.66005706e-03, 5.58988126e-03, 6.25608633e-03, 5.51718510e-03,
    -3.54538877e-03, 2.13874136e-03, 5.42317564e-03, 5.96499476e-03,
    5.28687977e-03, -1.26041313e-03, 2.57086533e-03, 4.76216983e-03,
    5.15904477e-03, 4.66727597e-03, -6.98718627e-05, 2.29543121e-03,
    3.72078488e-03, 4.09219098e-03, 3.84409282e-03, 2.86099206e-04,
    1.74337099e-03, 2.70404545e-03, 3.07010847e-03, 3.01768294e-03,
    -2.17493011e-03, 7.08011269e-04, 2.82422496e-03, 3.69989978e-03,
    3.71459579e-03, -1.77325890e-03, 8.55302891e-04, 2.77277336e-03,
    3.57535348e-03, 3.59320794e-03, -9.75050076e-04, 1.08091443e-03,
    2.57027134e-03, 3.22234880e-03, 3.25925100e-03, -3.45599629e-04,
    1.12615341e-03, 2.20372521e-03, 2.71976417e-03, 2.79365593e-03,
    -1.83114358e-05, 1.00066735e-03, 1.76948007e-03, 2.18338059e-03,
    2.29358229e-03
]

# Comparison
psi4.compare_arrays(
    esps_1threads, esps_4threads, 3,
    "Reference value for ESP calculation, 1 thread vs. 4 threads.")
psi4.compare_arrays(
    esps_1threads, reference_esps, 3,
    "Reference value for ESP calculation, 1 thread vs. reference calculation.")
示例#9
0
# Write expected output
expected_return_result = [
    0.0, 0.0, -0.05959774096119619, 0.0, -0.043039786289375104,
    0.02979887048056895, 0.0, 0.043039786289375104, 0.02979887048056895
]
expected_properties = {
    "calcinfo_nbasis": 24,
    "calcinfo_nmo": 24,
    "calcinfo_nalpha": 5,
    "calcinfo_nbeta": 5,
    "calcinfo_natom": 3,
    "scf_one_electron_energy": -122.4452968291507,
    "scf_two_electron_energy": 37.62243738251799,
    "nuclear_repulsion_energy": 8.80146206062943,
    "scf_total_energy": -76.02139738600329,
    "return_energy": -76.02139738600329
}

json_ret = psi4.json_wrapper.run_json(json_data)

with open("output.json", "w") as ofile:
    json.dump(json_ret, ofile, indent=2)

psi4.compare_integers(True, json_ret["success"], "JSON Success")  #TEST
psi4.compare_arrays(expected_return_result, json_ret["return_result"], 5,
                    "Return Value")  #TEST

for k in expected_properties.keys():
    psi4.compare_values(expected_properties[k], json_ret["properties"][k], 5,
                        k.upper())  #TEST
示例#10
0
Ks.append(psi4.core.Matrix(nbf, nbf))
Ks.append(psi4.core.Matrix(nbf, nbf))
Ks.append(psi4.core.Matrix(nbf, nbf))
Ks.append(psi4.core.Matrix(nbf, nbf))
Ks.append(psi4.core.Matrix(nbf, nbf))
Ks.append(psi4.core.Matrix(nbf, nbf))

# invoke J/K build
dfh.build_JK(Cleft, Cright, Js, Ks)

# practice J
Q = np.zeros((naux))
D = np.dot(np.asarray(C1), np.asarray(C1).T)

# am i right?
for i in range(len(Cright)):
    psi4.compare_arrays(np.asarray(Ks[i]), K[i], 9, "K builds - STORE")  #TEST
#for i in range(len(Cright)):
#    print (np.linalg.norm(np.asarray(Js[i]).ravel()[:naux]-Qs[i]))     #TEST

Ds = []
for i in range(len(Cright)):
    Ds.append(np.dot(np.asarray(Cleft[i]), np.asarray(Cright[i]).T))
    print(np.linalg.norm(np.asarray(Js[i]) - Ds[i]))

#for i in range(naux):
#    if (i == 80):
#        print ("YUP")
#    print (np.linalg.norm(np.asarray(Js[0]).ravel()[i] -Qs[0][i]))
#psi4.compare_arrays(np.asarray(Js[i]), J[i], 9, "J builds - STORE" )     #TEST
示例#11
0
文件: test.py 项目: CDSherrill/psi4
}

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


示例#12
0
文件: test.py 项目: CDSherrill/psi4
# 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

with open("output.dat", "w") as f:
    f.write(json_data["raw_output"]) 
示例#13
0
  0.0,
  -0.043039786289375104,
  0.02979887048056895,
  0.0,
  0.043039786289375104,
  0.02979887048056895
]
expected_properties = {
  "calcinfo_nbasis": 24,
  "calcinfo_nmo": 24,
  "calcinfo_nalpha": 5,
  "calcinfo_nbeta": 5,
  "calcinfo_natom": 3,
  "scf_one_electron_energy": -122.4452968291507,
  "scf_two_electron_energy": 37.62243738251799,
  "nuclear_repulsion_energy": 8.80146206062943,
  "scf_total_energy": -76.02139738600329,
  "return_energy": -76.02139738600329
}

json_ret = psi4.schema_wrapper.run_qcschema(json_data)

with open("output.json", "w") as ofile:
    json.dump(json_ret.json(), ofile, indent=2)

psi4.compare_integers(True, json_ret.success, "JSON Success")                           #TEST
psi4.compare_arrays(expected_return_result, json_ret.return_result.ravel(), 5, "Return Value")  #TEST

for k in expected_properties.keys():                                                       #TEST
    psi4.compare_values(expected_properties[k], getattr(json_ret.properties, k), 5, k.upper())   #TEST
示例#14
0
文件: input.py 项目: bennybp/psi4
dfh.transpose("Qmo4", (1, 0, 2))
dfh.transpose("Qmo5", (1, 2, 0))
dfh.transpose("Qmo6", (1, 2, 0))

# grab transformed integrals
dfh_Qmo = []
dfh_Qmo.append(dfh.get_tensor("Qmo1"))
dfh_Qmo.append(dfh.get_tensor("Qmo2"))
dfh_Qmo.append(dfh.get_tensor("Qmo3"))
dfh_Qmo.append(dfh.get_tensor("Qmo4"))
dfh_Qmo.append(dfh.get_tensor("Qmo5"))
dfh_Qmo.append(dfh.get_tensor("Qmo6"))

# am i right?
for i in range(6):
    psi4.compare_arrays(np.asarray(dfh_Qmo[i]), Qmo[i], 9, "STORE with some tranposes - on disk" )     #TEST

# try again without tranposing --
# untranspose python side
Qmo[2] = np.einsum("pQq->Qpq", Qmo[2])
Qmo[3] = np.einsum("pQq->Qpq", Qmo[3])
Qmo[4] = np.einsum("pqQ->Qpq", Qmo[4])
Qmo[5] = np.einsum("pqQ->Qpq", Qmo[5])

# invoke transformations
dfh.transform()

# grab transformed integrals
dfh_Qmo[0] = (dfh.get_tensor("Qmo1"))
dfh_Qmo[1] = (dfh.get_tensor("Qmo2"))
dfh_Qmo[2] = (dfh.get_tensor("Qmo3"))
示例#15
0
def test_cc_polaroptrot():
    # cc29 + polarizabilities + tensors
    mol = psi4.geometry("""
        O     -0.028962160801    -0.694396279686    -0.049338350190
        O      0.028962160801     0.694396279686    -0.049338350190
        H      0.350498145881    -0.910645626300     0.783035421467
        H     -0.350498145881     0.910645626300     0.783035421467
        symmetry c1
        noreorient
        """)

    mw = sum([mol.mass(i) for i in range(0, 4)])
    c = psi4.constants.c
    h = psi4.constants.h
    h2j = psi4.constants.hartree2J
    Na = psi4.constants.na
    me = psi4.constants.me
    hbar = psi4.constants.hbar
    prefactor = -72E6 * hbar**2 * Na / c**2 / me**2 / mw / 3.0
    au_589 = c * h * 1E9 / h2j / 589
    au_355 = c * h * 1E9 / h2j / 355

    psi4.set_options({"basis": "cc-pVDZ"})
    omega = [589, 355, 'nm']
    psi4.set_options({
        'gauge': 'both',
        'omega': omega,
        'freeze_core': True,
        'r_convergence': 10
    })

    e, wfn = psi4.properties('CCSD',
                             properties=["polarizability", "rotation"],
                             return_wfn=True)

    pol_589 = 8.92296  #TEST
    pol_355 = 9.16134  #TEST
    rotlen_589 = -76.93388  #TEST
    rotvel_589 = 850.24712  #TEST
    rotmvg_589 = -179.08820  #TEST
    rotlen_355 = -214.73273  #TEST
    rotvel_355 = 384.88786  #TEST
    rotmvg_355 = -644.44746  #TEST

    polr_589 = np.trace(
        wfn.variable("CCSD DIPOLE POLARIZABILITY TENSOR @ 589NM").to_array()
    ) / 3.0  #RESULT
    polr_355 = np.trace(
        wfn.variable("CCSD DIPOLE POLARIZABILITY TENSOR @ 355NM").to_array()
    ) / 3.0  #RESULT
    rotlenr_589 = np.trace(
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (LEN) @ 589NM").to_array()
    ) * prefactor * au_589  #RESULT
    rotvelr_589 = np.trace(
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (VEL) @ 589NM").to_array()
    ) * prefactor  #RESULT
    rotmvgr_589 = np.trace(
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (MVG) @ 589NM").to_array()
    ) * prefactor  #RESULT
    rotlenr_355 = np.trace(
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (LEN) @ 355NM").to_array()
    ) * prefactor * au_355  #RESULT
    rotvelr_355 = np.trace(
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (VEL) @ 355NM").to_array()
    ) * prefactor  #RESULT
    rotmvgr_355 = np.trace(
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (MVG) @ 355NM").to_array()
    ) * prefactor  #RESULT

    polt_589 = np.array([[5.44184081e+00, -8.30270852e-01, 9.39878004e-14],
                         [-8.30270852e-01, 1.27518991e+01, -6.94720506e-14],
                         [9.39878004e-14, -6.94720506e-14,
                          8.57516214e+00]])  #TEST
    polt_355 = np.array([[5.57913165e+00, -8.66951957e-01, 1.02575190e-13],
                         [-8.66951957e-01, 1.31256109e+01, -7.71806997e-14],
                         [1.02575190e-13, -7.71806997e-14,
                          8.77928702e+00]])  #TEST
    rottvel_0 = np.array([[3.63702792e-01, -3.62754886e-01, -3.37227243e-14],
                          [-1.16320923e-01, 1.20784891e-02, 1.76483272e-14],
                          [1.90062651e-14, -2.33369227e-15,
                           -3.92022202e-01]])  #TEST
    rottlen_589 = np.array([[1.41679366e-01, -7.07140738e-02, -2.26060131e-14],
                            [-2.72710108e-01, 1.28928522e-03, 1.01578936e-14],
                            [3.74236371e-14, 3.88522300e-15,
                             -1.27276912e-01]])  #TEST
    rottvel_589 = np.array([[3.75624000e-01, -3.74245928e-01, -3.61489832e-14],
                            [-1.39409385e-01, 1.26867931e-02, 1.94630079e-14],
                            [2.33993608e-14, -1.61361648e-15,
                             -4.01726048e-01]])  #TEST
    rottmvg_589 = np.array([[1.19212077e-02, -1.14910412e-02, -2.42625886e-15],
                            [-2.30884623e-02, 6.08303937e-04, 1.81468070e-15],
                            [4.39309571e-15, 7.20075789e-16,
                             -9.70384612e-03]])  #TEST

    assert psi4.compare_values(pol_589, polr_589, 3,
                               "CCSD polarizability @ 589nm")  #TEST
    assert psi4.compare_values(pol_355, polr_355, 3,
                               "CCSD polarizability @ 355nm")  #TEST
    assert psi4.compare_values(rotlen_589, rotlenr_589, 3,
                               "CCSD rotation @ 589nm in length gauge")  #TEST
    assert psi4.compare_values(
        rotvel_589, rotvelr_589, 3,
        "CCSD rotation @ 589nm in velocity gauge")  #TEST
    assert psi4.compare_values(
        rotmvg_589, rotmvgr_589, 3,
        "CCSD rotation @ 589nm in modified velocity gauge")  #TEST
    assert psi4.compare_values(rotlen_355, rotlenr_355, 3,
                               "CCSD rotation @ 355nm in length gauge")  #TEST
    assert psi4.compare_values(
        rotvel_355, rotvelr_355, 3,
        "CCSD rotation @ 355nm in velocity gauge")  #TEST
    assert psi4.compare_values(
        rotmvg_355, rotmvgr_355, 3,
        "CCSD rotation @ 355nm in modified velocity gauge")  #TEST

    assert psi4.compare_values(
        polt_589, wfn.variable("CCSD DIPOLE POLARIZABILITY TENSOR @ 589NM"), 3,
        "CCSD polarizability tensor @ 589nm")  #TEST
    assert psi4.compare_values(
        polt_355, wfn.variable("CCSD DIPOLE POLARIZABILITY TENSOR @ 355NM"), 3,
        "CCSD polarizability tensor @ 355nm")  #TEST
    assert psi4.compare_arrays(
        rottvel_0, wfn.variable("CCSD OPTICAL ROTATION TENSOR (VEL) @ 0NM"), 3,
        "CCSD optrot tensor @ 0NM in velocity guage")  #TEST
    assert psi4.compare_arrays(
        rottlen_589,
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (LEN) @ 589NM"), 3,
        "CCSD optrot tensor @ 589NM in length guage")  #TEST
    assert psi4.compare_arrays(
        rottvel_589,
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (VEL) @ 589NM"), 3,
        "CCSD optrot tensor @ 589NM in velocity guage")  #TEST
    assert psi4.compare_arrays(
        rottmvg_589,
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (MVG) @ 589NM"), 3,
        "CCSD optrot tensor @ 589NM in modified velocity guage")  #TEST
示例#16
0
def test_cc_roa():
    # three tensors for ROA (polar, optrot, and dip-quad)
    mol = psi4.geometry("""
        O     -0.028962160801    -0.694396279686    -0.049338350190
        O      0.028962160801     0.694396279686    -0.049338350190
        H      0.350498145881    -0.910645626300     0.783035421467
        H     -0.350498145881     0.910645626300     0.783035421467
        symmetry c1
        noreorient
        """)

    psi4.set_options({"basis": "cc-pVDZ"})
    omega = [589, 'nm']
    psi4.set_options({
        'gauge': 'both',
        'omega': omega,
        'freeze_core': True,
        'r_convergence': 10
    })

    e, wfn = psi4.properties('CCSD',
                             properties=["roa_tensor"],
                             return_wfn=True)

    polt_589 = np.array([[5.44184081e+00, -8.30270852e-01, 9.39878004e-14],
                         [-8.30270852e-01, 1.27518991e+01, -6.94720506e-14],
                         [9.39878004e-14, -6.94720506e-14, 8.57516214e+00]])
    rottvel_0 = np.array([[3.63702792e-01, -3.62754886e-01, -3.37227243e-14],
                          [-1.16320923e-01, 1.20784891e-02, 1.76483272e-14],
                          [1.90062651e-14, -2.33369227e-15, -3.92022202e-01]])
    rottlen_589 = np.array([[1.41679366e-01, -7.07140738e-02, -2.26060131e-14],
                            [-2.72710108e-01, 1.28928522e-03, 1.01578936e-14],
                            [3.74236371e-14, 3.88522300e-15, -1.27276912e-01]])
    rottvel_589 = np.array([[3.75624000e-01, -3.74245928e-01, -3.61489832e-14],
                            [-1.39409385e-01, 1.26867931e-02, 1.94630079e-14],
                            [2.33993608e-14, -1.61361648e-15,
                             -4.01726048e-01]])
    rottmvg_589 = np.array([[1.19212077e-02, -1.14910412e-02, -2.42625886e-15],
                            [-2.30884623e-02, 6.08303937e-04, 1.81468070e-15],
                            [4.39309571e-15, 7.20075789e-16, -9.70384612e-03]])
    quad0 = np.array([[[-2.52229282e-14, -4.33846468e-13, 3.90176525e+00],
                       [-4.33846468e-13, -6.81906994e-15, -5.83659009e+00],
                       [3.90176525e+00, -5.83659009e+00, 3.18177152e-14]],
                      [[1.20834634e-13, 6.99638702e-14, -2.37995874e+00],
                       [6.99638702e-14, -1.17603861e-13, 6.85651590e+00],
                       [-2.37995874e+00, 6.85651590e+00, -3.99609068e-15]],
                      [[-4.55024365e+00, -5.30335671e+00, 1.65990108e-13],
                       [-5.30335671e+00, -1.35415335e+00, -8.75522529e-13],
                       [1.65990108e-13, -8.75522529e-13, 5.90439700e+00]]])

    assert psi4.compare_values(
        polt_589, wfn.variable("CCSD DIPOLE POLARIZABILITY TENSOR @ 589NM"), 3,
        "CCSD polarizability tensor @ 589nm")  #TEST
    assert psi4.compare_arrays(
        rottvel_0, wfn.variable("CCSD OPTICAL ROTATION TENSOR (VEL) @ 0NM"), 3,
        "CCSD optrot tensor @ 0NM in velocity guage")  #TEST
    assert psi4.compare_arrays(
        rottlen_589,
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (LEN) @ 589NM"), 3,
        "CCSD optrot tensor @ 589NM in length guage")  #TEST
    assert psi4.compare_arrays(
        rottvel_589,
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (VEL) @ 589NM"), 3,
        "CCSD optrot tensor @ 589NM in velocity guage")  #TEST
    assert psi4.compare_arrays(
        rottmvg_589,
        wfn.variable("CCSD OPTICAL ROTATION TENSOR (MVG) @ 589NM"), 3,
        "CCSD optrot tensor @ 589NM in modified velocity guage")  #TEST
    assert psi4.compare_values(
        quad0, wfn.variable("CCSD QUADRUPOLE POLARIZABILITY TENSOR @ 589NM"),
        3, "CCSD quadrupole tensor @ 589nm")  #TEST
示例#17
0
文件: input.py 项目: yxie326/psi4
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][0], 3,
                    "DIPOLE X")  #TEST
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][1], 3,
                    "DIPOLE Y")  #TEST
psi4.compare_values(linear_dipole,
                    json_ret["properties"]["scf_dipole_moment"][2], 3,
                    "DIPOLE Z")  #TEST

dist = np.linalg.norm(
    np.array(json_ret["molecule"]["geometry"])[:3] -
    np.array(np.array(json_ret["molecule"]["geometry"])[3:]))  #TEST
psi4.compare_values(1.732, dist, 4, "HF Bond Distance")  #TEST

json_ret = psi4.json_wrapper.run_json(noorient_data)

# Orients to Z axis
psi4.compare_integers(True, json_ret["success"], "JSON Success")  #TEST
psi4.compare_values(expected_return_result, json_ret["return_result"], 5,
                    "Return Value")  #TEST
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][0], 3,
                    "DIPOLE X")  #TEST
psi4.compare_values(linear_dipole,
                    json_ret["properties"]["scf_dipole_moment"][1], 3,
                    "DIPOLE Y")  #TEST
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][2], 3,
                    "DIPOLE Z")  #TEST
psi4.compare_arrays([0.0, 0.0, 0.0], json_ret["molecule"]["geometry"][:3], 3,
                    "H Position")  #TEST
psi4.compare_arrays([0.0, 1.732, 0.0], json_ret["molecule"]["geometry"][3:], 3,
                    "F Position")  #TEST
示例#18
0
psi4.compare_integers(True, json_ret.success, "JSON Success")  #TEST
psi4.compare_values(expected_return_result, json_ret.return_result, 5,
                    "Return Value")  #TEST
psi4.compare_values(0.0, json_ret.properties.scf_dipole_moment[0], 3,
                    "DIPOLE X")  #TEST
psi4.compare_values(0.0, json_ret.properties.scf_dipole_moment[1], 3,
                    "DIPOLE Y")  #TEST
psi4.compare_values(linear_dipole, json_ret.properties.scf_dipole_moment[2], 3,
                    "DIPOLE Z")  #TEST

dist = np.linalg.norm(json_ret.molecule.geometry[0] -
                      json_ret.molecule.geometry[1])  #TEST
psi4.compare_values(1.732, dist, 4, "HF Bond Distance")  #TEST

json_ret = psi4.schema_wrapper.run_qcschema(noorient_data)

# Orients to Z axis
psi4.compare_integers(True, json_ret.success, "JSON Success")  #TEST
psi4.compare_values(expected_return_result, json_ret.return_result, 5,
                    "Return Value")  #TEST
psi4.compare_values(0.0, json_ret.properties.scf_dipole_moment[0], 3,
                    "DIPOLE X")  #TEST
psi4.compare_values(linear_dipole, json_ret.properties.scf_dipole_moment[1], 3,
                    "DIPOLE Y")  #TEST
psi4.compare_values(0.0, json_ret.properties.scf_dipole_moment[2], 3,
                    "DIPOLE Z")  #TEST
psi4.compare_arrays([0.0, 0.0, 0.0], json_ret.molecule.geometry[0], 3,
                    "H Position")  #TEST
psi4.compare_arrays([0.0, 1.732, 0.0], json_ret.molecule.geometry[1], 3,
                    "F Position")  #TEST
示例#19
0
文件: test.py 项目: xinxing02/psi4
DiskJK.initialize()
DiskJK.print_header()

# symm_JK
psi4.set_options({"SCF_TYPE" : "MEM_DF"})
MemJK = psi4.core.JK.build_JK(primary, aux)
MemJK.initialize()
MemJK.print_header()

# add C matrices
for Cleft, Cright in C_vectors:
    DiskJK.C_left_add(Cleft)
    MemJK.C_left_add(Cleft)
    DiskJK.C_right_add(Cright)
    MemJK.C_right_add(Cright)

# compute
DiskJK.compute()
MemJK.compute()

# get integrals
DiskJK_ints = [DiskJK.J(), DiskJK.K()]
MemJK_ints = [MemJK.J(), MemJK.K()]

# compare
for j, t in enumerate(['J', 'K']):
    for i in range(len(DiskJK_ints[0])):
        psi4.compare_arrays(np.asarray(DiskJK_ints[j][i]), 
                            np.asarray(MemJK_ints[j][i]), 9, t + str(i))

示例#20
0
文件: input.py 项目: CDSherrill/psi4
noorient_data["molecule"]["fix_com"] = True

# Write expected output
expected_return_result = -100.0194177509218
linear_dipole = 1.948993625469663 

json_ret = psi4.json_wrapper.run_json(json_data)

# Orients to Z axis
psi4.compare_integers(True, json_ret["success"], "JSON Success")  #TEST
psi4.compare_values(expected_return_result, json_ret["return_result"], 5, "Return Value")  #TEST
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][0], 3, "DIPOLE X")  #TEST
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][1], 3, "DIPOLE Y")  #TEST
psi4.compare_values(linear_dipole, json_ret["properties"]["scf_dipole_moment"][2], 3, "DIPOLE Z")  #TEST

dist = np.linalg.norm(np.array(json_ret["molecule"]["geometry"])[:3] - np.array(np.array(json_ret["molecule"]["geometry"])[3:])) #TEST
psi4.compare_values(1.732, dist, 4, "HF Bond Distance")  #TEST


json_ret = psi4.json_wrapper.run_json(noorient_data)

# Orients to Z axis
psi4.compare_integers(True, json_ret["success"], "JSON Success")  #TEST
psi4.compare_values(expected_return_result, json_ret["return_result"], 5, "Return Value")  #TEST
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][0], 3, "DIPOLE X")  #TEST
psi4.compare_values(linear_dipole, json_ret["properties"]["scf_dipole_moment"][1], 3, "DIPOLE Y")  #TEST
psi4.compare_values(0.0, json_ret["properties"]["scf_dipole_moment"][2], 3, "DIPOLE Z")  #TEST
psi4.compare_arrays([0.0, 0.0, 0.0], json_ret["molecule"]["geometry"][:3], 3, "H Position")  #TEST
psi4.compare_arrays([0.0, 1.732, 0.0], json_ret["molecule"]["geometry"][3:], 3, "F Position")  #TEST

示例#21
0
文件: input.py 项目: CDSherrill/psi4
  0.0,
  -0.043039786289375104,
  0.02979887048056895,
  0.0,
  0.043039786289375104,
  0.02979887048056895
]
expected_properties = {
  "calcinfo_nbasis": 24,
  "calcinfo_nmo": 24,
  "calcinfo_nalpha": 5,
  "calcinfo_nbeta": 5,
  "calcinfo_natom": 3,
  "scf_one_electron_energy": -122.4452968291507,
  "scf_two_electron_energy": 37.62243738251799,
  "nuclear_repulsion_energy": 8.80146206062943,
  "scf_total_energy": -76.02139738600329,
  "return_energy": -76.02139738600329
}

json_ret = psi4.json_wrapper.run_json(json_data)

with open("output.json", "w") as ofile:
    json.dump(json_ret, ofile, indent=2)

psi4.compare_integers(True, json_ret["success"], "JSON Success")                           #TEST
psi4.compare_arrays(expected_return_result, json_ret["return_result"], 5, "Return Value")  #TEST

for k in expected_properties.keys():                                                       #TEST
    psi4.compare_values(expected_properties[k], json_ret["properties"][k], 5, k.upper())   #TEST
示例#22
0
dfh.transpose("Qmo4", (1, 0, 2))
dfh.transpose("Qmo5", (1, 2, 0))
dfh.transpose("Qmo6", (1, 2, 0))

# grab transformed integrals
dfh_Qmo = []
dfh_Qmo.append(dfh.get_tensor("Qmo1"))
dfh_Qmo.append(dfh.get_tensor("Qmo2"))
dfh_Qmo.append(dfh.get_tensor("Qmo3"))
dfh_Qmo.append(dfh.get_tensor("Qmo4"))
dfh_Qmo.append(dfh.get_tensor("Qmo5"))
dfh_Qmo.append(dfh.get_tensor("Qmo6"))

# am i right?
for i in range(6):
    psi4.compare_arrays(np.asarray(dfh_Qmo[i]), Qmo[i], 9,
                        "STORE with some tranposes - on disk")  #TEST

# try again without tranposing --
# untranspose python side
Qmo[2] = np.einsum("pQq->Qpq", Qmo[2])
Qmo[3] = np.einsum("pQq->Qpq", Qmo[3])
Qmo[4] = np.einsum("pqQ->Qpq", Qmo[4])
Qmo[5] = np.einsum("pqQ->Qpq", Qmo[5])

# invoke transformations
dfh.transform()

# grab transformed integrals
dfh_Qmo[0] = (dfh.get_tensor("Qmo1"))
dfh_Qmo[1] = (dfh.get_tensor("Qmo2"))
dfh_Qmo[2] = (dfh.get_tensor("Qmo3"))
示例#23
0
文件: input.py 项目: u3005466/psi4
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
示例#24
0
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, 6, "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

with open("output.dat", "w") as f:
    f.write(json_data["raw_output"])
示例#25
0
                                dfh_Qmo[ind][k, :, :] = np.asarray(
                                    dfh.get_tensor(i, [k, k + 1],
                                                   [0, sizes[j[1]]],
                                                   [0, naux]))
                    else:
                        for ind, i in enumerate(transformations):
                            dfh_Qmo.append(np.asarray(dfh.get_tensor(i)))

                    test_string = 'Alg: ' + method + ' + ' + form + ' core (AOs, MOs, met): ['
                    test_string += str(AO_core) + ', ' + str(
                        MO_core) + ', ' + str(hold_met) + ']'

                    print(test_string)
                    # am i right?
                    for i in range(ntransforms):
                        if (form == 'pqQ'):
                            psi4.compare_arrays(np.asarray(dfh_Qmo[i]),
                                                Qmo_pqQ[i], 9, test_string)
                        elif (form == 'pQq'):
                            psi4.compare_arrays(np.asarray(dfh_Qmo[i]),
                                                Qmo_pQq[i], 9, test_string)
                        else:
                            psi4.compare_arrays(np.asarray(dfh_Qmo[i]), Qmo[i],
                                                9, test_string)

                    del dfh

# TODO:
# test tensor slicing grabs
# test pQq and pqQ builds for store and direct0
示例#26
0
文件: JK_input.py 项目: bennybp/psi4
Ks.append(psi4.core.Matrix(nbf,nbf))
Ks.append(psi4.core.Matrix(nbf,nbf))
Ks.append(psi4.core.Matrix(nbf,nbf))
Ks.append(psi4.core.Matrix(nbf,nbf))
Ks.append(psi4.core.Matrix(nbf,nbf))

# invoke J/K build
dfh.build_JK(Cleft, Cright, Js, Ks)

# practice J
Q = np.zeros((naux))
D = np.dot(np.asarray(C1), np.asarray(C1).T)

# am i right?
for i in range(len(Cright)):
    psi4.compare_arrays(np.asarray(Ks[i]), K[i], 9, "K builds - STORE" )     #TEST
#for i in range(len(Cright)):
#    print (np.linalg.norm(np.asarray(Js[i]).ravel()[:naux]-Qs[i]))     #TEST

Ds = []
for i in range(len(Cright)):
    Ds.append(np.dot(np.asarray(Cleft[i]), np.asarray(Cright[i]).T))
    print (np.linalg.norm(np.asarray(Js[i]) -Ds[i]))

#for i in range(naux):
#    if (i == 80):
#        print ("YUP")
#    print (np.linalg.norm(np.asarray(Js[0]).ravel()[i] -Qs[0][i]))
#psi4.compare_arrays(np.asarray(Js[i]), J[i], 9, "J builds - STORE" )     #TEST