duartegroup / autodE

automated reaction profile generation
https://duartegroup.github.io/autodE/
MIT License
161 stars 49 forks source link

DIC->Cart iterative back-transform did not converge #312

Closed eneas77 closed 5 months ago

eneas77 commented 7 months ago

Hi,

I´ve installed autodE via conda. Trying to run the DA example, it comes up with the following bug:

CoordinateTransformFailed: DIC->Cart iterative back-transform did not converge

This happense with v.1.4.1 and 1.4.0.

Any ideas of the issue here?

Thank you

E77

shoubhikraj commented 7 months ago

Hi, I suspect this is the same issue as #261 , however, now autodE detects the problem much before it happens and then throws the appropriate error. I am currently working on it, but it will be some time before the coordinate problems get completely fixed.

eneas77 commented 7 months ago

Hi,

Did you try to run the DA example when you released v1.4.0 & v1.4.1?

I suppose the answer is you didn't.

Perhaps you should include that basic QC: every case ending in bug/enhancement should be tested previously to the deployment, as well as the basic QC examples, like the DA. This is the second time it happens...

Two more shilings on this matter.

Thanks a lot.

E77

shoubhikraj commented 6 months ago

@eneas77 Hi, could you try the v1.4.2 development branch, and see if the problem still persists?

eneas77 commented 5 months ago

Hi @shoubhikraj,

I´ve tried but unfrotunately some issue is triggered... _-------------------- Traceback (most recent call last): File "/home/data/amiduros/142/testthf-78C/testthf-78C.py", line 11, in rxn.calculate_reaction_profile(free_energy=True) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/utils.py", line 433, in wrapped_function return func(*args, kwargs) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/reactions/reaction.py", line 168, in calculate_reaction_profile calculate(self) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/utils.py", line 239, in wrapped_function result = func(*args, *kwargs) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/reactions/reaction.py", line 156, in calculate reaction.find_lowest_energy_conformers() File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/utils.py", line 668, in wrapped_function result = func(reaction) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/reactions/reaction.py", line 622, in find_lowest_energy_conformers mol.find_lowest_energy_conformer(hmethod=h_method) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/utils.py", line 239, in wrapped_function result = func(args, kwargs) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/species/species.py", line 1443, in find_lowest_energy_conformer self.conformers.optimise(hmethod) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/conformers/conformers.py", line 306, in optimise return self._parallel_calc("optimise", method, keywords) File "/apps/anaconda3/envs/autode_142/lib/python3.10/site-packages/autode/conformers/conformers.py", line 288, in _parallel_calc self[idx] = res.result() File "/apps/anaconda3/envs/autode_142/lib/python3.10/concurrent/futures/_base.py", line 458, in result return self.__get_result() File "/apps/anaconda3/envs/autode_142/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result raise self.exception autode.exceptions.CoordinateTransformFailed: DIC->Cart iterative back-transform did not converge --------------------

This is my input file in case you want to try:

import autode as ade ade.Config.n_cores = 4 ade.Config.max_core = 4000 ade.Config.hcode = 'NWChem' ade.Config.lcode = 'XTB' r1 = ade.Reactant(smiles='CC(C)=O') r2 = ade.Reactant(smiles='CN(C)[Li-][O+]1CCCC1') p1 = ade.Product(smiles='CC(=C)O[Li-][O+]1CCCC1') p2 = ade.Product(smiles='[H]N(C)C') rxn = ade.Reaction(r1, r2, p1, p2, name='testthf-78C', solvent_name='thf', temp=195.15) rxn.calculate_reaction_profile(free_energy=True) quit()

Thanks

shoubhikraj commented 5 months ago

@eneas77 Hi, does the DA example work? The optimiser and the coordinate systems need some more improvements before it can work on every possible system. I suspect in your case above, one or more angles are becoming linear(180) during optimisation, or becoming <90 when starting from linear. Both of these cases will fail currently.

eneas77 commented 5 months ago

@shoubhikraj Yes, the DA example now works.