|
|
◆ readgmsh22()
| void readgmsh22 |
( |
char * |
fname, |
|
|
int * |
n, |
|
|
double |
x[], |
|
|
double |
y[], |
|
|
double |
z[], |
|
|
int * |
ne, |
|
|
int |
ldkc, |
|
|
int |
kc[], |
|
|
int |
ldlb, |
|
|
int |
lb[], |
|
|
int * |
info |
|
) |
| |
Gmshファイルから有限要素法用のメッシュ情報を読み込む
- 目的
- Gmsh形式 (バージョン 2.2) のファイルから有限要素法用のメッシュ情報を読み込む.
・$MeshFormat, $Nodes および $Elements セクションの情報のみ読み取る. その他は読み飛ばす.
・$Elements には領域を構成するメッシュ要素(例えば, 2次元なら3角形要素, 3次元なら4面体要素)の他に, 境界を定義する要素(例えば, 2次元なら直線要素, 3次元なら3角形要素)が含まれる.
・$Nodes および $Elements セクションにおいて, ノード番号とエレメント番号は飛び飛びの値ではいけない. すなわち, それぞれ 1 〜 n, 1 〜 ne の間で重複してはいけない. ただし, 現れる順番は任意でよい.
- 引数
-
| [in] | fname | 入力ファイル名. |
| [out] | n | 格子点数. |
| [out] | x[] | 配列 x[lx] (lx >= *n)
格子点の x 座標. |
| [out] | y[] | 配列 y[ly] (ly >= *n)
格子点の y 座標. |
| [out] | z[] | 配列 z[lz] (lz >= *n)
格子点の z 座標. |
| [out] | ne | 要素数. |
| [in] | ldkc | 配列 kc[] の整合寸法. (ldkc >= ns + 1 (ただし, ns は各要素の節点数)) |
| [out] | kc[] | 配列 kc[ldkc*lkc] (lkc >= *ne)
コネクション行列: kc[ldkc*(k-1)] は要素 k のタイプ, kc[ldkc*(k-1) + 1], ..., kc[ldkc*(k-1) + ns] は要素 k の節点を表す.
要素タイプの値は次のとおり.
= 1: 2節点直線.
= 2: 3節点3角形.
= 3: 4節点4角形.
= 4: 4節点4面体.
= 5: 8節点6面体.
= 6: 6節点プリズム.
= 7: 5節点ピラミッド.
= 8: 3節点2次線要素.
= 9: 6節点2次3角形.
= 10: 9節点2次4角形.
= 11: 10節点2次4面体.
= 12: 27節点2次6面体.
= 13: 18節点2次プリズム.
= 14: 14節点2次ピラミッド.
= 15: 1節点点要素.
= 16: 8節点2次4角形.
= 17: 20節点2次6面体.
= 18: 15節点2次プリズム.
= 19: 13節点2次ピラミッド.
= 20: 9節点3次不完全3角形.
= 21: 10節点3次3角形.
= 22: 12節点4次不完全3角形.
= 23: 15節点4次3角形.
= 24: 15節点5次不完全3角形.
= 25: 21節点5次3角形.
= 26: 4節点3次エッジ.
= 27: 5節点4次エッジ.
= 28: 6節点5次エッジ.
= 29: 20節点3次4面体.
= 30: 35節点4次4面体.
= 31: 56節点5次4面体.
= 92: 64節点3次6面体.
= 93: 125節点4次6面体. |
| [in] | ldlb | 配列 lb[] の整合寸法. (ldlb >= nlb + 1 (ただし, nlb は各要素あたりのラベル数)) |
| [out] | lb[] | 配列 lb[ldlb*llb] (llb >= *ne)
要素のラベル番号: lb[ldlb*(k-1)] は要素 k のラベル数, lb[ldlb*(k-1) + 1], ..., lb[ldlb*(k-1) + nlb] は要素 k のラベルを表す.
|
| [out] | info | リターンコード.
= 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= 11: ファイルオープンエラー.
= 13: データフォーマットエラー.
= 14: データ値エラー.
= 15: セクションの並び順のエラー.
= 16: 処理中にファイルの終わりに達した. |
|