forked from tsdev/spinw
-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Description
Hello.
I am trying to use SpinW to reproduce the results in the paper Chiral magnon splitting in altermagnetic CrSb from first principles. I have successfully gotten the magnon energy dispersion, and I can put my code here.
close all;
clear;
clc;
AFMchain = spinw;
AFMchain.genlattice('lat_const',[4.103 4.103 5.463],'angled',[90 90 120],'sym',194);
AFMchain.addatom('r',[0 0 0],'S',1.5,'label','Cr1','color','blue');
AFMchain.addatom('r', [0.33333 0.66667 0.25], 'S', 0, 'label', 'Sb', 'color', 'gray');
disp('Magnetic lattice:')
AFMchain.gencoupling('maxDistance',9)
AFMchain.table('matom')
plot(AFMchain,'range',[1 1 1])
J1 = 25.76;
J2 = -4.56;
J3 = 3.02;
J4 = 0.75;
J5 = -0.62;
J6 = 0.75;
J7 = -0.38;
J8 = -0.12;
J9 = -0.12;
J10 = 0.09;
J11 = 0.42;
J12 = 1.10;
AFMchain.addmatrix('value', J1, 'label', 'J1', 'color', 'red');
AFMchain.addmatrix('value', J2, 'label', 'J2', 'color', 'green');
AFMchain.addmatrix('value', J3, 'label', 'J3', 'color', 'blue');
AFMchain.addmatrix('value', J4, 'label', 'J4', 'color', 'orange');
AFMchain.addmatrix('value', J5, 'label', 'J5', 'color', 'purple');
AFMchain.addmatrix('value', J6, 'label', 'J6', 'color', 'cyan');
AFMchain.addmatrix('value', J7, 'label', 'J7', 'color', 'brown');
AFMchain.addmatrix('value', J8, 'label', 'J8', 'color', 'pink');
AFMchain.addmatrix('value', J9, 'label', 'J9', 'color', 'yellow');
AFMchain.addmatrix('value', J10, 'label', 'J10', 'color', 'black');
AFMchain.addmatrix('value', J11, 'label', 'J11', 'color', 'magenta');
AFMchain.addmatrix('value', J12, 'label', 'J12', 'color', 'teal');
AFMchain.addcoupling('mat', 'J1', 'bond', 1);
AFMchain.addcoupling('mat', 'J2', 'bond', 2);
AFMchain.addcoupling('mat', 'J3', 'bond', 3);
AFMchain.addcoupling('mat', 'J4', 'bond', 4);
AFMchain.addcoupling('mat', 'J5', 'bond', 5);
AFMchain.addcoupling('mat', 'J6', 'bond', 6);
AFMchain.addcoupling('mat', 'J7', 'bond', 7);
AFMchain.addcoupling('mat', 'J8', 'bond', 8);
AFMchain.addcoupling('mat', 'J9', 'bond', 9);
AFMchain.addcoupling('mat', 'J10', 'bond', 10);
bonds = AFMchain.table('bond');
for i = 1:size(bonds)
if isstruct(bonds)
vec = bonds(i).dl;
elseif istable(bonds)
if iscell(bonds.dl)
vec = bonds.dl{i};
else
vec = bonds.dl(i,:);
end
else
error('Unrecognized bonds data type');
end
if all(abs(vec - [-1 1 1]) < 1e-3)
disp(['Bond corresponding to (-1,1,1): ', num2str(i)])
elseif all(abs(vec - [1 -1 1]) < 1e-3)
disp(['Bond corresponding to (1,-1,1): ', num2str(i)])
end
end
AFMchain.addcoupling('mat', 'J11', 'bond', 11);
AFMchain.addcoupling('mat', 'J12', 'bond', 12);
plot(AFMchain)
AFMchain.genmagstr('mode','helical','S',[0 0 1]','k',[0 0 -1],'n',[1 0 0])
plot(AFMchain)
Qlist = {[0 0 0] [0 0 1/2] [1/2 0 1/2] [0 0 0] 100};
Qlab = {'\Gamma' 'A' 'L' '\Gamma'};
spec = AFMchain.spinwave(Qlist);
figure
sw_plotspec(spec, 'mode', 1, 'dashed', true, 'colormap', [0 0 0], 'qlabel', Qlab);Although I can get the band splitting as shown in that paper, I'd like to further understand the mechanism behind this. I did a new test and I commented on the interaction from J1-J10. If we only consider J11 and J12, the model will be an FM, but I got the error that shows the Hamiltonian is not positive defined.
Metadata
Metadata
Assignees
Labels
No labels