マルチフィジックスシミュレーションのアルゴリズムと実装のベストプラクティスは何ですか?


16

マルチフィジックスシミュレーションには、多くの場合、異なる空間や時間スケールを持つ複数の「フィジックス」の結合が含まれます。さらに、単一物理コードは多くの場合異なるチームによって作成されます。最も一般的に使用されるカップリング手法は1次演算子分割ですが、これは精度と安定性の特性が不十分です。関心のある問題に対してどのアルゴリズムが効果的であるかをどのように判断し、これらのアルゴリズムを利用可能にするためにソフトウェアをどのように構成する必要がありますか?

回答:


5

完全に結合されたアセンブリを強く推奨します。これにより、演算子分割バージョンを簡単に再現できるからです。具体的には、異なる物理学の残差とヤコビアンを計算するルーチンは分離できますが、フレームワークはそれらを組み合わせてシステム全体の統一された残差を形成できる必要があります。これがPETScの仕組みです。

次に、すべてのコマンドラインから、オペレーター分割ソリューションを完全に結合されたシステムの前提条件として、またはソルバーとして使用できます。さらに、一部のカップリングは保存できますが、他のカップリングは削除できます。PETScは、PC FieldSplitインターフェースを介してこれを処理します。これにより、流体力学のための半陰的ICEなどのハイブリッドスキームの複製が可能になります。


5

これは非常に活発な研究分野であるため、これに対する答えを試みることをheしますが、試してはいけないことについていくつかの経験があります。

しないでください

  • 古いアプリケーションコードAと古いアプリケーションBを取得し、それらを結合してみてください
  • 新しいアプリケーションを構築する代わりに、古風な(後知恵では使用できないことを意味する)コードを使用する
  • 貢献し始める新しいユーザーに巨大なフレームワーク(> 10の依存関係が必要)
  • データレイアウト(メッシュ、マトリックス、ベクトルなど)を簡単に記述できると仮定する

する

  • 標準的なプログラミング手法を使用し、できれば適切な設計パターンを使用する
  • 演算子の分割に関する文献を読んで、精度と安定性の限界を理解してください
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.