Antiferromagnetic square lattice
We define a square lattice in the ab plane, with Cu+ ions with S=1 spin.
Contents
Define the lattice
AFsq = spinw; AFsq.genlattice('lat_const',[3 3 6],'angled',[90 90 90],'spgr',0) AFsq.addatom('r',[0 0 0],'S', 1,'label','Cu1','color','b') AFsq.table('atom') plot(AFsq) swplot.zoom(1.5)
ans =
  1×4 table
    matom    idx    S        pos    
    _____    ___    _    ___________
    'Cu1'     1     1    0    0    0
  
 Couplings
We create first neighbor couplings in the ab plane and plot the bonds. You can click on the different bonds to get the value of the corresponding matrix.
AFsq.gencoupling('maxDistance',5) AFsq.table('bond',[]) AFsq.addmatrix('label','J1','value', 1,'color','red') AFsq.addmatrix('label','J2','value',-0.1,'color','green') AFsq.addcoupling('mat','J1','bond',1) AFsq.addcoupling('mat','J2','bond',2) plot(AFsq,'range',[2 2 0.5])
ans =
  4×10 table
    idx    subidx         dl               dr          length    matom1    idx1    matom2    idx2        matrix    
    ___    ______    _____________    _____________    ______    ______    ____    ______    ____    ______________
     1       1       1     0     0    1     0     0        3     'Cu1'      1      'Cu1'      1      ''    ''    ''
     1       2       0     1     0    0     1     0        3     'Cu1'      1      'Cu1'      1      ''    ''    ''
     2       1       1    -1     0    1    -1     0    4.243     'Cu1'      1      'Cu1'      1      ''    ''    ''
     2       2       1     1     0    1     1     0    4.243     'Cu1'      1      'Cu1'      1      ''    ''    ''
 
 Magnetic structure
For weak second neighbor ferromagnetic interaction the magnetic structure is Neel type, with the following parameters:
- ordering wave vector k = (1/2 1/2 0)
- spin are in arbitrary plane, lets point along the S = (1 0 0) direction
- normal to the spin vectors n = (0 0 1)
- magnetic supercell is 2x2x1
We use magnetic supercell, since the 2*k equal to a reciprocal lattice vector. In this case the spin wave code cannot use the incommensurate mode, thus we have to create a zero-k structure, that is a 2x2x1 magnetic supercell.Note that the spinw.genmagstr() automatically normalizes the spin vectors to the spin value of the magnetic atoms.
AFsq.genmagstr('mode','helical','k',[1/2 1/2 0],'n',[0 0 1], 'S',[1; 0; 0],'nExt',[1 1 1]); disp('Magnetic structure:') AFsq.table('mag') AFsq.energy plot(AFsq,'range',[2 2 1])
Magnetic structure:
ans =
  1×8 table
    num    matom    idx    S     realFhat       imagFhat          pos              kvect      
    ___    _____    ___    _    ___________    ___________    ___________    _________________
     1     'Cu1'     1     1    1    0    0    0    1    0    0    0    0    0.5    0.5      0
Ground state energy: -2.200 meV/spin.
 
 Spin wave spectrum
We calculate the spin wave spectrum and correlation function along several linear q-scans in reciprocal space defined by the Qcorner corner points. The last number in the cell defines the number of steps in each linear scan.
Qcorner = {[0 0 0] [1/2 0 0] [1/2 1/2 0] [0 0 0] 200};
sqSpec = AFsq.spinwave(Qcorner, 'hermit', false);
sqSpec = sw_neutron(sqSpec);
sqSpec = sw_egrid(sqSpec,'Evect',linspace(0,6.5,500));
figure
sw_plotspec(sqSpec,'mode',3,'dashed',true,'dE',0.4,'qLabel',{'\Gamma' 'X' 'M' '\Gamma'})
caxis([0 4])
Warning: The two times the magnetic ordering wavevector 2*km = G, reciproc lattice vector, use magnetic supercell to calculate spectrum!
 
 Written by Bjorn Fak & Sandor Toth 06-Jun-2014, 06-Feb-2017