(tutorial05)= # Tutorial 5 ## Ferromagnetic first neighbor Kagome 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 fisrt 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. ### Define the lattice ```matlab 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') disp('Magnetic atom positions:') FMkagome.table('matom') plot(FMkagome,'range',[2 2 1],'atomColor','gold') ``` ```text Magnetic atom positions: ans = 3x4 table matom idx S pos ______ ___ _ _________________ 'MCu1' 1 1 0.5 0 0 'MCu1' 2 1 0 0.5 0 'MCu1' 3 1 0.5 0.5 0 ``` ```{image} /_static/img/tutorials/tutorial05/tutorial5_02.png :alt: ``` ### Create FM bonds The first neighbor bonds will be ferromagnetic, J = -1 meV. The spinw.gencoupling will use the space group operators to identify equivalent couplings, if two bonds have the same length but 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. ```matlab FMkagome.gencoupling('maxDistance',4) disp('Bonds (length in Angstrom):') FMkagome.table('bond',[]) FMkagome.addmatrix('label','J1','value',-1,'color','orange'); FMkagome.addcoupling('mat','J1','bond',1); % Plot a nice rectangular cutout of the kagome lattice plot(FMkagome,'range',[31 32 2],'unit','xyz','cellMode','single') ``` ```text Bonds (length in Angstrom): ans = 6x10 table idx subidx dl dr length matom1 idx1 matom2 idx2 matrix ___ ______ ______________ ____________________ ______ ______ ____ ______ ____ ______________ 1 1 0 1 0 0 0.5 0 3 'MCu1' 3 'MCu1' 1 '' '' '' 1 2 0 -1 0 -0.5 -0.5 0 3 'MCu1' 1 'MCu1' 2 '' '' '' 1 3 0 0 0 0.5 0 0 3 'MCu1' 2 'MCu1' 3 '' '' '' 1 4 0 0 0 0 -0.5 0 3 'MCu1' 3 'MCu1' 1 '' '' '' 1 5 1 0 0 0.5 0.5 0 3 'MCu1' 1 'MCu1' 2 '' '' '' 1 6 -1 0 0 -0.5 0 0 3 'MCu1' 2 'MCu1' 3 '' '' '' ``` ```{image} /_static/img/tutorials/tutorial05/tutorial5_03.png :alt: ``` ### FM magnetic structure All spins are paralle, 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 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. ```matlab 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]) ``` ```text Magnetic structure: ans = 3x7 table num matom idx S realFhat pos kvect ___ ______ ___ _ ___________ _________________ ___________ 1 'MCu1' 1 1 0 1 0 0.5 0 0 0 0 0 2 'MCu1' 2 1 0 1 0 0 0.5 0 0 0 0 3 'MCu1' 3 1 0 1 0 0.5 0.5 0 0 0 0 Ground state energy: -2.000 meV/spin. ``` ```{image} /_static/img/tutorials/tutorial05/tutorial5_04.png :alt: ``` ### 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. ```matlab 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]) ``` ```{image} /_static/img/tutorials/tutorial05/tutorial5_05.png :alt: ``` ### Powder spectrum 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. ```matlab 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]) subplot(2,1,2) sw_plotspec(fmkPow,'colorbar',true,'axLim',[0 0.05],'dE',0.25,'norm',true) swplot.subfigure(1,3,1) ``` ```{image} /_static/img/tutorials/tutorial05/tutorial5_06.png :alt: ``` ```text Written by Bjorn Fak & Sandor Toth 06-Jun-2014, 06-Feb-2017 ``` Published with MATLABĀ® R2018b