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

Optimization of molecular crystals (and other periodic systems) #189

Open
annulen opened this issue Jan 4, 2024 · 4 comments
Open

Optimization of molecular crystals (and other periodic systems) #189

annulen opened this issue Jan 4, 2024 · 4 comments

Comments

@annulen
Copy link

annulen commented Jan 4, 2024

I've recently worked with CP2K, and its optimizer is far from being stellar. AFAIU, they use fractional coordinates (XYZ projected onto lattice vectors) which is clearly suboptimal for crystals composed of organic molecules. Observable behavior is that convergence is very slo, e.g more than 200 steps were needed to optimize cell of 80 atoms.

I wonder what kind of changes would be needed to make geomeTRIC work for this case. It seems to me that TRIC coordinates should be an ideal fit for molecular crystal. However it might be needed to take into account that certain groups of atoms on the opposite sides of unit cell are in fact parts of the same molecule dissected by cell borders.

Another thing to consider is optimization of unit cell parameters which should ideally be performed in conjunction with geometry optimization. Distances between separate molecules and cell parameters are interdependent. CP2K uses stress tensor to optimize cell parameters.

@leeping
Copy link
Owner

leeping commented Jan 24, 2024

Supporting periodic boundary conditions is something I've wanted to do for a long time. I agree the TRIC coordinate system could yield performance improvements for molecular crystals, but we should be able to support general periodic systems.

The Molecule object, which is used to determine the bond lists, currently supports cubic cells. It would need to be extended to support triclinic cells. We would also need to add primitive internal coordinates for changes in the lattice vectors. I currently don't know whether it's better to directly modify the lattice vector components, or the three lengths + three angles. For molecular crystals, I think that the lattice vectors should be coupled to the centers of the molecules in the lattice, so that as the lattice deforms, the molecules move rigidly such that the fractional coordinates of the centers in the cell are the same.

Lastly we need an Engine object to communicate with a periodic code. If you have an example geometry optimization with CP2K, that would be very helpful to get started.

@corinwagen
Copy link

Is this still an open question? tblite should work out-of-the-box for periodic systems...

@annulen
Copy link
Author

annulen commented Sep 18, 2024

tblite is about solving electronic problem (it even does explicitly state that it supports only single point calculations). And that's great. On the other hand, geomeTRIC (as well as other "stand-alone" geometry optimizers) solves entirely different problem of finding stationary points of molecule's potential energy surface, using some other code to solve electronic problem on every step. So they aren't alternatives to each other.

@corinwagen
Copy link

yep, agreed. I should have clarified - I was attempting to respond to @leeping's final question about a test periodic engine:

Lastly we need an Engine object to communicate with a periodic code. If you have an example geometry optimization with CP2K, that would be very helpful to get started.

Since tblite is an open-source code that runs on periodic systems, this could be useful for quickly testing periodic optimizations.

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

3 participants