Tutorial 6#

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.

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 =

  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

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 =

  21x10 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 =

  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: -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

Published with MATLAB® R2018b