E = energy(obj,Name,Value)


E = energy(obj,Name,Value) calculates the classical ground state energy per spin. The calculation correctly takes into account the magnetic supercell. The function gives correct results on single-k magnetic structures even defined on magnetic supercells. For multi-k magnetic structures first a definition of a larger supercell is necessary where an effective \(k=0\) representation is possible.


After optimising the magnetic structure (by minimizing the ground state energy), the energy per spin is calculated. This can be compared to different ground state structures to decide which is the right classical ground state of the magnetic model in cryst. Here we use the triangular lattice antiferromagnet where we define the magnetic structure on a \([3\times 3]\) magnetic supercell where the optimal structure (120° angle between neighboring spins) has a 0 propagation vector. In this case the exact energy is \(3\cdot 1^2\cdot \cos(120^\circ) = -1.5\).

cryst = sw_model('triAF',1)
cryst.genmagstr('mode','random','nExt',[3 3 1])


Ground state energy: -1.500 meV/spin.

Input Arguments

spinw object.

Name-Value Pair Arguments

The smallest value of incommensurability that is tolerated without warning. Default is \(10^{-5}\).

Output Arguments

Energy per moment (anisotropy + exchange + Zeeman energy).

See Also

spinw | spinw.anneal | spinw.newcell