Ejemplo n.º 1
0
def test_molcas():
    sys = pyopencap.System(sys_dict)
    pc = pyopencap.CAP(sys, cap_dict, 10)
    pc.read_data(es_dict)
    pc.compute_ao_cap(cap_dict)
    pc.compute_projected_cap()
    CAPH = CAPHamiltonian(pc=pc)
Ejemplo n.º 2
0
def test_heff():
    sys = pyopencap.System(sys_dict)
    pc = pyopencap.CAP(sys, cap_dict, 10)
    pc.read_data(es_dict2)
    h0 = pc.get_H()
    print(h0[0][0])
    assert np.isclose(h0[0][0], -109.312105)
Ejemplo n.º 3
0
def test_custom_grid():
    s = pyopencap.System(sys_dict)
    pc = pyopencap.CAP(s, cap_dict, 5)
    pc.read_data(es_dict)
    pc.compute_projected_cap()
    e1 = get_corrected_energy(pc)
    pc = pyopencap.CAP(s, cap_dict, 5)
    pc.read_data(es_dict)
    import numgrid
    for center_index in range(len(center_coordinates_bohr)):
        coordinates, w = numgrid.atom_grid_bse(
            "aug-cc-pvtz",
            1.0e-12,
            590,
            590,
            proton_charges,
            center_index,
            center_coordinates_bohr,
            hardness=3,
        )
        coordinates = np.array(coordinates)
        x = np.array(coordinates[:, 0])
        y = np.array(coordinates[:, 1])
        z = np.array(coordinates[:, 2])
        w = np.array(w)
        pc.compute_cap_on_grid(x, y, z, w)
    pc.compute_projected_cap()
    e2 = get_corrected_energy(pc)
    assert np.isclose(e1, e2)
Ejemplo n.º 4
0
def test_from_molden():
    mol, myhf = get_hf()
    tools.molden.from_scf(myhf, "molden_file.molden")
    s = pyopencap.System(sys_dict)
    pyscf_smat = scf.hf.get_ovlp(mol)
    s.check_overlap_mat(pyscf_smat, "pyscf")
    os.remove("molden_file.molden")
Ejemplo n.º 5
0
def test_from_molden():
    wfn, mints = get_ci_wfn()
    write_molden(wfn)
    S_mat = np.asarray(mints.ao_overlap())
    s = pyopencap.System(molden_dict)
    s.check_overlap_mat(S_mat, "psi4")
    os.remove('h2.molden')
Ejemplo n.º 6
0
def test_numerical_integration():
    s = pyopencap.System(sys_dict)
    pc = pyopencap.CAP(s, cap_dict, 5)
    pc.read_data(es_dict)
    pc.compute_projected_cap()
    e1 = get_corrected_energy(pc)
    pc.compute_ao_cap(cap_dict_numerical)
    e2 = get_corrected_energy(pc)
    assert np.isclose(e1, e2)
Ejemplo n.º 7
0
def test_custom_cap():
    s = pyopencap.System(sys_dict)
    pc = pyopencap.CAP(s, {"cap_type": "custom"}, 5, box_cap)
    pc.read_data(es_dict)
    pc.compute_projected_cap()
    e1 = get_corrected_energy(pc)
    pc.compute_ao_cap(cap_dict)
    pc.compute_projected_cap()
    e2 = get_corrected_energy(pc)
    assert np.isclose(e1, e2)
Ejemplo n.º 8
0
def test_qchem():
    sys = pyopencap.System(sys_dict)
    pc = pyopencap.CAP(sys, cap_dict, 5)
    pc.read_data(es_dict)
    pc.compute_ao_cap(cap_dict)
    pc.compute_projected_cap()
    W = pc.get_projected_cap()
    pc.compute_ao_cap(cap_dict2)
    pc.compute_projected_cap()
    W2 = pc.get_projected_cap()
    assert not W[0][0] == W2[0][0]
    CAPH = CAPHamiltonian(pc=pc)
