exchange¶
Heisenberg bilinear exchange on a Bravis lattice
The exchange tensors \(\mathbb{J}_{ij}\) are specified between materials or atom positions within the unit cell with an interaction vector \(\vec{r}_{ij}\). By default the interaction vector is in Cartesian coordinates and JAMS will use the detected symmetry operations of the unit cell to generate symmetric vectors.
Specified interactions are not assumed to be reciprocal between materials/unitcell positions, so if \(A\) and \(B\) are materials \(\mathbb{J}_{AB}\) and \(\mathbb{J}_{BA}\) must both be specified.
Settings¶
-
exc_file
Name of file containing exchange interaction data (format specified below)
-
interactions
Inline description of exchange parameters.
Format is one of:
("MaterialA", "MaterialB", [rx, ry, rz], Jij)
("MaterialA", "MaterialB", [rx, ry, rz], Jij_xx, Jij_xy, Jij_xz, Jij_yx, Jij_yy, Jij_yz, Jij_zx, Jij_zy, Jij_zz)
(1, 2, [rx, ry, rz], Jij)
interactions = (
("A", "A", [0.5, 0.5, 0.5], 3.5e-21)
);
Warning
The data structure used to store the config means that if too many interactions are specified in the interactions
setting then the memory usage will be very large. In this case the external exc_file
should be used instead.
-
coordinate_format = "cartesian"
“cartesian” or “fractional”
Coordinate system for the interaction vectors rij.
-
symops = true
If true then the symmetry operations of the crystal will be applied to each interaction vector.
-
print_unfolded = false
If true then the input interactions are printed out to file after any symmetry operations have been applied.
-
energy_cutoff = 1e-26
Remove any exchange interactions where abs(Jij) < energy_cutoff.
-
radius_cutoff = 100.0
Remove any exchange interactions where norm(rij) > radius_cutoff (in units of lattice parameters).
-
distance_tolerance = jams::defaults::lattice_tolerance
Tolerance to use for floating point comparisons of distances for rij.