Reuse calculated frequencies IRC

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.

I am not sure this is easily automated. However, after reviewing the internal logic, it looks like this might work:

CART_HESS_READ = True

alongside

FULL_HESS_EVERY = -1

I think the logic is such that cart_hess_read will trigger the reading of the initial cartesian hessian only once in the irc. However, things like the output of the hessian have changed since that irc code was written. I’d be interested to hear if it works!

It’s also possible that the hessian will get read at the beginning of each of the constrained optimizations along the path.

Thanks. cart_hess_read indeed does the trick.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.