spinw.optmagk method#
Syntax#
res = optmagk(obj,Name,Value)
Description#
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#
objspinw object.
Name-Value Pair Arguments#
kbaseProvides 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#
resStructure with the following fields:
kValue of the optimal k-vector, with values between 0 and 1/2.nNormal vector, defines the rotation axis of the rotating coordinate system.EThe most negative eigenvalue at the given propagation vector.statFull output of thendbase.psooptimizer.
See Also#
ndbase.pso