Ferromagnetic kagome lattice
We create the kagome lattice with up to 4th neighbor interactions. The symmetry related atoms are denoted by MCu1(i)_j, where i is the index of independent atomic positions, j is the index of the generated atomic positions of the i-th independent position.
Contents
Define the lattice
kagome4 = spinw; kagome4.genlattice('lat_const',[6 6 8],'angled',[90 90 120],'spgr','P -3'); kagome4.addatom('r', [1/2 0 0],'S', 1,'label','MCu1','color','r'); disp('Atomic positions:') kagome4.table('atom') plot(kagome4) swplot.zoom(1.5)
Atomic positions: ans = 3×4 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
Define Hamiltonian
We add couplings up to 4th neighbor interactions. If the generation of the bond tables would depend on distance, J3a, J3b and J3c would be equivalent. However using the 'P -3' space group the three type of bonds are inequivalent, as physically expected in real systems (J3a goes through an intermediate magnetic atom, while the other two bonds are not).
kagome4.gencoupling('maxDistance',7); disp('Bonds:') kagome4.table('bond',[]) kagome4.addmatrix('label','J1-','value',-1.00,'color','g') kagome4.addmatrix('label','J2','value', 0.10,'color','r') kagome4.addmatrix('label','J3a','value', 0.00,'color','orange') kagome4.addmatrix('label','J3b','value', 0.17,'color','b') kagome4.addmatrix('label','J3c','value', 0.00,'color','purple') kagome4.addcoupling('mat','J1-','bond',1); kagome4.addcoupling('mat','J2','bond',2); kagome4.addcoupling('mat','J3a','bond',3); kagome4.addcoupling('mat','J3b','bond',4); kagome4.addcoupling('mat','J3c','bond',5); % The first neighbor bonds will be shown as dashed lines. This is automatic % when the matrix labels ends with a minus sign. plot(kagome4,'range',[2 2 1],'bondMode','line','bondLineWidth0',2)
Bonds: ans = 21×10 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 '' '' '' 2 1 1 -1 0 0.5 -0.5 0 5.196 'MCu1' 1 'MCu1' 2 '' '' '' 2 2 0 1 0 0.5 1 0 5.196 'MCu1' 2 'MCu1' 3 '' '' '' 2 3 -1 0 0 -1 -0.5 0 5.196 'MCu1' 3 'MCu1' 1 '' '' '' 2 4 0 0 0 -0.5 0.5 0 5.196 'MCu1' 1 'MCu1' 2 '' '' '' 2 5 -1 -1 0 -0.5 -1 0 5.196 'MCu1' 2 'MCu1' 3 '' '' '' 2 6 1 1 0 1 0.5 0 5.196 'MCu1' 3 'MCu1' 1 '' '' '' 3 1 0 1 0 0 1 0 6 'MCu1' 1 'MCu1' 1 '' '' '' 3 2 -1 -1 0 -1 -1 0 6 'MCu1' 2 'MCu1' 2 '' '' '' 3 3 1 0 0 1 0 0 6 'MCu1' 3 'MCu1' 3 '' '' '' 4 1 0 1 0 0 1 0 6 'MCu1' 2 'MCu1' 2 '' '' '' 4 2 -1 -1 0 -1 -1 0 6 'MCu1' 3 'MCu1' 3 '' '' '' 4 3 1 0 0 1 0 0 6 'MCu1' 1 'MCu1' 1 '' '' '' 5 1 0 1 0 0 1 0 6 'MCu1' 3 'MCu1' 3 '' '' '' 5 2 -1 -1 0 -1 -1 0 6 'MCu1' 1 'MCu1' 1 '' '' '' 5 3 1 0 0 1 0 0 6 'MCu1' 2 'MCu1' 2 '' '' ''
Magnetic structure
For strong FM 1str neighbour and weak further neighbor interaction the ground state is ferromagnetic.
kagome4.genmagstr('mode','helical','k',[0 0 0],'n',[0 1 0],'S',[0 1 0]'); disp('Magnetic structure:') kagome4.table('mag') kagome4.energy plot(kagome4,'range',[2 2 1],'bondMode','line','bondLineWidth0',3,... 'bondZero',false)
Magnetic structure: ans = 3×7 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: -1.630 meV/spin.
Spin wave dispersion
kag4Spec = kagome4.spinwave({[-1/2 0 0] [0 0 0] [1/2 1/2 0] 200}); kag4Spec = sw_neutron(kag4Spec); kag4Spec = sw_egrid(kag4Spec,'Evect',linspace(0,6.5,100)) ; figure sw_plotspec(kag4Spec,'mode',1,'axLim',[0 8],'colorbar',false,'colormap',[0 0 0])
Warning: To make the Hamiltonian positive definite, a small omega_tol value was added to its diagonal!
Powder averaged spectrum
kag4Pow = kagome4.powspec(linspace(0,2.5,100),'Evect',linspace(0,7,250),... 'nRand',1e3,'hermit',false); figure sw_plotspec(kag4Pow,'axLim',[0 0.2],'colorbar',true)
Written by Bjorn Fak & Sandor Toth 06-Jun-2014, 06-Feb-2017