Failing convergence of Flexible Molecule - Back transformation failed

Hi,

I’m working on a project using v1.9.1 requiring the optimisation of in crystal geometries for molecules from the CSD. For my purposes I need to constrain the flexible dihedral angles of the molecules as well as ring dihedrals for the calculations to the experimental in crystal angles. I have made the following code snippet as a minimum example for one such system.

DANQEP.xyz (1.9 KB)

import psi4

options_dict = {'basis': '6-311G**',
                'geom_maxiter': 1000,
                'MAXITER': 1000,
                'reference': 'rks',
                'frozen_dihedral': '7 3 19 5 2 4 14 11 33 9 28 26 28 9 33 36 22 10 23 24 9 33 36 39 33 36 39 42 36 39 42 43 5 19 20 1 19 20 1 22 20 1 22 5 1 22 5 19 22 5 19 20 20 1 22 10 22 5 19 3 5 19 20 21',
                'ENSURE_BT_CONVERGENCE': True,
                'DYNAMIC_LEVEL': 1.0,
                'OPT_COORDINATES': 'BOTH',
                "PRINT_OPT_PARAMS": True}

psi4.set_options(options_dict)
psi4.set_output_file("opt.log",loglevel=10)

psi4.core.set_num_threads(4)
psi4.set_memory("8000MB")

xyz = f"0 1\n"
with open("DANQEP.xyz","r") as r:
    xyz += "".join(r.readlines()[2:])

mol = psi4.core.Molecule.from_string(xyz, fix_com=True, fix_orientation=True, fix_symmetry="c1")

E = psi4.optimize("B97-3c",molecule=mol)

My issue is that after 4 geometry optimisation iterations it is failing and I am getting an error saying:

optking.exceptions.OptError: Back transformation failed. Cartesian Step size too large. Please restart from the most recent geometry

Following advice from this forum I have included settings as you can see in the code snippet above that were suggested to other users to help however they haven’t resolved the issue for me. I initially tried restraining all the dihedral angles following a post here I made a couple years ago by detecting them using the below detection loop, but that failed with the same error so decided allow some to be unconstrained hence the set chosen in the code above but that hasn’t helped.

import optking
opt_object = optking.opt_helper.CustomHelper(mol)
all_dihedrals = ""
for dct in opt_object.molsys.fragments[0].to_dict()['intcos']:
    if dct["type"] == "Tors":
        list_torsions = list(dct["atoms"])
        dihedrals = f"{list_torsions[0]+1} {list_torsions[1]+1} {list_torsions[2]+1} {list_torsions[3]+1} "
        all_dihedrals += dihedrals

Any further advice on what I can try in order to achieve convergence would be greatly appreciated. I’ve attached an output and full error message as well.

error.txt (2.3 KB)

The output file is too big to upload so shared a link on my onedrive, let me know if it doesn’t work.
opt.txt

Also, this same molecule has a different conformation, see below, that produces the same error upon attempted constrained optimisation.

DANQEP01.xyz (1.9 KB)

Cheers,
Jay