I am running geometry optimisations for a series of 10 conformers for glycerin (“OCC(O)CO”) with psi4 1.8.1. The input files and conformrs are generated via the following script https://github.com/openforcefield/openff-recharge/blob/main/examples/qc-data-generation/generate-psi4.py. For a select few conformers the geometry optimisation fails with the error ‘Maximum Dynamic Level Reached’. The conformers that fail all share the same error message, with an example out.log file provided:
2023-09-14:14:43:36,869 INFO [psi4.optking.stepAlgorithms:96] |target step| : 5.0607095782
2023-09-14:14:43:36,869 INFO [psi4.optking.stepAlgorithms:97] gradient : 0.0013864925
2023-09-14:14:43:36,869 INFO [psi4.optking.stepAlgorithms:98] hessian : 0.0205632351
2023-09-14:14:43:36,869 INFO [psi4.optking.stepAlgorithms:177] Norm of achieved step-size 5.0607095782
2023-09-14:14:43:36,869 INFO [psi4.optking.stepAlgorithms:179] Norm of achieved step-size (cart): 11.1639976705
2023-09-14:14:43:36,869 ERROR [psi4.optking.exceptions:20] AlgError: Exception created. Mesg: opt.py: Step is far too large.
2023-09-14:14:43:36,869 ERROR [psi4.optking.optimize:356] Caught AlgError exception
2023-09-14:14:43:36,869 CRITICAL [psi4.optking.optimize:370]
In addition, the geometry fails to converge at this step.
The optimisation steps of this conformer are as follows:
grep '~' out.log
1 -342.79360726 -3.43e+02 2.73e-02 7.35e-03 o 9.24e-02 3.89e-02 o ~
2 -342.80069812 -7.09e-03 5.46e-03 1.57e-03 o 1.65e-01 6.44e-02 o ~
3 -342.80144762 -7.50e-04 2.49e-03 7.73e-04 o 8.78e-02 3.31e-02 o ~
4 -342.80154203 -9.44e-05 1.83e-03 6.53e-04 o 8.11e-02 3.38e-02 o ~
5 -342.80171259 -1.71e-04 1.62e-03 5.47e-04 o 1.53e-01 7.22e-02 o ~
6 -342.80189935 -1.87e-04 3.49e-03 1.04e-03 o 1.04e-01 3.33e-02 o ~
7 -342.80214211 -2.43e-04 1.87e-03 6.23e-04 o 2.55e-01 8.44e-02 o ~
8 -342.80218705 -4.49e-05 2.44e-03 7.23e-04 o 1.54e-01 6.47e-02 o ~
9 -342.80232630 -1.39e-04 4.26e-03 1.28e-03 o 2.75e-01 6.01e-02 o ~
10 -342.80325306 -9.27e-04 6.80e-03 1.50e-03 o 4.31e-01 1.08e-01 o ~
The input.dat of the above error looks like:
molecule mol {
noreorient
nocom
0 1
O -0.441725969 0.405654699 0.224152058
C 0.952345967 0.538462937 -0.032555223
C 1.143980265 1.233094573 -1.374383688
O 2.467077732 1.773290634 -1.406449676
C 0.985560060 0.257294655 -2.534839153
O -0.396745652 0.041104283 -2.798947811
H -0.532666981 -0.039461162 1.083984137
H 1.390232444 1.123285651 0.783144593
H 1.392245412 -0.463723868 -0.041223831
H 0.455191284 2.079832554 -1.471976757
H 2.562606573 2.207801580 -2.266771555
H 1.443327546 -0.711507380 -2.311905861
H 1.432889819 0.657149851 -3.450341940
H -0.443421751 -0.582687497 -3.540498734
}
set {
basis 6-31G*
}
optimize('scf')
E,wfn = prop('hf', properties = ['GRID_ESP', 'GRID_FIELD'], return_wfn=True)
Could increasing the [DYNAMIC_LEVEL] help here?
I am reluctant to start playing around with too many keywords since the above openff-recharge script was provided as a worked example.