5

完全な編集:

問題全体についてもう少し情報を提供します。プロジェクトは初期段階にあり、私の質問は実際には物事のごく一部についてのみです。

最終的な目標:
私は現在、Pythonで硬い障害物の周りの熱気の流れをシミュレートしようとしています。私は安定した空気の流入を持っています、バルクの流れは一時的で乱流です。演習全体の目的は、
-空気の流れがどのように動作するか
-障害物が熱くなる
-空気が冷えて気圧が下がる方法を理解することです。

これまでに行われたこと:
それほど多くはありませんが、物事は初期段階にあります。2Dの長方形のドメインと円形の障害物があります。メッシュは、バルクと障害物の境界で細かくなります。これは、興味深いことが起こっている場所だからです。現在、私は気流のみを考慮しており、対流や熱伝達は考慮していません。FEniCSを使用していますナビエ・ストークス方程式を解くためのソフトウェアコレクション。Fenicsには、Chorin射影法を使用したNSソルバーの例が付属しています。この例を、自分の設定に適合させました。剛体を滑りのない境界条件のある領域としてモデル化します(つまり、気流の速度をゼロに設定します)。ソルバーは引き続きその領域のNS方程式を解きます。特に、障害物内の圧力は時間とともに変化します。おそらく、これを回避し、NSソルバーをバルクに制限することをお勧めします。しかし、現時点では、これが速度にあまり影響を与えるとは思いません。

問題:
物事は非常に遅くなります。最終的なシミュレーションに数日かかるかどうかは気になりませんが、現在は障害物の周りの2次元の流体の流れであり、メッシュは最終的に望むほど細かくありません。熱が作用するともっと複雑になるので、これがもっと速くなることを望みました。

私の質問:
それは1つの質問に要約されます:

Pythonでナビエ-ストークス方程式を解くための高速なアルゴリズムまたは方法は何ですか?

ソルバーを最初から作成することはまったく問題ありませんが、同じ問題が発生します。今朝、投影法はおそらく最悪のアイデアではないことに気づきました。圧力と速度のアップグレードを切り離すため、これを別のCPUカーネルに割り当てることができます。

4

1 に答える 1

6

すべてをゼロから作成する場合は、実際には Python が適しています。しかし、ゼロからそれを行うには、多くのバックグラウンドが必要です。

結合解は難しい問題です。

FEniCS (ありがとう、Sven) というパッケージを使用していると指摘されました。私の元の答えには修正が必要です。物理学に関するいくつかの質問から始めて、パッケージに目を向けます。

非圧縮性ナビエストークスは、その温度での空気のマッハ数が 0.1 未満の場合、空気などの気体に適用されます。それはあなたの問題の場合ですか?本当かもしれませんが、聞いてみようと思いました。

Navier Stokes は、固体の障害物には適用されません。全体を 1 つのメッシュでモデル化する場合、ソリッドをどのように記述しますか? 高粘度液ですか?これにより、連立方程式の条件が悪くなり、解くのが難しくなる可能性があります。明示的な積分を使用している場合は、安定したタイム ステップ サイズにも影響します。

それは定常流ですか、それとも一時的なものですか? (定常の方が簡単です) 流れは層流ですか、それとも乱流ですか? (層流の方が簡単です)

それは、固体障害物での伝導熱伝達と、流体での伝導/対流です。流体には、メッシュが解決しなければならない表面の固体障害物に沿った運動量と熱境界層があります。それは、固体と流体の間の重要な熱伝達が起こっている場所です。これらは、境界条件から遠方場の速度と温度への遷移を解決するために、固体表面に局所的な細かいメッシュを必要とします。メッシュでそれを考慮しましたか?

FEniCS は有限要素を使用しているように見えますが、ドキュメントには、運動量とエネルギーの方程式を結合する方法を教えてくれるものは何もありません。

ここで適切なアドバイスを得るには、さらに多くのことを話す必要があります。物理学Stackoverflowに数値的方法はありますか? 必要になります。

于 2011-01-22T13:36:28.383 に答える