Antiferromagnetic square lattice

We define a square lattice in the ab plane, with Cu+ ions with S=1 spin.

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',[])

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