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で使用される積分法のリストを返します.

ICVids で与えられた凸にあるすべての整数オブジェクトの配列です. 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 が使用されます.).