


calculates dynamical spin-spin correlation function using linear spin wave theory
spectra = SPINWAVE(obj, k, 'option1', value1 ...)
Spin wave dispersion and spin-spin correlation function is calculated at
the reciprocal space points k. The function can deal with arbitrary
magnetic structure and magnetic interactions as well as single ion
anisotropy and magnetic field.
If the magnetic ordering wavevector is non-integer, the dispersion is
calculated using a coordinate system rotating from cell to cell. In this
case the Hamiltonian has to fulfill this extra rotational symmetry.
Input:
obj Input structure, sw class object.
hkl Defines the Q points where the spectra is calculated, in
reciprocal lattice units, size is [3 nHkl]. Q can be also
defined by several linear scan in reciprocal space. In this
case hkl is cell type, where each element of the cell
defines a point in Q space. Linear scans are assumed
between consecutive points. Also the number of Q points can
be specified as a last element, it is 100 by defaults. For
example: hkl = {[0 0 0] [1 0 0] 50}, defines a scan along
(h,0,0) from 0 to 1 and 50 Q points are calculated along
the scan.
For symbolic calculation at a general reciprocal space
point use sym class input. For example to calculate the
spectrum along (h,0,0): hkl = [sym('h') 0 0]. To
do calculation at a specific point do for example
sym([0 1 0]), to calculate the spectrum at (0,1,0).
Options:
formfact Setting, that determines whether the magnetic form factor
is included in the spin-spin correlation function
calculation. Possible values:
false No magnetic form factor is applied (default).
true Magnetic form factors are applied, based on the
label string of the magnetic ions, see sw_mff()
function help.
cell Cell type that contains mixed labels and
numbers for every symmetry inequivalent atom in
the unit cell, the numbers are taken as
constants.
For example: formfact = {0 'MCr3'}, this won't include
correlations on the first atom and using the form factor of
Cr3+ ion for the second atom.
formfactfun Function that calculates the magnetic form factor for given
Q value. Default value is @sw_mff(), that uses a tabulated
coefficients for the form factor calculation. For
anisotropic form factors a user defined function can be
written that has the following header:
F = @formfactfun(atomLabel,Q)
where the parameters are:
F row vector containing the form factor for every
input Q value
atomLabel string, label of the selected magnetic atom
Q matrix with dimensions of [3 nQ], where each column
contains a Q vector in Angstrom^-1 units.
gtensor If true, the g-tensor will be included in the spin-spin
correlation function. Including anisotropic g-tensor or
different g-tensor for different ions is only possible
here. Including a simple isotropic g-tensor is possible
afterwards using the sw_instrument() function.
fitmode Speedup (for fitting mode only), default is false.
notwin If true, the spectra of the twins won't be calculated.
Default is false.
sortMode The spin wave modes will be sorted if true. Default is
true.
optmem Parameter to optimise memory usage. The list of hkl values
will be cut into optmem number of pieces and will be
calculated piece by piece to decrease memory usage. Default
of optmem is zero, when the number of slices are determined
automatically from the available free memory.
tol Tolerance of the incommensurability of the magnetic
ordering wavevector. Deviations from integer values of the
ordering wavevector smaller than the tolerance are
considered to be commensurate. Default value is 1e-4.
omega_tol Tolerance on the energy difference of degenerate modes when
diagonalising the quadratic form, default is 1e-5.
hermit Method for matrix diagonalization:
true J.H.P. Colpa, Physica 93A (1978) 327,
false R.M. White, PR 139 (1965) A450.
Colpa: the grand dynamical matrix is converted into another
Hermitian matrix, that will give the real
eigenvalues.
White: the non-Hermitian g*H matrix will be diagonalised,
that is not the elegant method.
Advise:
Always use Colpa's method, except when small imaginary
eigenvalues are expected. In this case only White's method
work. The solution in this case is wrong, however by
examining the eigenvalues it can give a hint where the
problem is.
Default is true.
saveH If true, the quadratic form of the Hamiltonian is saved. Be
carefull, it can take up lots of memory. Default is false.
saveT If true, the matrices that transform the normal magnon
modes into the magnon modes localized on the spins are
saved. Be carefull, it can take up lots of memory.
Default is false.
saveSabp If true, the dynamical structure factorin the rotating
frame is saved S'(k,omega). Default is false.
title Gives a title string to the simulation that is saved in the
output.
Output:
'spectra' is a structure, with the following fields:
omega Calculated spin wave dispersion, dimensins are
[nMode nHkl], where nMagExt is the number of magnetic
atoms in the extended unit cell.
Sab Dynamical structure factor, dimensins are
[3 3 nMode nHkl]. Each (:,:,i,j) submatrix contains the
9 correlation functions: Sxx, Sxy, Sxz, etc. If given,
magnetic form factor is included. Intensity is in hBar
units, normalized to the crystallographic unit cell.
H Quadratic for mof the Hamiltonian.
Only saved if saveH is true.
T Transformation matrix from the normal magnon modes to the
magnons localized on spins:
x_i = sum_j T_ij * x_j'
Only saved if saveT is true.
Sabp Dynamical structure factor in the rotating frame,
dimensions are [3 3 nMode nHkl], but the number of modes
are equal to twice the number of magnetic atoms.
formfact Cell containing the labels of the magnetic ions if form
factor in included in the spin-spin correlation function.
nMode is the number of magnetic mode. For commensurate structures it is
double the number of magnetic atoms in the magnetic cell/supercell. For
incommensurate structures this number is tripled due to the appearance of
the (Q+/-km) Fourier components in the correlation functions. For every k
points in the following order: (k-km,k,k+km).
If several twins exist in the sample, omega and Sab are packaged into a
cell, that contains nTwin number of matrices.
hkl Contains the input Q values, dimensins are [3 nHkl].
hklA Same Q values, but in reciproc Angstrom units in the
lab coordinate system, dimensins are [3 nHkl].
incomm Whether the spectra calculated is incommensurate or not.
obj The copy of the input obj.
Example:
tri = sw_model('triAF',1);
sw_plotspec(tri.spinwave({[0 0 0] [1 1 0]}))
The above example will calculate and plot the spin wave dispersion of the
triangular lattice antiferromagnet (S=1, J=1) along the [H H 0] direction
in reciprocal space.
See also SW, SW.SPINWAVESYM, SW_NEUTRON, SW.POWSPEC, SW.OPTMAGSTR, SW.FILEID, SW_INSTRUMENT.