Ejemplo n.º 9
0
def test_pyscf():
    mol, myhf = get_hf()
    tools.molden.from_scf(myhf, "molden_file.molden")
    s = pyopencap.System(sys_dict)
    pc = pyopencap.CAP(s, cap_dict, 3)
    fs = fci.FCI(mol, myhf.mo_coeff)
    fs.nroots = 3
    e, c = fs.kernel()
    for i in range(0, len(fs.ci)):
        for j in range(0, len(fs.ci)):
            dm1 = fs.trans_rdm1(fs.ci[i], fs.ci[j], myhf.mo_coeff.shape[1],
                                mol.nelec)
            dm1_ao = np.einsum('pi,ij,qj->pq', myhf.mo_coeff, dm1,
                               myhf.mo_coeff.conj())
            pc.add_tdm(dm1_ao, i, j, "pyscf")
    pc.compute_projected_cap()
    os.remove("molden_file.molden")
Ejemplo n.º 10
0
def test_psi4():
    ci_wfn, mints = get_ci_wfn()
    write_molden(ci_wfn)
    s = pyopencap.System(molden_dict)
    pc = pyopencap.CAP(s, cap_dict, nstates)
    mo_coeff = ci_wfn.Ca()
    S_mat = np.asarray(mints.ao_overlap())
    n_bas = S_mat.shape[0]
    so2ao = mints.petite_list().sotoao()
    for i in range(0, nstates):
        for j in range(i, nstates):
            opdm_mo = ci_wfn.get_opdm(i, j, "SUM", True)
            opdm_so = psi4.core.triplet(ci_wfn.Ca(), opdm_mo, ci_wfn.Ca(),
                                        False, False, True)
            opdm_ao = psi4.core.Matrix(n_bas, n_bas)
            opdm_ao.remove_symmetry(opdm_so, so2ao)
            pc.add_tdm(opdm_ao.to_array(), i, j, "psi4")
            if not i == j:
                pc.add_tdm(opdm_ao.to_array(), j, i, "psi4")
    pc.compute_projected_cap()
    os.remove('h2.molden')
Ejemplo n.º 11
0
cap_dict = {
    "cap_type": "voronoi",
    "r_cut": "3.00",
    "radial_precision": "14",
    "angular_points": "590"
}

es_dict = {
    "package": "qchem",
    "method": "eom",
    "qchem_output": "../../analysis/N2/ref_outputs/qc_inp.out",
    "qchem_fchk": "../../analysis/N2/ref_outputs/qc_inp.fchk",
}

s = pyopencap.System(sys_dict)
pc = pyopencap.CAP(s, cap_dict, 5)
pc.read_data(es_dict)
pc.compute_projected_cap()
W = pc.get_projected_cap()
H0 = pc.get_H()

CAPH = CAPHamiltonian(pc=pc)
eta_list = np.linspace(0, 5000, 201)
eta_list = np.around(eta_list * 1E-5, decimals=5)
CAPH.run_trajectory(eta_list)
traj = CAPH.track_state(1, tracking="energy")
ref_energy = -109.36195558
# Find optimal value of eta
uc_energy, eta_opt = traj.find_eta_opt(start_idx=10,
                                       ref_energy=ref_energy,
Ejemplo n.º 12
0
            ghost 0.0000000000 0.0000000000 0.7400000000;          \
            H 0.0000000000 0.0000000000 0.3705000000;           \
             H 0.0000000000 0.0000000000 -0.3705000000',
            basis={
                'H': H_bas,
                'ghost': ghost_bas
            },
            symmetry='d2h')
mol.build()
myhf = scf.RHF(mol)
myhf.kernel()

# create system using molden file
molden_dict = {"basis_file": "molden_in.molden", "molecule": "molden"}
tools.molden.from_scf(myhf, "molden_in.molden")
s = pyopencap.System(molden_dict)
pyscf_smat = scf.hf.get_ovlp(mol)
s.check_overlap_mat(pyscf_smat, "pyscf")

# run full ci
fs = fci.FCI(mol, myhf.mo_coeff)
fs.nroots = nstates
e, c = fs.kernel()

# fill density matrices
h0 = np.zeros((nstates, nstates))
for i in range(0, len(e)):
    h0[i][i] = e[i]

# compute CAP
pc = pyopencap.CAP(s, cap_dict, nstates)