前書き¶
このチュートリアルでは,コメント付きの簡単な例でライブラリ GetFEM の主な特徴を示すことを目的としています. GetFEM は連成を含む複雑な問題の数値モデリングが可能です.弱形式記述言語のおかげで,任意の連成項を追加するのは比較的簡単です.弱形式のフレーズはアセンブリ中に実行される最適化された命令リストの形式でコンパイルされます.
提供されている主な機能は次のとおりです
マルチフィジックス問題の近似と汎用アセンブリ.
固定サイズ変数.
接触問題.
Fictitious 領域の機能と変換による,メッシュ間または領域間のアセンブリ.
継続/分岐問題.
当然,このチュートリアル以外にもいくつかのドキュメンテーションが存在します.実装されたメソッドの説明に関しては,(C++ ライブラリの)ユーザードキュメント を参考にしてください.インターフェイスのドキュメンテーションはインターフェイスのさまざまな機能の使用方法を記載していますが,メソッドの説明は繰り返しません.「開発者の手引き」には,ライブラリの構造に関する内部情報が記載されています.
GetFEM は Savannah サイトによってホストされているフリーな共同プロジェクトです(https://savannah.nongnu.org/projects/getfem を参照してください).新しいコントリビューターは,プロジェクトのあらゆる面で歓迎いたします.
C++,Python,Scilab,または Matlab?¶
GetFEM は基本的に C++ で書かれたライブラリです.しかし,Python,Scilab や Matlab のインターフェイスでも利用可能であり,すべての高度な機能を使用することができます.プログラミングがより簡単なスクリプト言語のインターフェイスから入門することをお勧めします.3種類のインターフェイスは,グラフィックの後処理を除けば,異なるのはわずかな構文のみです (Python インターフェイスまたは C++ で直接ライブラリを使用する場合,Paraview Mayavi2,PyVista または gmsh などの専用ソフトウェアを使用しますが,Scilab および Matlab インターフェイスを使用する場合は統合された後処理機能が使用可能です).デフォルトではPython インターフェイスがC++ ライブラリと一緒にコンパイルされます.
GetFEM のインターフェイスを使用することは優れた戦略です.複雑なアプリケーションの場合でも,パフォーマンスは C++ ライブラリを直接使用した場合に匹敵し,より柔軟な使用が可能です.しかし,(MPI で) 並列化が可能なのはPython インタフェースだけです.インターフェイスへの機能の追加は比較的簡単な作業です.
チュートリアルの最初の (熱電気弾性連成の) 例では,C++ ライブラリとインターフェイスの使用方法の違いを確認することができます.
デモファイルはどこにありますか?¶
多数のデモンストレーションプログラムが以下にあります.
C++ の例は以下のディレクトリ内にあります.
tests/
Python インターフェイスは以下のディレクトリ内にあります.
interface/tests/python
Scilab インターフェイスは以下のディレクトリ内にあります.
interface/scr/scilab/demos
そして, Matlab インターフェイスは以下のディレクトリ内にあります.
interface/tests/matlab