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

Nexus: make tiling more robust #1432

Merged
merged 4 commits into from
Mar 12, 2019
Merged

Conversation

jtkrogel
Copy link
Contributor

@jtkrogel jtkrogel commented Mar 11, 2019

This PR fixes the issues raised in #1408. Full matrix tilings are trickier than first appreciated.

Nexus attempts to arrive at an effective diagonal tiling by reducing the tiling matrix into a volume preserving diagonal form via successive shear operations. This usually works, but the diagonal tiling apparently depends on the order of the shearing operations (e.g. you can sometimes get either (1,1,4) or (1,2,2)) as revealed by #1408.

This PR added tests of diagonal and matrix tiling and also a search over permutations in the shearing operation order. This change worked for the problem case of #1408, however it did not work for all of the randomly generated tiling matrices just added to the test set.

A final brute force fallback operation was added to catch the remaining cases: essentially find a bounding box for the tiled supercell in the basis of the untiled axes, generate new atomic coordinates in this bounding box, and then remove duplicate points. This approach was avoided originally because it's worst case scaling is order det(T)^3 rather than order det(T) as above.

@qmc-robot
Copy link

Can one of the maintainers verify this patch?

@Paul-St-Young
Copy link
Contributor

This does resolve the problem case I found. Thanks @jtkrogel!

@markdewing
Copy link
Contributor

okay to test

@ghost ghost assigned markdewing Mar 11, 2019
@ye-luo ye-luo merged commit 1f4ab09 into QMCPACK:develop Mar 12, 2019
@ghost ghost removed the in progress label Mar 12, 2019
@jtkrogel jtkrogel deleted the nx_fix_tiling branch September 16, 2019 12:13
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

Successfully merging this pull request may close these issues.

5 participants