流体が高さマップの表面全体に広がるときの流体の一時的な動作を記述するアルゴリズムを探しています。t=0 での私の開始条件は次のとおりです。
- サイズ [x, y] の高さの値 (H) の 2D マトリックス
- サイズ [x, y] の流体の高さの値 (F) の 2D マトリックス
- 行列 (a) の各点の面積のメトリック。つまり、各位置は 1 cm^2 です。
- 流体の粘度値 (u)
私が欲しいのは、t'=t+1 で流体の高さ行列 F の新しい値を計算できるアルゴリズムです。任意の時点で、特定の時点での流体の体積を v = a * (F(x,y) - H(x, y)) で計算できます。このアルゴリズムの望ましい特性は次のとおりです。
- 各ポイントでの流体柱の上部または下部の「勾配」または「形状」を考慮する必要はありません。つまり、ハイトマップの各値を特定の高さの平らな正方形を表すものと見なし、流体の高さマップの各値を上部が平らな長方形の水柱と見なすことができます。
- 「ドレイン」(高さマップの非常に低いポイント) に遭遇した場合、マップのすべての部分からの流体がそれに引き寄せられるため、影響を受ける可能性があります。
私が探しているものの簡単な例は次のとおりです。
- すべての値が 0 である 5x5 の高さマップ マトリックス
- 10 である [2, 2] を除くすべての値が 0 である 5x5 流体高さマップ マトリックス。
- 1 m^2 の点あたりの面積
- u の粘度
アルゴリズムは、いくつかの時間ステップにわたって 5x5 マトリックス上に広がる流体の「柱」を記述します。最終的には、アルゴリズムはすべての場所で 10/25 の均一な高さに落ち着きますが、その間に何が起こるかに非常に興味があります.
この種のアルゴリズムを検索しようとしましたが、見つけることができるのは流体内の粒子の挙動を記述する方程式だけであり、これは私の目的には細かすぎます。この問題について参照できる良い情報源、または私のニーズを満たす可能性のある既存のアルゴリズムを知っている人はいますか?