res = optmagk(obj,Name,Value)


res = optmagk(obj,Name,Value) determines the optimal propagation vector using the Luttinger-Tisza method. It calculates the Fourier transform of the Hamiltonian as a function of wave vector and finds the wave vector that corresponds to the smalles global eigenvalue of the Hamiltonian. It also returns the normal vector that corresponds to the rotating coordinate system. The global optimization is achieved using Particle-Swarm optimizer.

Input Arguments

spinw object.

Name-Value Pair Arguments

Provides a set of vectors that span the space for possible propagation vectors: \[\mathbf{k} = \sum_i C(i)\cdot \mathbf{k}_{base}(i);\]

where the optimiser determines the \(C(i)\) values that correspond to the lowest ground state energy. \(\mathbf{k}_{base}\) is a matrix with dimensions \([3\times n_{base}]\), where \(n_{base}\leq 3\). The basis vectors have to be linearly independent.

The function also accepts all options of ndbase.pso.

Output Arguments

Structure with the following fields:
  • k Value of the optimal k-vector, with values between 0 and 1/2.
  • n Normal vector, defines the rotation axis of the rotating coordinate system.
  • E The most negative eigenvalue at the given propagation vector.
  • stat Full output of the ndbase.pso optimizer.

See Also