k=0 Kagome antiferromagnet with DM interaction

We create the lattice with 'P -3' space group and magnetic Cu+ with S=1 spin.

Contents

Define the lattice

DMkag = spinw;
DMkag.genlattice('lat_const',[6 6 40],'angled',[90 90 120],'spgr','P -3')
DMkag.addatom('r', [1/2 0 0],'S',1,'label', 'Cu1', 'color','r')
plot(DMkag,'range',[2 2 1])
swplot.zoom(4)

Create bonds and Hamiltonian

Generate the list of bonds and assign a Heisenberg exchange and weak Dzyaloshinskii-Moriya interaction to the fisrt neighbor bonds. The DM interaction vector can be easily created using the spinw.setmatrix function. The corresponding spinw.getmatrix method determines the symmetry allowed components of the DM vector. On the structure plot, the DM interaction vector is symbolized by a vector in the middle of the bond, pointing in the direction of the DM vector. Also important that the bonds are directional, that is shown by the arrows pointing from one atom to another. If one changes the direction of a bond, the corresponding DM vector has to be flipped as well.

DMkag.gencoupling('maxDistance',7)
DMkag.addmatrix('label','DM1','value',1,'color','b')
DMkag.addmatrix('label','J1','value',1,'color','g')
DMkag.addcoupling('mat','DM1','bond',1)
DMkag.addcoupling('mat','J1','bond',1)
DMkag.setmatrix('mat','DM1','pref',{[0 0 -0.08]});
plot(DMkag,'range',[3 3 1/2])
swplot.zoom(1.2)
DMkag.table('mat')
ans =

  2×6 table

    matrix            Mx                      My                 Mz              type          assigned
    ______    ___________________    ____________________    ___________    _______________    ________

    'DM1'     0    -0.08        0    0.08       0       0    0    0    0    'antisymmetric'     'bond' 
    'J1'      1        0        0       0       1       0    0    0    1    'Heisenberg'        'bond' 

Generate magnetic structure

We create a k = (0 0 0) magnetic structure, with the three spin directions in the unit cell (120 degree between neighbors). The spin vector components are given in the coordinate system of the lattice vectors (abc) and spinw.genmagstr normalizes the moment length to the previously given spin quantum number in the spinw.addatom method.

S0 = [1 -2 1; 2 -1 -1; 0 0 0];
DMkag.genmagstr('mode','direct','k',[0 0 0],'n',[0 0 1],'unit','lu', 'S',S0);
DMkag.energy

plot(DMkag,'range',[3 3 1/2])
Ground state energy: -1.139 meV/spin.

Calculate spin wave dispersion

Qlist = {[-1/2 0 0] [0 0 0] [1/2 1/2 0] 100};
dmkSpec = DMkag.spinwave(Qlist,'hermit',false);
figure
sw_plotspec(dmkSpec,'mode',1,'axLim',[0 3],'colorbar',false,...
    'colormap',[0 0 0],'dashed',true)

Powder spectrum

The flat mode that is the zero energy mode lifted by the DM interaction is well visible on the powder spectrum.

dmkPow = DMkag.powspec(linspace(0,2.5,150),'Evect',linspace(0,3,250),...
    'nRand',1e3,'hermit',false,'imagChk',false);
figure
sw_plotspec(dmkPow,'axLim',[0 0.5],'dE',0.02)
Written by
Bjorn Fak & Sandor Toth
06-Jun-2014, 06-Feb-2017