問題タブ [mathematical-lattices]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
simulation - 格子ボルツマンシミュレーションにおける魔法数の説明?
私は最近、この流体力学シミュレーションに出くわし、それをよりよく理解するために格子ボルツマン法について調べようとしています。そこにあるコードのほとんどはかなり透明なので、コードを読んでウィキペディアを読む間に、私はすべてが何をしているのかほとんど理解できました...コアの「衝突」関数の運動学的計算を除いて。
1/9、4/9、および 1/36 の因数は、異なる格子方向に沿ってセルの中心を結ぶベクトルの長さに関連していることを突き止めることができました。異なるラティス タイプに使用する係数 (このコードでは D2Q9 ラティスが使用されています)。しかし、格子ボルツマン アルゴリズムの衝突ステップを定義する一般的なベクトル方程式から、以下に示す特定の 9 行の実装演算に至るまでの過程を説明するものを見つけることができませんでした。特に、3、1.5、4.5 という係数はどこから来るのでしょうか?
リンクされた Web ページで使用されているコードは次のとおりです (自由変数を削除して読みやすくするために少し編集しています)。
python - ハニカム格子を表現する最良の方法は何ですか?
ハニカム格子をシミュレートしようとしています。つまり、各粒子は 3 つの隣接粒子のそれぞれと相互作用します。自動化されるように配列で表現したい。つまり、任意のアトムがランダムに選択された場合、コードは接続された隣接に基づいていくつかのパラメーターを評価する必要があります。
次のように考えることができます。
- n*n 配列を初期化します。
- すべての粒子は、右側と左側の隣の粒子と相互作用します
- 奇数行と奇数列の粒子は、その下の粒子と相互作用します
- 奇数行と偶数列の粒子は、その一番上の粒子と相互作用します
- 偶数行と奇数列の粒子は、その一番上の粒子と相互作用します
- 偶数行および偶数列の粒子は、その下の粒子と相互作用します
同等性は、下の写真に示されています。
同じことを表すより良い方法はありますか?