Ferromagnetic first neighbor Kagome lattice

Download the script here: sw_tutorial_02.m
Creating the lattice

Creating the lattice

We define the kagome lattice using the "P -3" space group (Nr. 147), using the 3 fold symmetry, we need to define only one magnetic atom. In this space group all first neighbor couplings will be equivalent (related by symmetry). Symmetry equivalent positions of the magnetic atoms are automatically generated by the spinw.matom method. The magnetic atoms are Cu$^+$ with $S=1$ spin.

FMkagome = spinw;
FMkagome.genlattice('lat_const',[6 6 5],'angled',[90 90 120],'spgr','P -3')
FMkagome.addatom('r', [1/2 0 0], 'S', 1, 'label','MCu1','color','r')

Questions:

Display the magnetic atoms which have been generated using the table method.
Plot the lattice so that you can see the kagome structure.

Adding the interactions

Adding the interactions

The first neighbor bonds will be ferromagnetic, J1 = -1 meV. The spinw.gencoupling will use the space group operators to identify equivalent couplings, if two bonds have the same length but are not symmetry related, then they will be identified as different bonds. The 'maxDistance' option of the spinw.gencoupling method will be ensure that all bonds are generated up to the given distance in Angstrom.

FMkagome.gencoupling('maxDistance',4)
disp('Bonds (length in Angstrom):')
FMkagome.table('bond',[])

Questions:

Change the 'maxDistance' value. Whats the second and third coupling?
Add a matrix labeled J1 with value -1 and assign it to the nearest neighbour bond.

Adding the magnetic structure

Adding the magnetic structure

All spins are parallel, pointing along the y-axis (perpendicular to ac plane). We use the "helical" mode of the sw.gencoupling() function, even though the structure is not helical. However in this mode all missing spins will be automatically created using the k-vector and normal vector and assuming helical magnetic structure. Thus if we give $\mathbf{k}$ = (0 0 0) and only the direction of the first spin in the unit cell, the code will create all other spin parallel to the first.

FMkagome.genmagstr('mode', 'helical', 'k', [0 0 0], 'n', [0 1 0], 'S', [0 1 0]')
disp('Magnetic structure:')
FMkagome.table('mag')
FMkagome.energy
plot(FMkagome,'range',[2 2 1])

We will talk about the modes of genmagstr in another presentation.

Spin wave dispersion

Spin wave dispersion

We calculate the spin wave dispersion. There are three modes, equal to the number of magnetic atom in the magnetic unit cell, denoted by different colors. At the zone center, the dispersion of the goldstone mode is parabolic, due to the FM interactions.

fmkSpec = FMkagome.spinwave({[-1/2 0 0] [0 0 0] [1/2 1/2 0] 100},'hermit',false);
fmkSpec = sw_neutron(fmkSpec);
fmkSpec = sw_egrid(fmkSpec, 'Evect',linspace(0,6.5,100),'component','Sperp');
figure
sw_plotspec(fmkSpec,'mode',1,'colorbar',false,'axLim',[0 8])

Questions:

Read the help of sw_plotspec. Try different 'mode' options for example.

Powder spectrum

Powder spectrum

We can also calculate the powder spectrum by averaging over random orientations. We plot the powder spectrum two different ways. First as calculated (to show the extremely sharp Van Hoove singularity at the top of the dispersion), secondly convolute with a Gaussian along energy (Which is much more like what you see experimentally).

fmkPow = FMkagome.powspec(linspace(0,2.5,100),'Evect',linspace(0,7,250),'nRand',1000,'hermit',false);
figure
subplot(2,1,1)
sw_plotspec(fmkPow,'colorbar',true,'axLim',[0 0.05])

Questions:

Read the help of sw_plotspec and convolute in energy with a normalised gaussian of width 0.25meV.

Density of states

Density of states

We can plot the density of magnon states by calculating the weight of random points in the first Brillouin Zone. Then we can convolute with a Gaussian for better plotting and sum up all the Q points.

nQ = 1E5;
Q = rand(3, nQ);

spec = FMkagome.spinwave(Q, 'hermit', false);
spec = sw_egrid(spec, 'component', 'Sxx+Syy+Szz');
spec = sw_instrument(spec, 'dE', 0.1);
I = sum(spec.swConv, 2);
E = spec.Evect(2:end);

Questions:

Why did we choose the 'Sxx+Syy+Szz' component?