spirit-code / spirit

Atomistic Spin Simulation Framework
http://spirit-code.github.io
MIT License
120 stars 53 forks source link

Heisenberg Hamiltonian structure #311

Closed GPMueller closed 6 years ago

GPMueller commented 7 years ago

General

Maybe re-establish homogeneous and inhomogeneous hamiltonians, fusing neighbours and pairs together. The homogeneous model can assume a single set of constants for the first basis cell and translate this across the lattice, while the inhomogeneous model could e.g. generate full lists of interactions on creation, with a set of interaction pairs/neighbours for each single spin (or cell?).

This issue could also be related to the Geometry: When the geometry is not a regular lattice, things need to be done differently. This is currently not supported, but under development - a full neighbour list for the entire lattice could in principle be calculated in such a case, but the question is how the interaction parameters should then be set...

How to deal with pinned spins and atom types consistently and efficiently? - especially if no spins are pinned and all atoms have the same type?

Interactions

What needs to be covered:

Examples:

Suggestions:

Points to consider:

Fields

What may need to be covered:

Examples:

Suggestions:

Points to consider:

Energy functions

Points to consider:

GPMueller commented 7 years ago

Concerning the fusion of neighbours and pairs:

The inhomogenous interactions should (at least for now) exclusively be done by creating a correspondingly-sized single basis cell.

GPMueller commented 7 years ago

Note: it would be advisable to retain information on whether interactions were provided in the form of neighbour shells or pairs etc.

GPMueller commented 6 years ago

Creating a list of pairs

Functions:

GPMueller commented 6 years ago

Implemented on PR #395, merged with 3531992673e1bd4da1a043dea50e1f2994d79bde. TODO: