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