Cracking the Code of Spin Order: The Luttinger-Tisza Method
Magnetic materials often host beautifully complex spin configurations—far beyond the familiar images of ferromagnets with aligned spins or antiferromagnets with alternating patterns.
In many real-world systems, especially those with geometric frustration or competing interactions, the spin arrangements can become intricate and nontrivial.
So how do we begin to make sense of such complexity? How can we predict the ground state—the lowest energy configuration—of a sea of interacting spins?
Result for J1 > 0 (AFM) for TL-AFM problem.
One elegant and powerful approach is the Luttinger-Tisza method, introduced by J.M. Luttinger and L. Tisza in 1946.
At its heart, the method transforms the difficult problem of minimizing a spin Hamiltonian—often a nonlinear, constrained optimization—into a more manageable linear algebra problem.
The key insight is this:
Rather than enforcing that each spin individually maintains a fixed magnitude (a local constraint), the Luttinger-Tisza method temporarily relaxes this requirement.
Instead, it imposes a global constraint—that the sum of the squares of all spin magnitudes equals the total number of sites times the spin length squared.
This relaxation opens the door to a powerful simplification: in Fourier space, the Hamiltonian becomes diagonal, and the ground state can often be deduced by simply identifying the wavevector that minimizes the eigenvalue of the interaction matrix.
(Left) Local constraints, (quite though to solve analytically)
(Right) Global constraints, (relatively easy to solve analytically)
Local constraints: Localized moment should have the same length for each site.
Global constraints: Total spin moment from all sublattice should be the same with some number.
This approach is not without its caveats. Since the local constraint is relaxed, the resulting solution must be checked to ensure that each spin indeed has the correct length.
When this condition fails, the true ground state may require mixing multiple modes or resorting to numerical minimization.
Yet in many important cases, especially for systems with weak anisotropy, low degree of freedom, close to classical spin system, the Luttinger-Tisza method gives the correct answer—and provides deep physical intuition.
Of course, you may verify your calculation by spinwave calculation or simulated annealing calculation for cross-checking.
So, in practice, how do we calculate this?
Step 1: Define the Hamiltonian:
Start by writing down the Hamiltonian that describes the energy of your spin system.
For a classical Heisenberg model, it typically takes the form:
Here, J is the exchange coupling constant, μ is the magnetic moment, and B is the external magnetic field.
Step 2: Set Up the Lattice:
Specify the geometry of your spin system by defining the lattice structure—this includes the positions of spin sites and their nearest-neighbor connections.
Typical examples include 1D chains, 2D square or triangular lattices, and 3D cubic lattices.
Step 3: Calculate the magnetic state via single-Q ansatz:
Assume that the magnetic ordering of the system can be described by a single-Q modulation.
This means that in momentum space, the spin configuration has only one dominant Fourier component:
This ansatz significantly simplifies the analysis and is often valid for systems with periodic spin structure.
Inserting the above ansatz into the Hamiltonian yields a simple expression for the energy in terms of the momentum-space exchange interaction, J(k).
Considering the global constraints, this S(Q) becomes just constant.
Therefore, we just need to find which Q gives energy minima for given J(k)...
Step 4: Sweep Q-value in 1st Brillouin zone and find the optimal Q-vector
Evaluate the function J(k) for different wavevectors k in the first Brillouin zone.
Unless you have specific purpose, this can be done easily by numerical methods.
The optimal ordering wavevector Q corresponds to the one that minimizes J(k), which gives you the magnetic ground state structure.
Tutorial: triangular AFM ground state
2D triangular lattice has 6 pairs of 1NN interaction.
In the isotropic Heisenberg model, a global rotation of all spins on the 2D sphere leaves the total energy invariant.
Fourier transform the spin structure and re-write the magnetic Hamiltonian, the resulting structure becomes analytically tractable.
To determine the ground state, we compute J(k) over the first Brillouin zone. The wavevector Q that minimizes J(k) then corresponds to the magnetic ordering vector.
Julia code for AFM 2D triangular lattice
"""
This code will demonstrate how Luttinger-Tisza method can be used to calculate
the prediction of modulation vector according to given exchange interactions.
Here, for the sake of simplicity, we will only consider the 2D TL-AFM with J1 = +1 only.
"""
using LinearAlgebra
J1 = 1.0;
d_1NN = [ [+1.0, 0.0] , [ 0.0, +1.0] , [+1.0, +1.0] ,
[-1.0, 0.0] , [ 0.0, -1.0] , [-1.0, -1.0] ];
a_star = [+1.0, 0.0]; grid1 = range(0,1,301); len1 = length(grid1);
b_star = [ 0.0,+1.0]; grid2 = range(0,1,301); len2 = length(grid2);
J_Q = zeros(len1,len2); J_Q = complex(J_Q);
for (i,q1) in enumerate(grid1), (j,q2) in enumerate(grid2)
Q = q1 * a_star + q2 * b_star;
for d in d_1NN
global J_Q[i,j] += J1 * exp( 1im * 2*pi * dot(Q,d) );
end
end
J_Q = real(J_Q);
# Due to numerical round off, imaginary part may be not exactly zero.
# Then, we find the minima of J_Q
# We can use the function findmin to find the minimum value and its index
min_val, min_idx = findmin(J_Q)
min_idxs = findall(x -> x == min_val, J_Q) # Find all indices of the minimum value
for idx in min_idxs
q1 = grid1[idx[1]]
q2 = grid2[idx[2]]
println("Minimum value: $min_val at (q1, q2) = ($q1, $q2)")
end # Check the result!
Minimum value: -3.0 at (q1, q2) = (0.3333333333333333, 0.3333333333333333)
Minimum value: -3.0 at (q1, q2) = (0.6666666666666666, 0.6666666666666666)
Although this result may not appear immediately intuitive, it actually corresponds to the K-point ordering—more commonly known as the 120-degree spin structure—in the triangular lattice antiferromagnetic (TL-AFM) system.
To explore further, you might consider including next-nearest (J₂) or third-nearest neighbor (J₃) interactions. Even more generally, you can apply this method to systems with multiple sublattices, such as AB-stacked triangular lattice, honeycomb or Kagome lattices.
In those cases, J(k) becomes a matrix-valued function, and the problem reduces to finding the lowest eigenvalue of the interaction matrix at each k-point.
This minimal eigenvalue then serves as an effective prediction for the ground state energy, and the corresponding eigenvector indicates the spin configuration in momentum space.
You might now wonder: “What is the physical meaning of the eigenvector associated with the minimum eigenvalue of J(k)?”
Upon closer inspection, it turns out that this eigenvector encodes the relative phase and amplitude between sublattices in a single-Q helical spin configuration.
This will be briefly mentioned in the example that follows.
🌐 Local Constraints and Helical Solutions in the Luttinger-Tisza Method
Although the Luttinger-Tisza method simplifies the problem by relaxing the local spin-length constraint, the resulting spin configurations do not always maintain constant magnitude at every site. This is a well-known limitation of the method.
However, in certain cases—especially for systems that favor spiral or helical spin textures—a clever linear combination of two orthogonal modes can restore the local constraint.
That is, even within the Luttinger-Tisza framework, one can construct a physically valid spin configuration where |Sₙ|= S is satisfied for all n.
For example, consider the following superposition of two spin waves with a phase shift of π/2:
This configuration describes a helical spin texture rotating in the xy-plane, and crucially, it satisfies:
(Local constraints recovered!)
Thus, while the Luttinger-Tisza method may appear to violate the local constraint, it can still yield exact solutions when properly interpreted or extended via such constructions.