XLPack 7.0
XLPack 数値計算ライブラリ (Excel VBA) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ Fem2p()

Sub Fem2p ( N As  Long,
Ne As  Long,
X() As  Double,
Y() As  Double,
Knc() As  Long,
P() As  Double,
Q() As  Double,
F() As  Double,
Nb1 As  Long,
Ib() As  Long,
Bv() As  Double,
Nb2 As  Long,
Ks2() As  Long,
Alpha() As  Double,
Beta() As  Double,
Val() As  Double,
Rowptr() As  Long,
Colind() As  Long,
B() As  Double,
Info As  Long,
Optional Base As  Long = 0 
)

ポアソン方程式の有限要素行列の組み立て (2D) (CSR 形式疎行列) [実験バージョン]

目的
次のような一般化した二次元のポアソン方程式の有限要素行列の組み立てを行う.
-div(p(x,y) grad u(x,y)) + q(x,y)u(x,y) = f(x,y)
ディリクレ境界条件: u(x,y) = g
自然境界条件: p(x,y)*du/dn + α(k,l)*u(x,y) + β(k,l) = 0
出力行列は CSR 形式疎行列である.
引数
[in]N節点数. (N > 0)
[in]Ne要素数. (Ne > 0)
[in]X()配列 X(LX - 1) (LX >= N)
節点の X 座標.
[in]Y()配列 Y(LY - 1) (LY >= N)
節点の Y 座標.
[in]Knc()配列 Knc(LKnc1 - 1, LKnc2 - 1) (LKnc1 >= Nn + 1, LKnc2 >= Ne)
コネクション行列: Knc(0, K-1) は要素 K のタイプ, Knc(1, K-1), ..., Knc(Nn, K-1) は要素 K の節点を示す (Nn は要素中の節点数).
要素タイプの値は次のとおり.
= 2: 3節点3角形.
= 3: 4節点4角形.
= 10: 9節点2次4角形.
[in]P()配列 P(LP - 1) (LP >= N)
各ノードにおける係数 p(x, y).
[in]Q()配列 Q(LQ - 1) (LQ >= N)
各ノードにおける係数 q(x, y).
[in]F()配列 F(LF - 1) (LF >= N)
各ノードにおける係数 f(x, y).
[in]Nb1ディリクレ境界条件の境界の節点数. (Nb1 >= 0)
[in]Ib()配列 Ib(LIb - 1) (LIb >= Nb1)
ディリクレ境界条件の境界の節点の節点番号.
[in]Bv()配列 Bv(LBv - 1) (LBv >= Nb1)
境界の各節点における境界値.
[in]Nb2自然境界条件の境界数. (Nb2 >= 0)
[in]Ks2()配列 Ks2(LKs21 - 1, LKs22 - 1) (LKs21 >= Nns + 1, LKs22 >= Nb2)
自然境界条件の境界のコネクション行列: Ks2(0, K-1) は境界要素 K のタイプ, Ks2(1, K-1), ..., Ks2(Nns, K-1) は境界要素 K の節点を示す (Nns は境界要素中の節点数を示す).
要素タイプの値は次のとおり.
= 1: 2節点線要素.
= 8: 3節点線要素.
[in]Alpha()配列 Alpha(LAlpha1 - 1, LAlpha2 - 1) (LAlpha1 >= Nns, LAlpha2 >= Nb2)
自然境界の各節点における係数 α.
[in]Beta()配列 Beta(LBeta1 - 1, LBeta2 - 1) (LBeta1 >= Nns, LBeta2 >= Nb2)
自然境界の各節点における係数 β.
[out]Val()配列 Val(LVal - 1) (LVal >= Nnz (Nnz は有限要素方程式の係数行列の実際の非ゼロ要素数の数倍必要である))
組み立てられた有限要素方程式の係数行列 (値).
[out]Rowptr()配列 Rowptr(LRowptr - 1) (LRowptr >= N + 1)
組み立てられた有限要素方程式の係数行列 (ポインタ).
[out]Colind()配列 Colind(LColind - 1) (LColind >= Nnz)
組み立てられた有限要素方程式の係数行列 (列番号).
[out]B()配列 B(LB - 1) (LB >= N)
有限要素方程式の右辺ベクトル.
[out]Infoリターンコード.
= 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= 11: knc[] において要素タイプが正しくない.
= 12: 三角要素の面積が 0 または負.
= 13: ks2[] において境界要素タイプが正しくない.
= 14: Ks2[] において節点番号が正しくない.
= 16: Val() または Colind() のサイズが不足.
= 17: 行列の組み立て中に内部エラーが発生した.
[in]Base(省略可)
Rowind() および Colind() のインデクス形式. (省略時 = 0)
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1.