Example #1
0
def test_diagonal_VSCF(inpdata):

    if inpdata is None:
        return 'Diagonal VSCF'

    dVSCF = vib.VSCFDiag(inpdata.v1)
    dVSCF.solve()
    dVSCF.print_results()

    # difference between the reference and current eigenvalues

    d = (np.abs(dVSCF.eigv - inpdata.diagonal_eigv)).mean()

    # test passed if the mean absolute error is below 1e-6 a.u.

    return d < 1e-6
Example #2
0
def test_diagonal_VSCF_harmonic(inpdata):

    if inpdata is None:
        return 'Diagonal VSCF with harmonic potential'

    dVSCF = vib.VSCFDiag(inpdata.v1_harm)
    dVSCF.solve()
    dVSCF.print_results()

    results = np.zeros(dVSCF.nmodes)

    for i in range(dVSCF.nmodes):
        results[i] = (dVSCF.eigv[i][1] - dVSCF.eigv[i][0]) / vib.Misc.cm_in_au

    d = np.abs(results - inpdata.freqs).mean()

    return d < 1