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)
メッシュ点の座標を <literal>PTS</literal> で指定された座標に置き換えます.
PIDs = gf_mesh_set(mesh M, 'add point', mat PTS)
メッシュに新しい点を挿入し,その #id を返します.
<literal>PTS</literal>は<literal></literal>nxm<literal></literal>マトリックスでなければなりません.ここで,<literal></literal>n<literal></literal>はメッシュ寸法,<literal></literal>m<literal></literal>はメッシュに追加される点の数です.出力では,<literal>PID</literal>にこれらの新しい点の点番号IDが含まれます.
注: ( <literal></literal>1e-8<literal></literal> 程度の小さな許容範囲で)既にメッシュの一部になっている点がある場合,それらの点は再挿入されず, <literal>PIDs</literal> には以前に割り当てられた #id の点が含まれます.
gf_mesh_set(mesh M, 'del point', ivec PIDs)
メッシュから1つまたは複数の点を削除します.
<literal>PIDs</literal> は 'add point' コマンドで返される点である #ids などを指定する必要があります.
CVIDs = gf_mesh_set(mesh M, 'add convex', geotrans GT, mat PTS)
メッシュに新しい凸を追加します.
凸(三角形,プリズム,...)は <literal>GT</literal> ( gf_geotrans('...') で取得されます)によって与えられ,その点は <literal>PTS</literal> の列によって与えられます.返される <literal>CVID</literal> には凸の #idが含まれます. <literal>PTS</literal> は複数の凸(またはFortranの次数に従って正しく形成された2次元配列)を挿入するための3次元配列の場合もあります.
gf_mesh_set(mesh M, 'del convex', mat CVIDs)
メッシュから1つまたは複数の凸を削除します.
<literal>CVIDs</literal> には 'add convex' コマンドで返されるような凸 #id を含める必要があります.
gf_mesh_set(mesh M, 'del convex of dim', ivec DIMs)
<literal>DIMs</literal> に表示されている次元の凸をすべて削除します.
例えば <literal></literal>gf_mesh_set(mesh M, 'del convex of dim', [1,2])<literal></literal> はすべての線区分,三角形,四角形を削除します.
gf_mesh_set(mesh M, 'translate', vec V)
メッシュの各点を <literal>V</literal> から移動します.
gf_mesh_set(mesh M, 'transform', mat T)
メッシュの各点にマトリックス <literal>T</literal> を適用します.
なお, <literal>T</literal> は <literal></literal>NxN<literal></literal> ( <literal></literal>N = gf_mesh_get(mesh M, 'dim')<literal></literal> )行列である必要はありません.したがって,2次元メッシュを3次元メッシュに(相互に)変換できます.
gf_mesh_set(mesh M, 'boundary', int rnum, mat CVFIDs)
非推奨関数です.代わりに 'regions' を使用してください.
gf_mesh_set(mesh M, 'region', int rnum, mat CVFIDs)
領域番号 <literal>rnum</literal> を,行列 <literal>CVFIDs</literal> に提供されている凸または凸面,あるいはその両方の集合に割り当てます.
<literal>CVFIDs</literal> の最初の行は凸の #id を含み,二番目の行は凸の中に面番号を含みます (または凸全体として 0 (領域は通常,凸面のリストを格納するために使用されますが,凸面のリストを格納するために使用することもできます).
ベクトル(または1行の行列)が与えられる場合,領域は対応する凸集合を表します.
gf_mesh_set(mesh M, 'extend region', int rnum, mat CVFIDs)
領域番号 <literal>rnum</literal> で識別される領域を拡張して,マトリックス <literal>CVFIDs</literal> に与えられた凸または凸面あるいはその両方の集合を含めます. <literal></literal>gf_mesh_set(mesh M, 'set region)<literal></literal> も参照.
gf_mesh_set(mesh M, 'region intersect', int r1, int r2)
領域番号 <literal>r1</literal> を領域番号 <literal>r2</literal> との交差部分に置き換えます.
gf_mesh_set(mesh M, 'region merge', int r1, int r2)
領域番号 <literal>r2</literal> を領域番号 <literal>r1</literal> にマージします.
gf_mesh_set(mesh M, 'region subtract', int r1, int r2)
領域番号 <literal>r1</literal> を領域番号 <literal>r2</literal> との差分に置き換えます.
gf_mesh_set(mesh M, 'delete boundary', int rnum, mat CVFIDs)
非推奨関数です.代わりに 'delete region' を使用してください.
gf_mesh_set(mesh M, 'delete region', ivec RIDs)
<literal>RIDs</literal> にリストされている領域 #id を削除します.
gf_mesh_set(mesh M, 'merge', mesh m2[, scalar tol])
mesh <literal>m2</literal> とマージします.
許容半径 <literal>tol</literal> 内の重複点は複製されません. <literal>m2</literal> が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 の方法を使用します.
<literal>CVIDs</literal> が指定されていない場合,メッシュ全体が洗練されます.このメッシュにリンクされたmesh_femオブジェクトとmesh_imオブジェクトの領域,有限要素法,および積分法は,自動的に洗練されます.