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
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