-
Notifications
You must be signed in to change notification settings - Fork 6
Description
We probably need to agree how interactions should be defined between sites i and j. The two methods I'm familiar with is lattice vectors and explicit methods.
Lattice vectors
Lattice vectors are simpler to write by hand, link well to DFT but need symmetry operations to expand to full cartesian space. Eg for BCC one might have:
MS1 0.5 0.5 0.5
which implies directions vectors for all +/-x, +/-y, +-z, ie 2^3 = 8 combinations, but other crystals have more restricted symmetry. In general such expansion might need reference implementations (including the correct crystal symmetry) to generate the full list of interactions.
Explicit list
An explicit neighbour list writes all interactions (or only half with symmetric assumed). This leads to larger file sizes, but is very explicit (and if i->j and j->i interactions are included can be checked for symmetry). For example, in VAMPIRE this is done with unit cell offsets in x,y,z, eg for site MS1 in BCC:
# site-i site-j dx dy dz Jij
MS1 MS2 0 0 0
MS1 MS2 -1 0 0
MS1 MS2 -1 -1 0
MS1 MS2 0 -1 0
MS1 MS2 0 0 -1
MS1 MS2 -1 0 -1
MS1 MS2 -1 -1 -1
MS1 MS2 0 -1 -1
This is verbose, but needs no information about crystal symmetry, range of interaction etc.