Next: , Previous: The lattice definition, Up: Top


9 The Hamiltonian

A number of hamiltonians can be specified. Most of them require additional parameters to be set, which will be discussed in this section.

9.1 Hamiltonian = super-exchange

This is the classical version of the Heisenberg hamiltonian, E_i = J1 S_i Sum(j in nn)S_j + J2 S_i Sum(j in nnn)S_j + J3 S_i Sum(j in 3rdnn)S_j + S_i MAE S_i + H S_i where 'nn' are nearest neighbours, 'nnn' are next nearest neighbours and '3rdnn' are 3rd nearest neighbours. J1, J2 and J3 are the superexchange constants, 'MAE' is the magnetic anisotropy vector, and 'H' is the external magnetic field vector.

This is the only hamiltonian for which you can set the spin dimension D < 3 to simulate Ising or xy systems. The field and magnetic anisotropy can only be set for D = 3. If you want to simulate an Ising system in the presence of a field, then using D=3 in combination with a very large easy axis anisotropy defined with 'MAE'.

An example for an ising system with transverse field:

     Hamiltonian = super-exchange
     spin-dimension = 3
     MAE = 10 10 0
     H = 0 1 0

9.2 “super-exchange, Heisenberg”

This hamiltonian is identical to the one above, but now setting 'spin-dimension' has no effect. Heisenberg spins are used, and the standard Heisenberg spin-flip method is used which cannot by employed for xy and Ising systems. If you do not want to simulate xy- and Ising systems this hamiltonian is recommended over the one above.

9.3 “dipole-dipole truncated”

This is the simplest way to include the magnetic dipole interactions between the spins. A difficulty with this kind of interaction is that it is long-ranged, and decays with 1/r^3. A result of this is that the net effect of this interaction can depend on the shape of the sample, giving rise to shape anisotropy. This effect will be stronger for smaller samples. In the way it is implemented here, only interactions within the simulation cell (or within the cut-off distance) are taken into account, even when periodic boundary conditions apply. Therefore this Hamiltonian is not recommended for the study of magnetic phase transitions. Note; the html version of the manual contains the relevant formulas.

9.4 “dipole-dipole reaction field”

The reaction field method aims to address the issues highlighted in the previous paragraph by taking the net average dipole force within a sphere with specified radius as the basis for calculating the contribution from a homogeneous medium beyond the sphere. Within the sphere the dipole interactions are handled as in the truncated dipole hamiltonian. The radius of the sphere must be specified as the cut-off distance, which must be smaller than the shortest distance from a spin to its nearest periodic image.

9.5 Dipole-dipole interaction with Ewald sum

With the Ewald sum the dipole-dipole interactions of an infinite and long-range ordered medium can be calculated excactly (in principle), by taking the interactions from all dipoles in the simulation cell into account, as well as their periodic images ad infinitum. Though you will find a class for the Ewald sum hamiltonian in the header file 'hamiltonian.hpp' which should in principle be correct, more work needs to be done to make this feature useable. In its current implementation it is so slow that it is not useable. In case you know how to optimise this calculation (I beleive it is done by building a database of past solutions) then I would like to hear from you.

9.6 “local MAE”

This hamiltonian is like the normal super-exchange hamiltonian, but now anisotropy axes and planes can be specified per atom in the unit cell, including their orientation, using the Eulerian angles phi, theta and psi. Then the ligand field terms are specified as 'A_z' and 'A_xy'. All these parameters take a list of values, one for each atom in the unit cell.

For example in a system with three atoms per unit cell:

     Hamiltonian = "local MAE"
     A_z = 0.1 0.1 0.1      #Easy-axis or easy-plane term (easy plane here)
     A_xy = 0 0 0           #x^2-y^2 term.
     psi = 0.0 0.0 0.0
     theta = 0.6 0.6 -0.6
     phi = 0.5236 -0.5236 0.0

It is recommended that you check the orientation of the symmetry axis by doing a short run on a small lattice, with the J's set to zero and with a small magnetic field. Save the result using the -E option on the command line, and look at the resulting magnetic structure generated with respin using geomview. If the A_z and field orientation are chosen judiciously you can check whether the axes are aligned correctly.

9.7 DMI

In addition of super exchange and magnetic field this hamiltonian implements the Dzyaloshinkii Moriya interaction. The Dij vector (in Dij(Sixsj)) must be specified for each crystallographically different bond separately. This should be done in a '.dmi' file linked into the input file with the command “DMI = 'yourfile.dmi' “. This kind of exchange is antisymmetric on permutation of the two spins, so care needs to be taken to choose the startpoint and endpoint for each bond consistently, and give its D_ij the right sign. Imagine you have two atoms per unit cell S1 and S2, then there are at least two different bonds; from S1 to S2 within the same unit cell, and from S1 in one unit cell to S2 in another. These different bonds are identified using the 'cell_offset' giving the relative indices from the cell of S1 to the cell of S2.

For example, for the kagome lattice we may have in the file 'tria.dmi'

     S1.site = 0
     S2.site = 0
     cell_offset = 1 0 0
     Dij = 0 0 0.2
     
     S1.site = 0
     S2.site = 0
     cell_offset = 0 1 0
     Dij = 0 0 0.2
     
     S1.site = 0
     S2.site = 0
     cell_offset = 1 1 0
     Dij = 0 0 0.2

NB. the sites within the unit cell are numbered starting at 0, in the order they have been specified with the 'add-atom' command.

NB2. This example serves only to explain the syntax. I don't know whether this would actually be a sensible calculation. A better example will be made available soon.