MeshIm

class MeshIm(*args)

GetFEM MeshIm オブジェクト

This object represents an integration method defined on a whole mesh (an potentially on its boundaries).

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によって暗黙的に定義されたパーティションに準拠する積分法を構築します.

    The where argument define the domain of integration with respect to the levelset, it has to be chosen among 'ALL', 'INSIDE', 'OUTSIDE' and 'BOUNDARY'.

    it can be completed by a string defining the boolean operation to define the integration domain when there is more than one levelset.

    the syntax is very simple, for example if there are 3 different levelset,

    "a*b*c" は各levelsetによって定義された領域の交差です(この関数が呼び出されない場合のデフォルトの動作です).

    "a+b+c" は領域の結合です.

    "c-(a+b)" は第3levelsetの領域から他の二つの領域の和集合を引いたものです.

    "!a" は(すなわち a(x)>0 である)領域の補完領域です.

    最初のlevelsetは常に "a" で参照され,次のレベルセットは "b" で参照されます.

    インスタンス INSIDE(a*b*c) 用

    CAUTION: this integration method will be defined only on the element cut by the level-set. For the 'ALL', 'INSIDE' and 'OUTSIDE' options it is mandatory to use the method MeshIm.set_integ() to define the integration method on the remaining elements.

  • 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])

積分法を設定します.

Assign an integration method to all convexes whose #ids are listed in CVids. If CVids is not given, the integration is assigned to all convexes. It is possible to assign a specific integration method with an integration method handle im obtained via Integ('IM_SOMETHING'), or to let getfem choose a suitable integration method with im_degree (choosen such that polynomials of \(\text{degree} \leq \text{im\_degree}\) are exactly integrated. If im_degree=-1, then the dummy integration method IM_NONE will be used.)