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

question about convergence criterion when inequality constraints are imposed #27

Open
wenyan4work opened this issue Aug 5, 2023 · 0 comments

Comments

@wenyan4work
Copy link

wenyan4work commented Aug 5, 2023

First of all, thank you for releasing this great package!

I have a question about the geometry optimizer convergence criterion in the 'minimizer' mode. In the appendix your paper Sella, an Open-Source Automation-Friendly Molecular Saddle Point Optimizer, 2022, JCTC, you mentioned that When using constraints, it is necessary to first project out the components of the gradient in the constraint subspace. This is certainly true for equality constraints. However, for inequality constraints, usually there should be an extra condition that the components of the gradient is projected out only when the inequality constraint is active, where active means the current geometry at this constrained IC violates the imposed constraint.

For example, when we limit the bond length of a H2 molecule (at its natural bond length = 74pm) to be larger than 60pm, this inequality constraint is not active so the gradient along the bond direction should not be projected out. If we want to limit the bond length to be 80pm, then the H2 molecule geometry is stretched to 80pm and now the constraint is active, and the force along the bond direction now should be projected out.

I found this function:
https://github.com/zadorlab/sella/blob/723756ffa263e7dccf154d01e5e3201e5ab9cc8e/sella/internal.py#L877C1-L888C47

Is this where Sella implements this for inequality constraints?

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

1 participant