構造化グリッドアダプティブメッシュリファインメント用の汎用ライブラリはありますか?


18

アダプティブメッシュリファインメント(AMR)は、PDEの数値解法で大きく変化する空間スケールの問題に対処するための一般的な手法です。構造化グリッド上のAMRにはどのような汎用ライブラリが存在しますか?理想的には、ライブラリがアダプティブメッシュのみを処理し、物理学と離散化(有限差分/ボリューム/要素)を提供する、PETScの精神にあるものが欲しいです。

理想的なライブラリは

  • モジュラー:コードの記述方法やデータ構造の量が多すぎる
  • 一般:私が使用している離散化の種類は気にしません
  • 効率的:オーバーヘッドがかかりすぎない
  • 並列で拡張性の高い

これらの基準のサブセットのみに適合するライブラリは、引き続き関心の対象となります。

補遺Donna CalhounのAMRパッケージの広範なリストは知っていますが、上記の基準に適合するパッケージはどれか(もしあれば)わかりません。だから、私は主に、それらの用語でどのように評価するかについて、1つまたは(より良い)さらに多くのパッケージで実際の経験を持っている人々から聞くことに興味があります。


2
+1、私はAMRソフトウェアがどんなものであるかについて興味があり、あなたが上記の基準を満たすためにそれを好むでしょう。
ジェフオックスベリー

Chomboの最新バージョンがリリースされたばかりであり、(それが主張されているように)より大きなパッケージに統合する方が簡単なはずだと言及したいと思います(リリースノート)。メジャーリビジョンではないため、一部の項目がまだすべての基準を満たしていない可能性があります。
ジェレミーコズドン

回答:


14

考慮すべきライブラリの1つがBoxLibです。主な機能(ウェブサイトから)は次のとおりです。

  • オプションのサブサイクリングを時間内にブロック化されたAMRをサポート
  • セル中心、顔中心、ノード中心のデータのサポート
  • 階層グリッド構造での双曲線、放物線、楕円の解法のサポート
  • C ++およびFortran90バージョン
  • MPIおよびOpenMPを使用したハイブリッドプログラミングモデルをサポート
  • 燃焼、天体物理学、宇宙論、多孔質媒体における成熟したアプリケーションの基礎
  • 200,000以上のプロセッサーへの実証されたスケーリング
  • 興味のあるユーザーが無料で利用できます
  • また、FortranバージョンへのPythonラッパー(私が作成)も含まれています(ただし、かなり新しいバージョンです)。


    9

    libMeshも確認する必要があります。有限要素法を対象としていますが、それ以外は、ほとんどのボックスをチェックすると思います。BoxLibとは異なり、完全に非構造化された混合要素タイプライブラリであり、同じメッシュ内でテット、ピラミッド、プリズム、および六面体をサポートします。また、周りの高次多項式基底関数の最大の統合ルールセットの1つもあります。PETSc(およびその他のライブラリも)を直接呼び出すことができるように設定されているため、PETScと同じソルバースケーラビリティが得られます。

    libMeshで物事を行う方法は確かにありますが、PETScで物事を行う方法もあります。うまくいけば、それがあなたを怖がらせないでしょう。


    4

    SAMRAIを試してみました。少なくとも1つのコードを使用して、成功してそれを使用しています-IBAMR、AMRとの流体-構造相互作用のための没入境界法コード。


    ジョントラに感謝します(そしてscicompへようこそ)!SAMRAIとBoxLibの顕著な違いを知っていますか?また、リンクテキストを[]に、リンク先を()に入れてインラインでリンクを使用できます。
    Aron Ahmadia

    残念ながら、私は事実ではありません-事実、私は初めてそれについて聞いたばかりです(BoxLib)、それがまさに私が参加することにした理由です-あなたと非公式に議論することで新しいSMTを学びます-ありがとう。
    ジョントラボルタ

    私は2番目のSAMRAIで、AMRにとって非常に有用な汎用フレームワークです。また、著者の好むC ++ / Fortranハイブリッドデザインが大好きです。計算カーネルは、Fortranで記述する必要があり、C ++クラスは、内部MPIとメモリ管理を隠すために必要なすべての抽象化を提供します。
    タロンミーズ

    @AronAhmadia:BoxLibは、セル中心の幾何学的マルチグリッドでディリクレ境界を変更する区分線形補間を処理できません。興味深い点として考えてみてください。
    ガウラフサクセナ

    2

    構造化または非構造化を指定しませんでした。

    Paramesh、Pyramid、p4est、Dendro、Samrai、Chomboをご覧ください。

    Btw Pyramidは粗大化を行いません。


    1
    良いキャッチ; 質問を編集しました。これらのライブラリが私の基準にどの程度適合しているかについてコメントしてください。
    デビッドケッチャソン
    弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
    Licensed under cc by-sa 3.0 with attribution required.