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

Core: neighbours and analogies of isotropic and anisotropic Hamiltonians #146

Closed
GPMueller opened this issue Mar 12, 2017 · 3 comments
Closed

Comments

@GPMueller
Copy link
Member

The neighbour calculation could simply calculate the da db and dc for the neighbours of the first unit cell depending on the number of shells etc. This way one could generate a list of pairs equivalent to the input for the anisotropic Hamiltonian
The two Hamiltonians could be merged into one again...

Question: how to deal with this in the UI? The neighbours could be re-calculated when input changes and from there the entire pairs re-calculated.

@GPMueller
Copy link
Member Author

GPMueller commented May 16, 2017

It makes sense to converge to two similar implementations:

Hamiltonian_Heisenberg_Neighbours

  • using neighbour lists (calculated and saved for the first cell and translated during calculation) determined by shell-wise input
  • This only allows for shell-wise input, but would thereby allow an easy user interface
  • The calculation can be parallelized per cell which should in theory give great performance using CUDA on GPUs (strangely this did speed-up not work when I tried)

Hamiltonian_Heisenberg_Pairs (see also #117)

  • using pair lists (calculated and saved for the first cell and translated during calculation) determined by exact input of the entire lists
  • This allows for anisotropic distributions of interactions
  • On single-thread this should be 2x as fast as the neighbours approach

Both implementations would allow the geometry to be changed at runtime (if #117 is also implemented - see also #102), as the lists do not depend on the geometry, though one would need to check that the geometry is large enough to contain the shells/lists.
This work has been initiated on feature-improve-hamiltonians, starting with fccc5a3.

@GPMueller
Copy link
Member Author

GPMueller commented May 22, 2017

Finished most of the implementation on feature-improve-hamiltonians with 6238182, merged into develop with 8569ae5.

@GPMueller
Copy link
Member Author

Tracking CUDA implementations of the new Hamiltonians in #222, therefore closing this issue.

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

No branches or pull requests

1 participant