genmagstr(obj,Name,Value) is a Swiss knife for generating magnetic
structures. It allows the definition of magnetic structures using several
different ways, depending on the
mode parameter. The generated magnetic
structure is stored in the [obj.mag_str] field. The magetic structure is
stored as Fourier components with arbitrary number of wave vectors in the
spinw object. However spin waves can be only calculated if the magnetic
structure has a single propagation vector (plus a k=0 ferromagnetic
component perpendicular to the incommensurate magnetization), we simply
call it single-k magnetic structure. Thus
genmagstr enables to input
magnetic structures that comply with this restriction by defining a
magnetic structure by the moment directions (
S) in the crystallographic
cell, a propagation vector (
km) and a vector that defines the normal of
the rotation of the spin spiral (
n). The function converts these values
into Fourier components to store. To solve spin wave dispersion of
magnetic structures with multiple propagation vectors, a magnetic
supercell has to be defined where the propagation vector can be
approximated to zero.
The example creates the multi-k magnetic structure of USb given by the
FQ Fourier components and plots the magnetic structure:
USb = spinw USb.genlattice('lat_const',[6.203 6.203 6.203],'spgr','F m -3 m') USb.addatom('r',[0 0 0],'S',1) FQ = cat(3,[0;0;1+1i],[0;1+1i;0],[1+1i;0;0])
FQ(:,:,1) = 0.0000 + 0.0000i 0.0000 + 0.0000i 1.0000 + 1.0000i FQ(:,:,2) = 0.0000 + 0.0000i 1.0000 + 1.0000i 0.0000 + 0.0000i FQ(:,:,3) = 1.0000 + 1.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
k = [0 0 1;0 1 0;1 0 0]; USb.genmagstr('mode','fourier','S',FQ,'nExt',[1 1 1],'k',k) plot(USb,'range',[1 1 1])
- spinw object.
Name-Value Pair Arguments
- Mode that determines how the magnetic structure is generated:
'random'(reads -) generates random zero-k magnetic structure.
k) direct input of the magnetic structure using the parameters of the single-k magnetic structure.
k) Simply extends the existing or input structure (
S) into a magnetic supercell by replicating it. If no structure is stored in the spinw object a random structure is generated automatically. If defined,
Sis used as starting structure for extension overwriting the stored structure. If the original structure is already extended with other size, only the moments in the crystallographic cell wil be replicated. Magnetic ordering wavevector
kwill be set to zero. To generate structure with non-zero k, use the
r0) generates helical structure in a single cell or in a supercell. In contrary to the
'extend'option the magnetic structure is not generated by replication but by rotation of the moments using the following formula:
where has either a single moment or as many moments as the number of magnetic atoms in the crystallographic cell. In the first case denotes the atomic positions, while for the second case denotes the position of the origin of the cell.
k) uniform rotation of all magnetic moments with a
phiangle around the given
phi=0, all moments are rotated so, that the first moment is parallel to
nvector in case of collinear structure or in case of planar structure
ndefines the normal of the plane of the magnetic moments.
x0) function that defines the parameters of the single-k magnetic structure: moment vectors, propagation vector and normal vector from arbitrary parameters in the following form:
[S, k, n] = @(x)func(S0, x)
Sis matrix with dimensions of .
kis the propagation vector in a 3-element row vector.
nis the normal vector of the spin rotation plane also 3-element row vector. The default value for
@gm_spherical3d. For planar magnetic structure use
xhave to be defined for this mode.
r0) same as
'helical', except the
Soption is taken as the Fourier components, thus if it contains real numbers, it will generate a sinusoidally modulated structure instead of a spiral.
- Angle of rotation of the magnetic moments in radian. Default value is 0.
- Angle of rotation of the magnetic moments in °. Default value is 0.
- Size of the magnetic supercell in multiples of the
crystallographic cell, dimensions are . Default value is
nExtis a single number, then the size of the extended unit cell is automatically determined from the first magnetic ordering wavevector. E.g. if
nExt = 0.01, then the number of unit cells is determined so, that in the extended unit cell, the magnetic ordering wave vector is
[0 0 0], within the given 0.01 rlu tolerance.
- Magnetic ordering wavevector in rlu, dimensions are .
Default value is defined in
- Normal vector to the spin rotation plane for single-k magnetic
structures, stored in a 3-element row vector. Default value
[0 0 1]. The coordinate system of the vector is determined by
- Vector values of the spins (expectation value), dimensions are .
Every column defines the three components of
the spin (magnetic moment) in the Descartes coodinate system or
in lu. Default value is stored in
- Determines the coordinate system for
nvectors using a string:
'xyz'Cartesian coordinate system, fixed to the lattice. Default value.
'lu'Lattice coordinate system (not necessarily Cartesian. The three coordinate vectors are parallel to the lattice vectors but normalized to unity.
- The smalles value of incommensurability that is tolerated without warning in lattice units. Default is .
- Function handle that produces the magnetic moments, ordering wave
vector and normal vector from the
xparameters in the following form:
[M, k, n] = @(x)func(M0,x)
Mis a matrix with dimensions of ,
kis the propagation vector,
nis the normal vector of the spin rotation plane. The default function is gm_spherical3d. For planar magnetic structure use gm_planar.
- Input parameters for
funcfunction, row vector with number of elements.
- Set the length of the generated magnetic moments to be equal to
the spin of the magnetic atoms. Default is
trueand only a single spin direction is given, the spin phases are determined by atomic position times k-vector, while if it is
false, the first spin will have 0 phase. Default is
The [obj.mag_str] field will contain the new magnetic structure.