Sample Scripts from GB Books
ラプラス方程式、ポアッソン方程式

今度は極端な例として4辺すべてにおける境界条件を法線微分の形で与えてみましょう。

1. Problem descriptor [ laplace01c.pde ]

前の例で作成したスクリプト laplace01b.pde に対し修正を施した部分のみを記すことにします。正方形下辺における法線微分は下向きになるので、-2*y ではなく 2*y となる点に注意してください。
  TITLE
    'Laplace Equation'      { laplace01c.pde }

  ...
  BOUNDARIES
    Region 1
      Start(-Lx, -Ly)
      Natural(U) = 2*y   Line to (Lx, -Ly)
      Natural(U) = 2*x   Line to (Lx, Ly)
      Natural(U) = -2*y  Line to (-Lx, Ly)
      Natural(U) = -2*x  Line to Close
  ...

2. 実行結果

ここでは誤差の等高線図のみを記しておきますが次の通りです。

(1) Contour(U - U_ex)


誤差のレベルが E-3 という比較的大きな値、しかもほぼ一定値となっています。良く考えてみればわかることですが、微係数だけでは関数を一意的に決定することができません。しかし1点でも良いから関数値を指定できれば、微係数だけの境界条件でも解に到達することができます。

3. Problem descriptor [ laplace01d.pde ]

そこで境界定義の始点において関数値の指定を行ってみましょう。そのためにはPoint Value文を使用します。スクリプトの変更部分は次の1文のみです。このPoint Value文は座標点の指定の直後に置く必要があります。関数値は該当の点にのみ適用され、他の境界条件には影響を与えません。
  BOUNDARIES
  ...
      Start(-Lx, -Ly) Point Value(U) = U_ex
  ...

4. 実行結果

やはり誤差の等高線図のみを記しておきますが、laplace01a.pdelaplace01b.pde と同等の精度となっています。

(1) Contour(U - U_ex)

前へ       次へ

page_top_icon