MeshIm¶
- class MeshIm(*args)¶
GetFEM MeshIm オブジェクト
このオブジェクトは,メッシュ全体で定義された積分法を表します(潜在的に境界にあります).
MeshImオブジェクトの汎用的なコンストラクタ
MIM = MeshIm('load', string fname[, Mesh m])
ファイルからMeshImをロードします.メッシュ m が与えられなかった場合(この種類のファイルにはメッシュは保存されません),ファイルから読み込まれ,そのdescriptorが2番目の出力引数として返されます.
MIM = MeshIm('from string', string s[, Mesh m])
は文字列から MeshIm オブジェクトを作成します.MeshIm.char()
も参照してください.MIM = MeshIm('clone', MeshIm mim)
MeshImのコピーを作成します.MIM = MeshIm('levelset', MeshLevelSet mls, string where, Integ im[, Integ im_tip[, Integ im_set]])
levelsetによって暗黙的に定義されたパーティションに準拠する積分法を構築します.where 引数はlevelsetに関する積分領域を定義します.この引数は 'ALL', 'INSIDE', 'OUTSIDE' および 'BOUNDARY' の中から選択する必要があります.
複数のlevelsetがある場合は,ブール演算を定義する文字列を使用して積分領域を定義できます.
構文は非常に単純です.たとえば,3つの異なるレベルセットがある場合,
"a*b*c" は各levelsetによって定義された領域の交差です(この関数が呼び出されない場合のデフォルトの動作です).
"a+b+c" は領域の結合です.
"c-(a+b)" は第3levelsetの領域から他の二つの領域の和集合を引いたものです.
"!a" は(すなわち a(x)>0 である)領域の補完領域です.
最初のlevelsetは常に "a" で参照され,次のレベルセットは "b" で参照されます.
インスタンス INSIDE(a*b*c) 用
注意:この積分法は level-set で切り取られた要素にのみ定義されます. 'ALL' , 'INSIDE' と 'OUTSIDE' オプションの場合は,必ず
MeshIm.set_integ()
メソッドを使って残りの要素の積分法を定義する必要があります.MIM = MeshIm(Mesh m, [{Integ im|int im_degree}])
新しい MeshIm オブジェクトを作成します.便宜上,オプションの引数( im または im_degree )を指定することもできます.
MeshIm.integ()
への呼び出しがこれらの引数とともに出力されます.
- adapt()¶
MeshIm levelsetオブジェクトの場合のみ使用します.levelset関数の変更に合わせて積分法を変更します.
- char()¶
MeshImの説明を文字列で出力します.
既定値では,リンクされたメッシュオブジェクトの説明は含まれません.
- convex_index()¶
積分法がある凸のリストを返します.
ダミーの IM_NONE メソッドを持つ凸は表示されません.
- display()¶
MeshImオブジェクトの簡単な概要が表示されます.
- eltm(em, cv, f=None)¶
凸の cv 上で積分された基本行列(またはテンソル)を返します.
警告
Be sure that the fem used for the construction of em is compatible with the fem assigned to element cv ! This is not checked by the function ! If the argument f is given, then the elementary tensor is integrated on the face f of cv instead of the whole convex.
- im_nodes(CVids=None)¶
積分点の座標とその重みを返します.
CVids は Mesh.region() によって返される凸のリストまたは凸面のリストです.
警告
メッシュの一部でない凸,または近似積分法を持たない凸には,対応するエントリ(これは,厳密な積分法には意味がありません!)がありません.
- integ(CVids=None)¶
MeshImで使用される積分法のリストを返します.
I は CVids で与えられた凸にあるすべての整数オブジェクトの配列です. CV2I が出力引数として与えられた場合, CVids に列挙されている各凸に対し, I における相関積分法のインデックスを含みます.
メッシュの一部ではない凸,または積分法を持たない凸については, CV2I の対応エントリを-1に設定します.
- linked_mesh()¶
mim にリンクされているMeshオブジェクトへの参照を返します.
- memsize()¶
MeshImオブジェクトによって使用されるメモリの量(バイト単位)を返します.
この結果では,リンクされたメッシュオブジェクトは考慮されません.
- save(filename)¶
MeshImをテキストファイル(とオプションでリンクされたメッシュオブジェクト)に保存します.
- set_integ(*args)¶
概要: MeshIm.set_integ(self,{Integ im|int im_degree}[, ivec CVids])
積分法を設定します.
CVids に#idがリストされているすべての凸に積分法を割り当てます. CVids が指定されていない場合,積分はすべての凸に割り当てられます. Integ('IM_SOMETHING') から取得した積分法ハンドル im を用いて,特定の積分法を割り当てることもできるし, im_degree を用いて,getfemに適切な積分法を選択させることもできます.( \(\text{degree} \leq \text{im\_degree}\) の多項式が正確に積分されるように選択します. im_degree=-1 の場合,ダミーの積分法 IM_NONE が使用されます.).