%
% 線電流が作る磁界(2-D)
% 
% MATLAB R2015a
% 2016/7/19 Copyright (c) Takuichi Hirano
%
function currents
    %mu0=4.*pi*1e-7;     % 真空の透磁率
    mu0=1.;     % 真空の透磁率

    % グラフィックを描画
    xmin=-1.;
    xmax= 1.;
    ymin=-1.;
    ymax= 1.;
    x = linspace(xmin,xmax,50);
    y = linspace(ymin,ymax,50);
    [X,Y] = meshgrid(x,y);

    % 線電流パラメータの定義
    n=1;
    cur(1)=1.0;
    posx(1)=0.0;
    posy(1)=0.0;
    
    % R
    R=@(X,Y) sqrt(X.^2+Y.^2);

    % 磁界分布の計算
    Hx = 0.*X;
    Hy = 0.*X;
    for i=1:n
        Hx =Hx -((Y-posy(i))./R(X-posx(i),Y-posy(i))).*mu0.*cur(i) ...
              ./(2.*pi.*R(X-posx(i),Y-posy(i)));
        Hy =Hy +((X-posx(i))./R(X-posx(i),Y-posy(i))).*mu0.*cur(i) ...
              ./(2.*pi.*R(X-posx(i),Y-posy(i)));
    end
    % 外部磁界の印加
    Hx0=0.3;
%    Hx0=0.;
    Hy0=0.;
    Hx = Hx + Hx0;
    Hy = Hy + Hy0;

    % 等高線+力線
    figure;
    streamslice(X,Y,Hx,Hy);
    xlim([xmin,xmax]);
    ylim([ymin,ymax]);
    axis square;
    axis off;
    colormap('jet');
end


