■Program: BEM8QUDS.FOR■
このプログラムは、BEM8QUDR.FOR をベースにして作りました。Free surface と seepage face の位置を計算するために、下表に示す変数を導入しました。
変数名 | Type | 目的/意味 |
---|---|---|
MXFREE | 整数 | 考えられる Free surface の数の最大値 |
MXSEEP | 整数 | 考えられる Seepage face の数の最大値 |
NFREE | 整数 | Free surface の節点数 |
NSEEP | 整数 | Seepage face の節点数 |
IFREE | 整数/1次元配列 | Free surface の節点番号 |
ISEEP | 整数/1次元配列 | Seepage face の節点番号 |
変数 MXFREE と MXSEEP は、Main program の PARAMETER で設定してあります。つまり、IFREEとISEEPの配列の大きさを決めています。その他の変数についたは、例題のところで詳しく説明します。また、Main program では、解の収束の制御パラメーターとして、ALLOWANC と MAXITERA があります。これらは、それぞれ許容誤差と最大繰り返し回数を意味し、プログラムでは、 1.D-4 と 30 に設定してあります。
次に、新しく導入されている Subroutine について説明します。下表に概略をまとめておきました。ここで、注意しておきたい事があります。それは、座標です。説明では、x と z を使いましたが、プログラムでは、x と y を使っています。
Subroutine名 | 役 割 |
---|---|
YMINMAX | 与えられた領域の最大と最小のy座標値を計算します。そして、最大のy-最小のy をDMAINHTとして元へ返します。この変数は、収束の判定のときに使います。 |
MONITOR | 解の収束状況をコンソールに表示します。 |
QZERO | 説明の時に用いた点 A の節点を持つ seepage face 上の要素を探します。要素番号は、ITOPELE に入ります。要素は、3つの節点 (i,j,k)で構成されています。点 A は、要素 ITOPELE の k に存在しているものとしてプログラムは理解します。 |
RECOORD | Free surface と seepage face の新しい座標値を計算します。このSubroutine では、まず、qn を用いて、seepage face の新しい座標を計算し、h(xi)=yi とします。次に、free surface を yi=h(xi) とします。 そして、誤差を計算します。 |
BACK | NEXT |
---|
Menu | Point Source | Free Surface | Free Surf/Point Q | Holes |