Заключение
В результате проделанной работы было показано, что в периодической модели Андерсона возможно существование нескольких решений с одним и тем же значением числа частиц и разным значением магнитного момента. Был разработан алгоритм и написана программа, позволяющая находить весь набор решений. Показано, что с помощью добавления к металлу примесей с большим или меньшим числом электронов в зоне проводимости можно менять их магнитные свойства, вызывая переходы между разными магнитными состояниями, причем малое изменение концентрации может приводить к скачкам намагниченности (т.е. возникает магнитный фазовый переход первого рода). Разработанный алгоритм позволяет поводить расчеты решений не только для ферромагнитного состояния, но и для других магнитоупорядоенных состояний (антиферромагнитном, неколлинеарном и др.)
Список литературы
С.В. Вонсовский. «Магнетизм», М., «Наука», 1982
Мория Т. Спиновые флуктуации в магнетиках с коллективизированными электронами. М.: Мир, 1988.
Левитин Р.З. Магнетизм коллективизированных электронов – Соросовский образовательный журнал, №6, c. 101 (1997).
П.А. Грюнберг, Нобелевские лекции по физике -2007. От спиновых волн к гигантскому магнетосопротивлению и далее, УФН, 178 , 1349 (2008).
А. Ферт, Нобелевские лекции по физике -2007. Происхождение, развитие и перспективы спинтроники, УФН, 178 , 1336 (2008).
Anderson P. W. “Localized magnetic states in metals”, Phys. Rev., 124, 41 (1961)
Андерсон Ф. “Локализованные моменты и локализованные состояния”, УФН, 127, 19-39 (1979)
Уайт Р. “Квантовая теория магнетизма”, М.: Мир, 1985, 304 с.
Приложение
clc
clear
count_par=1;
t=0.001;
xmin = -1;
xmax=1;
eps = 0.0001;
x=xmin:t:xmax;
UG=10;
VG=1;
EGmin=-15;
EGmax=10;
EGt=0.05;
EG=EGmin:EGt:EGmax;
count=1;
for i=1:1:(length(EG))
y1=y_param(x,UG,VG,EG(i));
pointsx=0;
pointsy=0;
k=1;
yres=zeros(1,length(y1));
flaq=0;
for j=1:1:(length(y1))
if (j > 1)
flaq=1;
end;
g_res=g(x(j),xmin,xmax,eps,UG,VG,EG(i));
yres(j)=(g_res-y1(j));
if (flaq==1)
if((yres(j-1)<=0 && yres(j)>0 && abs(x(j)-y_param(g_res,UG,VG,EG(i))<=2*eps)) || (yres(j-1)>=0 && yres(j)<0 && abs(x(j)-y_param(g_res,UG,VG,EG(i))<=2*eps)))
pointsx(k)=(x(j)+x(j-1))/2;
pointsy(k)=(y1(j)+y1(j-1))/2;
k=k+1;
end;
end;
end
if(length(pointsx)>1)
for p=1:1:length(pointsx)
if ((2*p-1) ~= length(pointsx))
M(count)=pointsy(p)-pointsx(p);
N(count)=pointsy(p)+pointsx(p);
EGG(count)=EG(i);
count=count+1;
end
end
end
end
e1=0.00001;
for i=1:1:length(N)
is_more=0;
EG_par=EGmin;
eps_par=0.5;
flq=0;
eps1=0.005;
while (flq==0)
y1=y_param(x,UG,VG,EG_par);
for j=1:1:length(y1)
if(abs(y1(j)-x(j))<=eps1)
N_par=2*y1(j);
break
end
end
if((N_par-N(i))>e1)
if(is_more==0)
eps_par=eps_par/2;
EG_par=EG_par+eps_par;
else
EG_par=EG_par+eps_par;
end
is_more=1;
else
if((N_par-N(i))<(-e1))
if(is_more==1)
eps_par=eps_par/2;
EG_par=EG_par-eps_par;
else
EG_par=EG_par-eps_par;
end
is_more=0;
end
if(EG_par<EGmin || EG_par>EGmax)
disp('Epic fail');
break;
end
end
if(abs(N_par-N(i))<e1)
flq=1;
end
end
WG(i)=W(M(i),N(i),UG,VG,EGG(i))-W(0,N_par,UG,VG,EG_par);
end
figure(6)
plot(N,WG,'.k');
grid on;
figure(5)
a=plot(N*5,abs(M*5),'.k');
clc
clear
t=0.001;
xmin = -1;
xmax=1;
eps = 0.0001;
x=xmin:t:xmax;
UG=9;
VG=0.8;
EGmin=-15;
EGmax=10;
EGt=0.05;
EG=EGmin:EGt:EGmax;
for e=0:0.1:3
UG=UG+e;
count=1;
for i=1:1:(length(EG))
y1=y_param(x,UG,VG,EG(i));
pointsx=0;
pointsy=0;
k=1;
yres=zeros(1,length(y1));
flaq=0;
for j=1:1:(length(y1))
if (j > 1)
flaq=1;
end;
g_res=g(x(j),xmin,xmax,eps,UG,VG,EG(i));
yres(j)=(g_res-y1(j));
if (flaq==1)
if((yres(j-1)<=0 && yres(j)>0 && abs(x(j)-y_param(g_res,UG,VG,EG(i))<=2*eps)) || (yres(j-1)>=0 && yres(j)<0 && abs(x(j)-y_param(g_res,UG,VG,EG(i))<=2*eps)))
pointsx(k)=(x(j)+x(j-1))/2;
pointsy(k)=(y1(j)+y1(j-1))/2;
k=k+1;
end;
end;
end
if(length(pointsx)>1)
for p=1:1:length(pointsx)
if ((2*p-1) ~= length(pointsx))
M(count)=pointsy(p)-pointsx(p);
N(count)=pointsy(p)+pointsx(p);
count=count+1;
end
end
end
end
hold on;
a=plot(N*5,abs(M*5),'.k');
set(a, 'color', [1/(6-e) (1-1/(6-e)) 1/(6-e)])
end
%%%%%%%%%%%%%%%%%%%%%
function xres = g(y1,xmin,xmax,eps,UG,VG,EG)
for j=1:1:(length(y1))
xmx=xmax;
xmn=xmin;
while (abs(xmx - xmn)>eps)
x=(xmx+xmn)/2;
f1=y_param(x,UG,VG,EG);
if(f1>=y1) xmn = x;
else
xmx=x;
end
end
xres(j)=(xmx+xmn)/2;
end
xres=x;
%%%%%%%%%%%%%%%%%%%%%
function xres = y_param(x,UG,VG,EG)
xres= (pi-(atan((EG+UG*x+sqrt(8)*VG))+atan((EG+UG*x-sqrt(8)*VG))))/(2*pi);
end
%%%%%%%%%%%%%%%%%%%%%
function xres = W(M,N,UG,VG,EG)
w_up1=EG+UG*((N-M)/2)+sqrt(8)*VG;
w_up2=EG+UG*((N-M)/2)-sqrt(8)*VG;
w_down1=EG+UG*((N+M)/2)+sqrt(8)*VG;
w_down2=EG+UG*((N+M)/2)-sqrt(8)*VG;
Int1=(log(w_up1^2+1))/(4*pi)+(w_up1*(pi/2-atan(w_up1)))/(2*pi);
Int2=(log(w_up2^2+1))/(4*pi)+(w_up2*(pi/2-atan(w_up2)))/(2*pi);
Int3=(log(w_down1^2+1))/(4*pi)+(w_down1*(pi/2-atan(w_down1)))/(2*pi);
Int4=(log(w_down2^2+1))/(4*pi)+(w_down2*(pi/2-atan(w_down2)))/(2*pi);
xres=Int1+Int2+Int3+Int4-UG*(N^2-M^2)/4;
end
%%%%%%%%%%%%%%%%%%%%%
