gf_mesh_set

概要

PIDs = gf_mesh_set(mesh M, 'pts', mat PTS)
PIDs = gf_mesh_set(mesh M, 'add point', mat PTS)
gf_mesh_set(mesh M, 'del point', ivec PIDs)
CVIDs = gf_mesh_set(mesh M, 'add convex', geotrans GT, mat PTS)
gf_mesh_set(mesh M, 'del convex', mat CVIDs)
gf_mesh_set(mesh M, 'del convex of dim', ivec DIMs)
gf_mesh_set(mesh M, 'translate', vec V)
gf_mesh_set(mesh M, 'transform', mat T)
gf_mesh_set(mesh M, 'boundary', int rnum, mat CVFIDs)
gf_mesh_set(mesh M, 'region', int rnum, mat CVFIDs)
gf_mesh_set(mesh M, 'extend region', int rnum, mat CVFIDs)
gf_mesh_set(mesh M, 'region intersect', int r1, int r2)
gf_mesh_set(mesh M, 'region merge', int r1, int r2)
gf_mesh_set(mesh M, 'region subtract', int r1, int r2)
gf_mesh_set(mesh M, 'delete boundary', int rnum, mat CVFIDs)
gf_mesh_set(mesh M, 'delete region', ivec RIDs)
gf_mesh_set(mesh M, 'merge', mesh m2[, scalar  tol])
gf_mesh_set(mesh M, 'optimize structure'[, int with_renumbering])
gf_mesh_set(mesh M, 'refine'[, ivec CVIDs])

説明 :

mesh オブジェクトを変更するための汎用的な関数です.

コマンドリスト

PIDs = gf_mesh_set(mesh M, 'pts', mat PTS)

メッシュ点の座標を PTS で指定された座標に置き換えます.

PIDs = gf_mesh_set(mesh M, 'add point', mat PTS)

メッシュに新しい点を挿入し,その #id を返します.

PTSnxm 行列でなければなりません.ここで n はメッシュの次元, m はメッシュに追加される点の数です.出力では, PID にこれらの新しい点の点番号IDが含まれます.

注: ( 1e-8 程度の小さな許容範囲で)既にメッシュの一部になっている点がある場合,それらの点は再挿入されず, PIDs には以前に割り当てられた #id の点が含まれます.

gf_mesh_set(mesh M, 'del point', ivec PIDs)

メッシュから1つまたは複数の点を削除します.

PIDs は 'add point' コマンドで返される点である #ids などを指定する必要があります.

CVIDs = gf_mesh_set(mesh M, 'add convex', geotrans GT, mat PTS)

メッシュに新しい凸を追加します.

凸(三角形,プリズム,...)は GT ( gf_geotrans('...') で取得されます)によって与えられ,その点は PTS の列によって与えられます.返される CVID には凸の #idが含まれます. PTS は複数の凸(またはFortranの次数に従って正しく形成された2次元配列)を挿入するための3次元配列の場合もあります.

gf_mesh_set(mesh M, 'del convex', mat CVIDs)

メッシュから1つまたは複数の凸を削除します.

CVIDs には 'add convex' コマンドで返されるような凸 #id を含める必要があります.

gf_mesh_set(mesh M, 'del convex of dim', ivec DIMs)

DIMs に表示されている次元の凸をすべて削除します.

例えば gf_mesh_set(mesh M, 'del convex of dim', [1,2]) はすべての線区分,三角形,四角形を削除します.

gf_mesh_set(mesh M, 'translate', vec V)

メッシュの各点を V から移動します.

gf_mesh_set(mesh M, 'transform', mat T)

メッシュの各点にマトリックス T を適用します.

なお, TNxN ( N = gf_mesh_get(mesh M, 'dim') )行列である必要はありません.したがって,2次元メッシュを3次元メッシュに(相互に)変換できます.

gf_mesh_set(mesh M, 'boundary', int rnum, mat CVFIDs)

非推奨関数です.代わりに 'regions' を使用してください.

gf_mesh_set(mesh M, 'region', int rnum, mat CVFIDs)

領域番号 rnum を,行列 CVFIDs に提供されている凸または凸面,あるいはその両方の集合に割り当てます.

CVFIDs の最初の行は凸の #id を含み,二番目の行は凸の中に面番号を含みます (または凸全体として0(領域は通常,凸面のリストを格納するために使用されますが,凸面のリストを格納するために使用することもできます).

ベクトル(または1行の行列)が与えられる場合,領域は対応する凸集合を表します.

gf_mesh_set(mesh M, 'extend region', int rnum, mat CVFIDs)

領域番号 rnum で識別される領域を拡張して,行列 CVFIDs に与えられた凸または凸面あるいはその両方の集合を含めます. gf_mesh_set(mesh M, 'set region) も参照.

gf_mesh_set(mesh M, 'region intersect', int r1, int r2)

領域番号 r1 を領域番号 r2 との交差部分に置き換えます.

gf_mesh_set(mesh M, 'region merge', int r1, int r2)

領域番号 r2 を領域番号 r1 にマージします.

gf_mesh_set(mesh M, 'region subtract', int r1, int r2)

領域番号 r1 を領域番号 r2 との差分に置き換えます.

gf_mesh_set(mesh M, 'delete boundary', int rnum, mat CVFIDs)

非推奨関数です.代わりに 'delete region' を使用してください.

gf_mesh_set(mesh M, 'delete region', ivec RIDs)

RIDs にリストされている領域 #id を削除します.

gf_mesh_set(mesh M, 'merge', mesh m2[, scalar  tol])

mesh m2 とマージします.

許容半径 tol 内の重複点は複製されません. m2 がmesh_femオブジェクトの場合は,そのリンクされたメッシュが使用されます.

gf_mesh_set(mesh M, 'optimize structure'[, int with_renumbering])

点および凸の番号付けをリセットします.

最適化後,点 (resp. convexes) には連続して 1 から gf_mesh_get(mesh M, 'max pid') (resp. gf_mesh_get(mesh M, 'max cvid')) まで番号が付けられます.

gf_mesh_set(mesh M, 'refine'[, ivec CVIDs])

メッシュの改善には Bank の方法を使用します.

CVIDs が指定されていない場合,メッシュ全体が洗練されます.このメッシュにリンクされたmesh_femオブジェクトとmesh_imオブジェクトの領域,有限要素法,および積分法は,自動的に洗練されます.