Dear SpinW Developers
When using FullProf to refine my experimental data, I found that Co2+ and Ni2+ occupy the same crystallographic position at [0 0 0.35192]. I then attempted to reproduce this structure in SpinW by defining two atoms at the same position using the following commands:
cnto.addatom('r',[0 0 0.35192],'S',1,'label','Ni2+', 'color','yellow')
cnto.addatom('r',[0 0 0.35192],'S',1/2,'label','Co2+', 'color','blue')
However, SpinW returned the warning:
“Some atoms are too close (Dmin = 0 < 0.5), check your crystal structure.”
I also considered using a single atomic label (such as “M”) and defining an effective spin as a weighted average of the Co²⁺ and Ni²⁺ spins according to their concentrations.
cnto.addatom('r',[0 0 0.35192],'S',0.5*0.5(Cobalt's spin)+0.5*1(Nickel's spin),'label','M', 'color','blue')
However, I understand that this approach is not physically rigorous. After consulting several researchers experienced with SpinW, they suggested that a disorder model may be the proper way to describe this situation.
Therefore, I would like to kindly ask:
How should I correctly represent two different magnetic ions (Co2+ and Ni2+) occupying the same crystallographic site in SpinW? If SpinW’s disorder functionality should be used, how should the disorder model be properly implemented in practice?
In addition, I currently encounter a problem when executing the following SpinW command for the magnetic structure : "cnto.genmagstr ( 'mode','helical','S',[1 0 0],'k',[0 0 1],'n',[0 0 1])" ; My code is as follows:
clear; clc; close all;
% --- Lattice ---
cnto = spinw;
cnto.genlattice('lat_const',[5.0510 5.0510 13.8570],'angled',[90 90 120],'spgr',148);
%,'nExt',[2 2 1]
x = 0.5;
S_eff = (1-x)*1 + x*(1/2);
cnto.addatom('r',[0 0 0.35192],'S',S_eff,'label','M','color','Green');
% --- Bonds ---
cnto.gencoupling('maxDistance',8 );
tbl = cnto.table('bond',[]);
D = diag([0 0 0.1]);
cnto.addmatrix('label','J1','value',-0.3);
cnto.addmatrix('label','J2','value',0.25);
cnto.addmatrix('label','J3','value',-0.18);
cnto.addmatrix('label','J4','value',0.12);
cnto.addmatrix('label','J5','value',-0.08);
cnto.addmatrix('label','J6','value',0.05);
cnto.addmatrix('label','D','value',D);
cnto.addcoupling('bond',1,'mat','J1');
cnto.addcoupling('bond',2,'mat','J2');
cnto.addcoupling('bond',3,'mat','J3');
cnto.addcoupling('bond',4,'mat','J4');
cnto.addcoupling('bond',5,'mat','J5');
cnto.addcoupling('bond',6,'mat','J6');
cnto.addaniso('D');
figure;
plot(cnto,'range',[1 1 1],'atommode','mag');
% --- Magnetic Structure (A-type AFM) ---
cnto.genmagstr('mode','helical','S',[1 0 0],'k',[0 0 1],'n', [0 0 1]);
% --- Spinwave ---
spec = cnto.spinwave({[0 0 0],[1 1 0]},'hermit',false);
spec = sw_neutron(spec);
spec = sw_egrid(spec,'component','Sperp','imagChk',false);
figure;
subplot(2,1,1);
sw_plotspec(spec,'mode',1,'colorbar',false);
axis([0 1 0 12]);
subplot(2,1,2);
sw_plotspec(spec,'mode',2);
axis([0 1 0 12]);
q = linspace(0,2.5,101);
E = linspace(0,12,101);
powspec = cnto.powspec(q,'Evect',E,'nRand',501,'hermit',false);
figure;
sw_plotspec(powspec,'dE',0.2);
axis([0 2.5 0 12]);
colormap(jet)
set(gca,'FontSize',16)
set(findall(gcf,'type','text'),'FontSize',18)
colorbar .Label.String = 'Intensity (a.u.)';
colorbar .Label.FontSize = 18;
colorbar .FontSize = 16;