利用MATLAB绘制各种磁结构
总测试函数—生成对应绘图结构D
D1 = Domainwall(11,11,1,-1);
D2 = Domainwall(11,11,2,-1);
D3 = Domainwall(11,11,3,-1);
D4 = Domainwall(11,11,4,-1);
然后依次运行
Arrow002(D1)
Arrow002(D2)
Arrow002(D3)
Arrow002(D4)
即可得到不同类型畴壁示意图
面外磁畴里的Neel型畴壁
面内磁畴里的Bloch畴壁
面内磁畴里的Neel畴壁
面外磁畴里的Bloch畴壁
生成不同类型畴壁函数—domainwall()
function [D] = Domainwall(m,n,domainwall_type,c)
%% m,n ~ length,width (m>4)
%% c ~ chirality
% -1 ~ Left-handed
% +1 ~ Right-handed
%% domainwall_type
% 1 ~ Neel-DW in OOP domain
% 2 ~ Neel-OOP-DW in IP domain
% 3 ~ Neel-IP-DW in IP domain
% 4 ~ Bloch-DW in OOP domain
%% Three columns in center are DW
xx = (-m/2+1/2):(m/2-1/2);
yy = (-n/2+1/2):(n/2-1/2);
[xa,ya] = meshgrid(xx,yy);
D.X = xa;
D.Y = -ya;
D.Z = zeros(n,m);
D.U = zeros(n,m);
D.V = zeros(n,m);
D.W = zeros(n,m);
if mod(m,2) == 0
m = m+1;
end
i = (m+1)/2;
switch domainwall_type
case 1
if c == -1
D.U(:,i) = -1;
D.U(:,i+1) = -sqrt(2)/2;
D.U(:,i-1) = -sqrt(2)/2;
elseif c ==1
D.U(:,i) = 1;
D.U(:,i+1) = sqrt(2)/2;
D.U(:,i-1) = sqrt(2)/2;
end
for j = 1:i-2
D.W(:,j) = 1;
end
D.W(:,i-1) = sqrt(2)/2;
D.W(:,i) = 0;
D.W(:,i+1) = -sqrt(2)/2;
for j = i+2:m
D.W(:,j) = -1;
end
case 2
i = (m+1)/2;
D.U(:,i-1) = sqrt(2)/2;
D.U(:,i) = 0;
D.U(:,i+1) = -sqrt(2)/2;
for j = 1:i-2
D.U(:,j) = +1;
end
if c == -1
D.W(:,i-1) = sqrt(2)/2;
D.W(:,i) = 1;
D.W(:,i+1) = sqrt(2)/2;
elseif c == 1
D.W(:,i-1) = -sqrt(2)/2;
D.W(:,i) = -1;
D.W(:,i+1) = -sqrt(2)/2;
end
for j = i+2:m
D.U(:,j) = -1;
end
case 3
D.U(:,i-1) = sqrt(2)/2;
D.U(:,i) = 0;
D.U(:,i+1) = -sqrt(2)/2;
for j = 1:i-2
D.U(:,j) = +1;
end
if c == -1
D.V(:,i-1) = sqrt(2)/2;
D.V(:,i) = 1;
D.V(:,i+1) = sqrt(2)/2;
elseif c == 1
D.V(:,i-1) = -sqrt(2)/2;
D.V(:,i) = -1;
D.V(:,i+1) = -sqrt(2)/2;
end
for j = i+2:m
D.U(:,j) = -1;
end
case 4
if c == -1
D.V(:,i) = -1;
D.V(:,i+1) = -sqrt(2)/2;
D.V(:,i-1) = -sqrt(2)/2;
elseif c ==1
D.V(:,i) = 1;
D.V(:,i+1) = sqrt(2)/2;
D.V(:,i-1) = sqrt(2)/2;
end
for j = 1:i-2
D.W(:,j) = 1;
end
D.W(:,i-1) = sqrt(2)/2;
D.W(:,i) = 0;
D.W(:,i+1) = -sqrt(2)/2;
for j = i+2:m
D.W(:,j) = -1;
end
end
end