直線電流によるベクトルポテンシャル

ここではｚ軸に沿って直線に電流が流れているときのベクトルポテンシャルを表示してみよう。
ベクトルポテンシャルは電流と同じz軸方向であり、その大きさは
Az=((Subscript[μ, 0  I])/(2  π))log ((Subscript[R, 0])/R)
とあらわされる。この式は直線電荷による電位の式に非常に似ている。

このときに定数項をはぶき、R=1のところで電位が0になるとすれば簡単にAz=log(1/R)のようになる。ただしプログラムでは、R=0で発散するのを防ぐようにする。

下の例では等ベクトルポテンシャル面を表している。

Clear[az, r, phi];
az[r_] := If[r == 0, 0, Log[1/r]];
r[x_, y_, z_] := Sqrt[x^2 + y^2];
phi[x_, y_, z_] := Arg[x + I*y];

Needs["Graphics`ContourPlot3D`"]

gra1 = 
      ContourPlot3D[
        az[r[x, y, z]], {x, -2, 2}, {y, -2, 2}, {z, -1, 1}, 
        Contours -> {0, -0.5}]

等ポテンシャル面をAz=0とAz=-0.5で表示させてみると、z軸を中心とする円筒になっていることがわかる。これを上から眺めれば以下のようになるだろう。

ContourPlot[az[r[x, y, 0]], {x, -2, 2}, {y, -2, 2}, 
      PlotPoints -> 30, ContourShading -> False]

横軸をRで、縦軸をAzにとれば下記のようになっている。

Plot[az[r], {r, 0, 3}, PlotRange -> {-1, 10}]

次にベクトルらしくベクトル場での表示をしてみよう。

Needs["Graphics`PlotField3D`"];

Clear[Az];
Az[x_, y_, z_] := 1/Log[r[x, y, z]];
Az[0, 0, z_] = 0;

gra2 = 
      PlotVectorField3D[{0, 0, Az[x, y, z]}, {x, -1.2, 
          1.2}, {y, -1.2, 1.2}, {z, -1.2, 1.2}, 
        VectorHeads -> True, ScaleFunction -> (0.5 &), 
        PlotPoints -> 5]

gra2 = 
      PlotVectorField3D[{0, 0, Az[x, y, z]}, {x, -1.5, 
          1.5}, {y, -1.5, 1.5}, {z, -1.5, 1.5}, 
        VectorHeads -> True, ScaleFunction -> (0.5 &), 
        PlotPoints -> 5]

最後に三次元の図を重ね合わせてみる。等ベクトルポテンシャル面ではベクトルポテンシャルの大きさは同じになっている。方向はｚ軸を向くことになる。

Show[gra1, gra2]