Skip to content
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

Geo. Opt. in redundant coordinates #309

Open
sespic opened this issue Aug 16, 2024 · 1 comment
Open

Geo. Opt. in redundant coordinates #309

sespic opened this issue Aug 16, 2024 · 1 comment

Comments

@sespic
Copy link

sespic commented Aug 16, 2024

Describe the bug
If optimizations are run within redundant coordinates and the molecular structure undergoes major changes, it is sometimes observed, that after good convergence over many cycles (therefore the problem is particularly prominent if tight convergence thresholds are applied, otherwise the calculations are often already declared to be converged), all of a sudden (a) the geometry optimization stops, (b) the geometry optimization generates no further output but pysis continues to consume CPU time, or (c) the molecular structure is strongly damaged, causing crashes or long compute times of the actual calculators. This behavior is sometimes reproducible, sometimes not.
I would personally expect, that the strong geometry changes make the redundant coordinates linearly dependent so that structural updates fail.

To Reproduce
Attached is a case where (c) took place. The starting structure is admittedly a little weird (one short H-H distannce) form of n-decane, but on the other hand one of the examples that turned out to be well reproducible.
Attached is the corresponding input, the call was “pysis input.yaml > pysis.out”.
Furthermore attached is the obtained output and the corresponding trajectory for comparison.

Expected behavior
I would think that if upon these major changes the redundant coordinates are newly constructed (and maybe historic coordinate update information is discarded if this takes place) this behavior is avoided. Also going back one structure in the trajectory if an update obviously delivers nonsense could help to avoid/repair the observed case.

OS and Python:

  • OS: Linux-5.14.0-284.71.1.el9_2.x86_64-x86_64-with-glibc2.34
  • Python version: Python 3.10.8, NumPy 1.25.2, SciPy 1.11.1
  • Calculator: xtb 6.6.1

Pysisyphus version
0.7.6.post2
pysis.txt
input_xyz.txt
input_yaml.txt
optimization_trj.txt

@eljost
Copy link
Owner

eljost commented Aug 20, 2024

Dear Sebastian,

thanks for the report.

When I run the example with the current dev branch the optimization converges. Nonetheless, the "lack of progress" around cycles 26 to 47 is also apparent.

00_run.tar.gz

I'll look into it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants