GetFEM 構成¶
GetFEM toolboxは, GetFEM ライブラリへの単なる便利なインターフェイスで,コンピュータに動作する GetFEM がインストールされている必要があります.このツールボックスには,大きな mex-file
( Octave か MatLab から呼び出し可能なc++バイナリ)といくつかの追加の m-file (文書化と機能追加)があります. GetFEM のすべての関数の前には, gf_
(したがって, Octave か MatLab プロンプトで gf_
とタイプして <tab>
キーを押せば,getfem関数のリストを簡単に得ることができます)が付いています.
関数¶
gf_workspace
: workspace管理関数.gf_util
: 雑多な実用的な関数.gf_delete
: GetFEM オブジェクト(gfMesh , gfMeshFem , gfMeshIm など)を破棄します.gf_cvstruct_get
: gfCvStruct オブジェクトから情報を取得します.gf_workspace
: 幾何変換gf_geotrans_get
: gfGeoTrans オブジェクトから情報を取得します.gf_mesh
: 新しい gfMesh オブジェクトを作成します.gf_mesh_get
: gfMesh オブジェクトから情報を取得します.gf_mesh_set
: gfMesh オブジェクトを変更します.gf_eltm
: 要素行列を定義します.gf_fem
: |mlab_fem|を定義します.gf_fem_get
: gfFem オブジェクトから情報を取得します.gf_integ
: 積分法を定義します.gf_integ_get
: gfInteg オブジェクトから情報を取得します.gf_mesh_fem
: 新しい gfMeshFem オブジェクトを作成します.gf_mesh_fem_get
: gfMeshFem オブジェクトから情報を取得します.gf_mesh_fem_set
: gfMeshFem オブジェクトを変更します.gf_mesh_im
:新しい gfMeshIm オブジェクトを作成する.gf_mesh_im_get
: gfMeshIm オブジェクトから情報を取得します.gf_mesh_im_set
: gfMeshIm オブジェクトを変更します.gf_slice
: 新しい gfSlice オブジェクトを作成します.gf_slice_get
: gfSlice オブジェクトから情報を取得します.gf_slice_set
: gfSlice オブジェクトを変更します.gf_spmat
: gfSpMat オブジェクトを作成します.gf_spmat_get
: gfSpMat を使用して計算を実行します.gf_spmat_set
: gfSpMat を変更します.gf_precond
: gfPrecond オブジェクトを作成します.gf_precond_get
: gfPrecond を使用して計算を実行します.gf_linsolve
: getfem (SuperLU, 共役勾配など)が提供するさまざまな線形ソルバーへのインタフェースです.gf_asm
: アセンブリルーチン.gf_solve
: 通常のPDE用の各種ソルバー( gfMdBrick オブジェクトによって廃止されました).gf_compute
: PDE(ノルム,微分など)の解を含む計算.gf_mdbrick
: ("model brick") |mlab_mbr|オブジェクトを作成します.gf_mdbrick_get
: |mlab_mbr|オブジェクトから情報を取得します.gf_mdbrick_set
: gfMdBrick オブジェクトを変更します.gf_mdstate
: ("model state") |mlab_ms|オブジェクトを作成します.gf_mdstate_get
: gfMdState オブジェクトから情報を取得します.gf_mdstate_set
: gfMdState オブジェクトを変更します.gf_model
: gfModel オブジェクトを作成します.gf_model_get
: |mlab_md|オブジェクトから情報を取得します.gf_model_set
: mlab_md| オブジェクトを修正します.gf_global_function
: gfGlobalFunctionオブジェクトを作成します.gf_model_get
: gfGlobalFunctionオブジェクトから情報を取得します.gf_model_set
: GlobalFunctionオブジェクトを変更します.gf_plot_mesh
: メッシュのプロット.gf_plot
: 2Dおよび3Dフィールドのプロット.gf_plot_1D
: 1Dフィールドのプロット.gf_plot_slice
: メッシュスライスのプロット.
オブジェクト¶
GetFEM ツールボックスでは,さまざまな "objects" を操作できます.図 GetFEM オブジェクト階層. を参照してください.MESHオブジェクトとMESHFEMオブジェクトは,最も重要な2つのオブジェクトです.

GetFEM オブジェクト階層.¶
gfGeoTrans
: 幾何学的な変換(凸の形状/位置を定義します)が,gf_geotrans
で作成されます.gfGlobalFunction
: は有限要素法を強化するための大域関数を表します.gfMesh
:gf_mesh
で作成されたメッシュ構造(節点,凸形,各凸形の幾何変換)gfInteg
: 積分法(正確な求積公式...).GEOTRANSに直接リンクされているわけではありませんが,積分法は通常,与えられた凸構造に固有のものです.gf_integ
で作成されます.gfFem
: 有限要素法(凸ごとに1つ,PK,QK,HERMITEなどがあります.).gf_fem
で作成します.gfCvStruct
: 凸構造の形式情報(凸の構造である点の数,面の数)を格納します.gfMeshFem
: メッシュにリンクされたオブジェクトで,各凸にFEMが割り当てられています.gfMeshImM
: メッシュにリンクされたオブジェクトで,各凸に積分メソッドが割り当てられています.gf_mesh_im
で作成します.gfMeshSlice
: メッシュにリンクされたオブジェクトで,P1-不連続 gfMeshFem によく似ています.高速な補間とプロットに使用します.gfMdBrick
: gfMdBrick は,ソルバーの一部を抽象化したものです(たとえば,接線行列を構築するパーツ,dirichlet 条件を処理するパーツなどです).これらのオブジェクトは,さまざまな問題に対する完全なソルバを構築するためにスタックされます.通常は,gfMeshFem , gfMeshIm などを使用します.非推奨のオブジェクトで,現在はgfModelに置き換えられています.gfMdState
: "model state" は,mdbricks(グローバル接線行列,右辺など)のスタックのグローバルデータを保持します.非推奨オブジェクトです.現在はgfModelに置き換えられています.gfModel
: "model" は,modelのグローバルデータ,変数,および説明を保持します. GetFEM のバージョン4.0の "model state" オブジェクトの開発.
cツールボックスは,独自の:envvar:`memory management`を使用します.したがって,次の場合,|gf|オブジェクトは消去されません.
>> clear all
が Octave か MatLab プロンプトで発行されますが,代わりに次の関数が発行されます.
>> gf_workspace('clear all')
を使用してください.さまざまな GetFEM オブジェクトには, handles (または descriptors )を介してアクセスできます.これは,実際のオブジェクトへの32ビット整数識別子を含む単なる Octave / MatLab 構造体です.したがって, Octave か MatLab コマンドは次のようになります.
>> whos
は GetFEM オブジェクト(ハンドルによって使用される余白を除く)のメモリ消費を報告しません.代わりに,次を使用してください.
>> gf_workspace('stats')
GetFEM オブジェクトには次の2種類があります.
ELTM,FEM,INTEG,GEOTRANS,CVSTRUCTなど,削除できない静的なものがあります.
これは,MESH,MESHFEM,MESHHIM,SLICE,SPMAT,PRECONDなどの
gf_workspace
関数によって処理されます.
オブジェクトMESHおよびMESHFEMは独立していません.MESHFEMオブジェクトは常にMESHオブジェクトにリンクされ,MESHオブジェクトは複数のMESHFEMオブジェクトで使用できます.したがって,MESHオブジェクトの破棄を要求した場合,どのMESHFEM(削除を待っているこれらのオブジェクトは, gf_workspace('stats')
の anonymous workspace セクションにリストされている.)でも使用されなくなるまで,オブジェクトの破棄が延期されることがあります.