calculates the Fourier transformation of the Hamiltonian
Syntax
F = fourier(obj,Q,Name,Value)
Description
F = fourier(obj,hkl,Name,Value) calculates the following Fourier sum:
The code is optimised for calculating the sum for large number of wave vectors and alternatively for a large number of vectors (large system size). The single ion anisotropy is not included in the sum.
Input Arguments
obj- spinw object.
Q- Defines the points where the spectra is calculated, in reciprocal
lattice units, size is . can be also defined by
several linear scan in reciprocal space. In this case
Qis cell type, where each element of the cell defines a point in space. Linear scans are assumed between consecutive points. Also the number of points can be specified as a last element, it is 100 by defaults.For example to define a scan along from to using 200 points the following input should be used:
Q = {[0 0 0] [1 0 0] 50}For symbolic calculation at a general reciprocal space point use
symtype input.For example to calculate the spectrum along use:
Q = [sym('h') 0 0]To calculate spectrum at a specific point symbolically, e.g. at use:
Q = sym([0 1 0])
Name-Value Pair Arguments
'extend'- If
true, the Fourier transform will be calculated on the magnetic supercell, iffalsethe crystallographic cell will be considered. Default istrue. 'isomode'- Defines how Heisenberg/non-Heisenberg Hamiltonians are
treated. Can have the following values:
'off'Always output the form of the Hamiltonian, (default).'auto'If the Hamiltonian is Heisenberg, only output one of the diagonal values from the matrices to reduce memory consumption.
'fid'- Defines whether to provide text output. The default value is determined
by the
fidpreference stored in swpref. The possible values are:0No text output is generated.1Text output in the MATLAB Command Window.fidFile ID provided by thefopencommand, the output is written into the opened file stream.
Output Arguments
res struct type with the following fields:
ftcontains the Fourier transform in a matrix with dimensions or for Heisenberg and non-Heisenberg Hamiltonians respectively (if isomode is'auto'). Here is the number of magnetic atoms in the magnetic cell and is the number of reciprocal space points.hklMatrix with the given reciprocal space points stored in a matrix with dimensions .isisoTrue is the output is in Heisenberg mode, when theftmatrix has dimensions of , otherwise it isfalse.