Two Dimensional Boundary Element Method
Straight forward Formation-4

最後に、Source point が、要素4にある場合です。計算されたCは、A44に加算されています。

Source
point
要素番号 G F C RHS
41 A41=G   C=F RHS4=F h1
42   A42=-F C=C+F RHS4=RHS4 - G*qn2
43 A43=G   C=C+F RHS4=RHS4 + F*h3
44   A44=-F C=C+F RHS4=RHS4 - G*qn4
4   A44=A44+C  

以上の操作を行うと、直接[A]{x}={RHS}が出来上がります。理解できましたか。当たり前なことをやっているに過ぎませんが、長い間、境界要素法の技術者は、直接[A]{x}={RHS}を生成することに気付いていませんでした。何べんも言いますが、このことにより計算機のメモリーを節約できるだけでなく、Corner problemも軽減してくれます。

■BEM プログラム: BEM8CONQ.FOR
結果的に、連立方程式 [A]{X}={RHS} が直接的に出来上がります。ここで説明した計算手順は、BEM8CONQ.FOR の中の Subroutine MTXFORM で行われています。プログラムを見て、計算手順を確認して下さい。

また、プログラムのその他のSubroutines は、BEM8CON.FOR とほぼ同じです。違う点は、BEM8CONQ.FORには、G(I,J) と F(I,J) が有りません。つまり、メモリーを節約したことになります。Input data の並びには変更ありませんので、前のデータで計算してみて下さい。

もう1つBEM8CON.FOR と違う点が有ります。それは、領域内の点でのqxとqyの計算です。BEM8CONQ.FORを見ると、SUBROUTINE INTE2 とSUBROUTINE DOMAIN2 が追加されています。これらは、柴本泰照様に書いて頂きました。柴本様、有難うございました。プログラミングに使われている式の導出については、Discretizationeを参考にしてください。

プログラム BEM8CON.FOR と BEM8CONQ.FOR に共通なことがらですが、DIMENSION の C(MXE) が有ります。しかし、連立方程式 [A]{X}={RHS} を作り上げるのには、Cを配列として保存する必要はありません。これは、[C] の計算結果を出力する目的のために保存しているだけです。[C] を出力している理由は、特にありませんが、Gauss-Legendre 積分の計算精度を評価するのに使えます。もし、領域内の点のCが、C=1.000 に近くない場合は、Gauss-Legendre 積分の sampling points 数を1つ多くすれば良いことになります。

ここで紹介した数値処理については、要素が線形(linear) またはそれ以上になると効果を発揮します。再度、線形要素(linear element) を紹介するところで、この数値処理を復習します。

BACK NEXT Multiple Domain
Menu Fundamentals Formulation discretizatione Example Straight Multi-D