-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IRC Failing to Converge Silently on Constrained Slab TSs #14
Comments
Can you provide a minimal example that reproduces this issue? xTB should be fine, but I'd like to avoid having to run PWDFT calculations. |
This one seems to have only one imaginary frequency after optimizing with xtb. |
The issue is that the constraints aren't getting set properly. I'll look into fixing it, which should be simple, but in the meantime here's a workaround: from ase.io import read
from ase import Atoms
from sella import Sella, IRC
from xtb.ase.calculator import XTB
from ase.visualize import view
from ase.io.trajectory import Trajectory
from ase.constraints import FixAtoms
import numpy as np
from ase.vibrations import Vibrations
sp = read("opt.xyz")
sp.calc = XTB(method="GFN1-xTB")
sp.set_constraint(FixAtoms([atom.index for atom in sp if atom.symbol == 'Cu']))
opt = Sella(sp,trajectory="xtbtest.traj",order=1)
opt.run(fmax=0.01)
irc = IRC(sp,trajectory="test_irc.traj",dx=0.1,eta=1e-4,gamma=0.4)
irc.run(direction="forward",fmax=0.1,steps=1000)
irc.run(direction="reverse",fmax=0.1,steps=1000) (You don't have to use my exact construction for setting the constraints, the key is to use ASE's |
Ok, the constraints are getting set properly, but the problem is that the
That should be sufficient for fixing this bug. |
I'm having trouble with the IRCs in metal slab systems with the metal atoms frozen for many different transition states. All of the log files look something like the below. Only the 0 step is logged. Some warnings show up in the error file. The calculation finishes, but the output irc is not marked as converged.
Out file:
IRC: 0 02:47:38 -238815.926294 0.2857
Error file:
/etc/profile.d/gaussian.sh: line 8: [: too many arguments
/etc/profile.d/gaussian.sh: line 19: [: too many arguments
WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
Note: The following floating-point exceptions are signalling: IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
/home/mjohns9/anaconda3/envs/pynta_env/lib/python3.8/site-packages/sella/peswrapper.py:325: RuntimeWarning: invalid value encountered in double_scalars
The last espresso file seems to have terminated cleanly. And best as I can tell the IRC calculations don't run into any errors within Sella itself. I essentially ran:
Naturally I went back and tried a simple gas phase example C2H5 => C2H4 + H, which largely worked even if it errored explicitly eventually. I then tried to do the above example with GFN1-xTB to make it easier to look at. The IRC errors in that case with IRCInnerLoopConvergenceFailure, but from the DFT guess GFN1-xTB after optimization has two imaginary frequencies so that's probably expected.
Since the gas phase example worked it seems like it might be related to the constraints implementation in Sella.
The text was updated successfully, but these errors were encountered: