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 4 commits into from Mar 12, 2019


None yet
5 participants
Copy link

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.


This comment has been minimized.

Copy link

qmc-robot commented Mar 11, 2019

Can one of the maintainers verify this patch?


This comment has been minimized.

Copy link

Paul-St-Young commented Mar 11, 2019

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


This comment has been minimized.

Copy link

markdewing commented Mar 11, 2019

okay to test

@ye-luo ye-luo merged commit 1f4ab09 into QMCPACK:develop Mar 12, 2019

2 checks passed


@wafflebot wafflebot bot removed the in progress label Mar 12, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.