I’m wondering if there is a way to reuse calculated frequencies for an IRC calculation in both directions after having found a transition state.
ts
is the ps4.geometry object containing the optimized transition state.
# calculate frequency once to check if TS is good
psi4.core.clean_options()
E, wfn = psi4.frequency('b3pw91/6-31+G*', molecule=ts, return_wfn=True)
#clone molecules
backward = ts.clone()
forward = ts.clone()
# run backward
psi4.set_options({
"geom_maxiter":500,
"full_hess_every":-1,
"opt_type":"irc",
"irc_step_size":0.25,
"ensure_bt_convergence":True,
"irc_direction":"backward",
})
E, history_backward = psi4.optimize('b3pw91/6-31+G*',molecule=backward, return_history=True, ref_gradient=wfn.gradient())
psi4.set_options({
"geom_maxiter":500,
"full_hess_every":-1,
"opt_type":"irc",
"irc_step_size":0.25,
"ensure_bt_convergence":True,
"irc_direction":"forward",
})
E, history_forward = psi4.optimize('b3pw91/6-31+G*',molecule=forward, return_history=True, ref_gradient=wfn.gradient())
This calculation does not converge for one of the directions and gives a wrong result for the other, whereas if I set full_hess_every to 0 and remove ref_gradient
it works for both directions and gives similar result to the same calculation in gaussian.
Is there a way to correctly reuse the calculated hessian from the frequency calculation? The purpose is to cut down calculation time by only calculating the frequencies once.