Sample Scripts from GB Books
GB002:  2次元静電場

2. 円筒中の金属棒

今度は外側が円筒形の金属製チューブで、その中に断面が正方形の金属棒が置かれている状況について調べてみましょう。円の半径は1、正方形の辺の長さは0.6であるとします。電位の設定は前の例と同じで、外側のチューブは電位0に、中側の金属棒は電位1に保たれている状態を想定します。
スクリプトは前の例で作成した estatic01a.pde のわずかな変更で済みますが、ここでは念のため全体を再掲しておきます。

2.1 Problem descriptor [ estatic01b.pde ]

基本形は一つ前の estatic01a.pde と変りません。
  TITLE
    'Metal Bar in a Tube'    { estatic01b.pde }


  SELECT
    Errlim = 1e-3


  VARIABLES
    U                        { Electric potential }


  DEFINITIONS
    r0 = 1.0    b = 0.3    U_bar = 1.0
    Ex = -dx(U)    Ey = -dy(U)
    E = -grad(U)    Em = magnitude(E)


  EQUATIONS
    div(grad(U)) = 0


  BOUNDARIES
    Region 1
      Start 'tube' (r0, 0)
        Value(U) = 0  Arc(Center = 0,0) Angle = 360
      Start 'bar' (-b, -b)
        Value(U) = U_bar Line to (b, -b) to (b, b) to (-b, b) to Close


  PLOTS
    Grid(x, y)
   
Contour(U)    Surface(U)
    Elevation(U) on 'tube'    Elevation(U) on 'bar'
    Contour(Em)    Surface(Em)
    Elevation(Em) on 'tube'    Elevation(Em) on 'bar'
    Vector(E) norm

  END

2.2 実行結果

(1) Grid(x, y)
FlexPDEによって自動生成されるメッシュは金属棒の4隅の部分を中心にかなり密度の高いものとなっています。

(2) Contour(U)
解析対象領域(ドメイン)上での関数 U(x, y) の等高線図、すなわち等電位線は次のようになります。 'bar'上で U = 1、'tube'上で U = 0 となっている点に注意してください。

(3) Surface(U)
関数 U(x, y) の曲面の形状をプロットしたものです。

(4) Elevation(U) on 'tube'
U(x, y) の値を境界'tube'上でプロットしたものです。一見指定値0から大きくはずれているように見えるかも知れませんが、スケールが e-16 である点にご注意ください。

(5) Elevation(U) on 'bar'
U(x, y) の値を境界'bar'上でプロットしたものです。指定値通り、境界'bar'上では U の値は1となっています。

(6) Contour(Em)
電場ベクトル E の絶対値(大きさ)に関する等高線図を示したものです。 金属棒の4隅に鋭いピークが存在する点に注意してください。

(7) Surface(Em)
電場ベクトル E の大きさに関する曲面図です。等高線図よりピークの存在が明確です。電場中に置かれた鋭い金属片の周囲では放電が発生しやすくなるため、現実問題としても重要な意味を持ってきます。

(8) Elevation(Em) on 'tube'
電場ベクトル E の大きさを外側の境界である'tube'上でプロットしたものです。 境界上の点との位置関係は赤字で示されています。

(9) Elevation(Em) on 'bar'
同様に電場ベクトル E の大きさを内側の境界である'bar'上でプロットしたものです。4隅に鋭いピークが現れています。

(10) Vector(E) norm
電場ベクトル E のベクトル場をプロットしたものです。normという修飾子を指定しているため、矢印の長さは等長となります。ベクトル場の向きはこれによってより明確なものとなりますが、大きさについては色で判断することになります。

FlexPDEのステータスウィンドウに表示されているMax Errorの値が指定された誤差許容値(Errlim)の範囲を超えている点に注意してください。本来であればその範囲におさまるようメッシュの細分化が行われるのですが、ノード数にも上限があるため、 このような値に留まる結果となっています。

前へ       次へ

page_top_icon