Greetings,
I would like to perform an IRC calculation using a Hessian that is read in from disk, but I’m having a tough time doing it. It seems that every time I try, psi4 determines that the hessian is “not good enough” and then calculates the analytical hessian anyway before performing the IRC calculation. Is there some way to disable this check?
Below is the Python script that I have been using. Thanks in advance for your help.
I have tried it with and without the “update_geometry” step and the result is the same.
The coordinates of planar ammonia in that script correspond to an optimization using the gau_verytight criterion, and the “stdout.default.1311831.hess” file corresponds to the hessian written out after a frequency calculation on that converged geometry.
This is obviously a very simple calculation anyway, but I am trying to get it to work for this simple case so that I can use analytical hessians calculated with CFOUR on much larger molecules with higher levels of theory.
import psi4
import os
psi4.set_memory(‘8 GB’)
mol = psi4.geometry(‘’‘0 1
N 0.000000000000 0.000000000000 0.000000149884
H 0.000000000000 0.000000000000 0.986395763084
H 0.000000000000 0.854243084300 -0.493198922816
H 0.000000000000 -0.854243084300 -0.493198922816
symmetry c1
‘’’)
#mol.update_geometry()
print(mol.geometry().to_array())
pid = os.getpid()
syscmd = f"cp stdout.default.1311831.hess bar.{pid}.hess"
os.system(syscmd)
psi4.core.set_output_file(“irctest4.out”)
psi4.set_options({
“basis”: “6-31G”,
“writer_file_label”: “bar”,
“cart_hess_read”: True,
“opt_type”: “irc”,
“irc_direction”: “forward”,
“irc_points”: 5,
“geom_maxiter”: 200,
“max_disp_g_convergence”: 6e-6,
“rms_disp_g_convergence”: 4e-6,
})
e_fwd = psi4.optimize(‘scf’, molecule=mol)
The relevant part of the output file appears to be this:
hessian() using ref_gradient to assess stationary point.
Based on options and gradient (rms=1.94E-07), recommend projecting translations and projecting rotations.
hessian() will perform analytic frequency computation.
I have tried to pass the optimized gradient as a parameter to the psi4.frequency command as ref_gradient but that results in a “multiple values” error.