Site admin: fujis PukiWiki 1.5.4 © 2001-2022 PukiWiki Development Team. Powered by PHP 8.1.29. HTML convert time: 0.007 sec.
粒子法のプログラムを実装しようとしたのですが、論文や本だと数式レベルでしか説明がなく、それをプログラムにして動くようにするまで苦労しました。 数式をプログラムに落とすこと自体は簡単なのですが、各定数の値が分からなかったりして、粒子が上手く動いてくれるまで大変でした。 なので、同じところでつまづく人も多いのではと思い、自分が書いた粒子法のプログラムを紹介しようと思います。下の動画を作ったときのプログラムです。SPH法です。 こちらがソースコードです。 ※2009.11.4追記 こちらに整理したC++版のほか、Haskell版、OCaml版のコードがあります。 まずはシンプルにと考え、近傍粒子の探索は工夫せず、n(O^2)ですがわかりやすいアルゴリズムを採用しています。まず動くコードを書き、そこから高速化していくアプローチです。 また、計算量を減らした方が試しやすいのと、粒子法は3次元への拡張
流体力学なるものにはこれまで全く無縁で生きてきたが、CFDとか有限要素法とか知らなくてもかっちょいい流体のシミュレーションができるということで話題を呼んでいる、「粒子法」について調べてみた。以下は自分が入門書を斜め読みして理解しかけた最低限の、粒子法に関する乱暴な理解である。(あくまで勉強中の人間の独り言くらいの位置づけで捉えて頂きたい) 実在としての粒子(原子)に対し、ニュートンの運動方程式を、決められたタイムステップで離散的に積分していく、分子動力学法なるものがある。これの計算原理は今述べた通りであり、非常にわかりやすい計算手法となっている。 一方、流体は、粒子ではなく、連続体なのであり、粒子の運動を扱うニュートン力学では扱えない対象ということがあった。それが故に流体力学なるものが考案された。 ところが、このたび粒子法というものの有効性が注目を集め、リアルな流体の振る舞いを、簡単にシミ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く