SpinW / spinw

SpinW Matlab library for spin wave calculation
http://www.spinw.org
GNU General Public License v3.0
35 stars 15 forks source link

Plot CrI3 magnon bands with DMI #175

Closed lisurui6 closed 4 months ago

lisurui6 commented 5 months ago

Hi there,

I am trying to use spinW to produce the monolayer CrI3 magnon bands using exchange parameters computed from TB2J. However, I am not getting the same results as that from TB2J. As I am inexperience in using spinW, any help is greatly appreciated.

I first setup the crystal structure using only Cr atoms:

spinw.genlattice('lat_const',[6.823081 6.823081 13.83830157],'angled',[90 90 120], 'spgr', 0)

spinw.addatom('label','Cr3+','r',[1/3 1/3 1/2],'S', 3/2)

spinw.addatom('label','Cr3+','r',[2/3 2/3 1/2], 'S', 3/2, 'color', 'Red')

Then I add couplings of exchange, DMI and bilinear, using values from TB2J calculations.

% We generate the list of bonds.

spinw.gencoupling('maxDistance', 30.2)

spinw.addmatrix('label','J12000','value', 0.41369799999999995)

spinw.addmatrix('label','D12000','value', [0 -1.15609e-08 -3.6807299999999996e-08;--1.15609e-08 0 6.568429999999999e-09;3.6807299999999996e-08 -6.568429999999999e-09 0])

spinw.addmatrix('label','B12000','value', [-0.176692 -0.018723 -7.0274e-06;-0.018723 -0.08646050000000001 -0.0260207;-7.0274e-06 -0.0260207 -0.280931])

spinw.addcoupling('mat','J12000','bond', 1, 'subIdx', 1)

spinw.addcoupling('mat','D12000','bond', 1, 'subIdx', 1)

spinw.addcoupling('mat','B12000','bond', 1, 'subIdx', 1)

spinw.addmatrix('label','J11010','value', 0.8650319999999999)

spinw.addmatrix('label','D11010','value', [0 -0.011737 -0.010856600000000001;--0.011737 0 -0.00548058;0.010856600000000001 --0.00548058 0])

spinw.addmatrix('label','B11010','value', [-0.137607 -0.00916113 -0.0117692;-0.00916113 -0.23676399999999997 -0.00368631;-0.0117692 -0.00368631 -0.156384])

spinw.addcoupling('mat','J11010','bond', 4, 'subIdx', 2)

spinw.addcoupling('mat','D11010','bond', 4, 'subIdx', 2)

spinw.addcoupling('mat','B11010','bond', 4, 'subIdx', 2)

....
Repeat for more NNs

Finally I plot the magnon bands along G M K G (not sure why but hermit has to be set to false here)

Qlist = {[0 0 0] [1/2 0 0] [1/3 -1/3 0] [0 0 0] 100};

Qlab  = {'\Gamma' 'M' 'K' '\Gamma'};

spinw.genmagstr('mode','direct', 'k',[0 0 0],'n',[0 0 1],'S',[0 0; 0 0; 3 3]);

spec = spinw.spinwave(Qlist, 'hermit', false);

sw_plotspec(spec, 'qlabel', Qlab, 'mode', 1, 'colorbar', false, 'colormap', [0 0 0], 'dashed', true, 'legend', false)

But this is the magnon bands I got:

image

Comparing to TB2J bands:

image

Any idea what I did wrong?

I am not so sure about the symmetry, which I set to 0, since I have defined all the atoms in a unit cell already. And I am not so sure about supercell, and if I need to define one and how (a 7X7 supercell was used in TB2J exchange params (i.e. (3, 3, 0) to (-3, -3, 0))). Not so sure about how DMI is set is either. But even with just exchange J and B, the number of bands are still different. (With J only, the bands are the same).

Thanks so much in advance for your time.

mducle commented 5 months ago

@lisurui6 - the bands looks quite similar to me. The main differences are: