ホーム >> 左脳Script >> Adobe Flash >> カルマン渦デモ

カルマン渦デモ


「ゆるゆると流れる水が渦を巻く様」を計算で算出する方法があるようです。
カルマン渦という現象を、流体シミュレーションで観察できる Flash を作ってみました。


カルマン渦

「カルマン渦」とは
流れの中に障害物を置くと、渦の列が出来る。この渦がそれぞれ交互に逆回転になる。これをカルマン渦という。風の中で旗が波打ってハタめく現象はこのカルマン渦によるもの。また、風が強い時のピューピューという音は、この現象で空気が振動している為に出る音。
参考:カルマン渦

実際

カルマン渦をシミュレートするには、「ナビエ-ストークス方程式」を使います。(他にも方法(式)はあるようですが。)
大学で講義を聴いたハズ(何故かノートがある)のですが、イマイチ理解できません思い出せません。

結局、検索でこのシミュレーションをしているコードを見つけました。探せばあるものですね。検索万歳。

Java アプレットで作成されています。非常に判りやすいソースコードから、 格子シミュレーション部分を拝借させて頂きました。
参考:http://mike1336.web.fc2.com/app/j901_950/906_windTunnelMAC2DP/windTunnelMAC2D.html


javaのコードを、ほぼそのまま持ってきただけでは効率が良くないのか、重い・・・と思っていたのですが、重かったのは格子状態を表示する部分でした。これは工夫次第で軽く出来そうです。


カルマン渦デモ

karman.swf

重いので、別ページに。「非力なPCで見ると固まる可能性」への配慮からです。
カルマン渦が見られるまで、しばらくかかります。
ぬるりぬるりと変化していく様は見ていて飽きません。が、何故か眠くなります。

クリックしてみましょう。
小さな丸が線に沿って動き出します。任意の場所にパーティクルを置き、その動きを観察する事が出来ます。クリックでいくらでも追加できます。

「水溜りの枯葉みたいだ」などと言うファンシーだかロマンチックだかな表現は正直思いつかず、 何故か「湯のみに注いだお茶の水面に浮かんだ"お茶ッぱ"がくるくる回っている様をボーっと眺めている自分」を真っ先に想像しました。

また、右クリックで出るメニューから、モードを変更する事で、渦を作り出す障害物を設置したり消去したりと、障害物ブロックの編集が出来ます。

あまり激しく弄ると、計算が発散して画面が止まる可能性もあるので注意(あくまで、演算が NaN になりアニメーションとして意味が無くなると言うことであり、Adobe Flash Player が落ちるとか言う事ではありません。タブン。)です。
下記メニューの「Lattice RESET」の状態リセットで対処してください。


右クリックメニューの詳細を示します。
  • MODE: to Lattice / to Particle
    「to Lattice」障害物編集モードへ。
    「to Particle」パーティクル追加モードへ。
  • Lattice RESET
    格子のリセットをします。全ての格子のパラメータを初期状態にし、流れの無い状態まで戻します。
    状態が発散してしまった時に、リセットして下さい。
  • Particle RESET
    パーティクルリセット。全てのパーティクルを削除します。
  • Pressure Draw : ON/OFF
    格子の圧力状態を表示するかどうかのスイッチです。ONで表示されますが、処理が重くなります。
  • Direction Draw : ON/OFF
    格子の流れ状態を表示するかどうかのスイッチです。初期状態は「ON」です。これも「OFF」にすると処理が軽くなります。

一通りの事は出来る?と思うので、障害物で渦を作るなり、パーティクルを山ほど追加するなり、して暇をつぶして見て下さい。
格子状態の表示をオフにすると、軽くなります。


その他

内部の数値パラメータの変更は残念ながらできません。

実際、パラメータを変更しても劇的に変化の様相が変わるなどと言う事もなく、かといって下手な値を指定するとコレまたあっさりと発散する条件になってしまう為、パラメータ変更 U/I は実装しませんでした。


・・・パラメータ制御 U/I を作るのが面倒だというのが正直な理由だったりします(ぉ


ソース

風邪気味の脳みそで思いつくままに"ナチュラルコーディング"したので大変わかりにくい可能性が高いです。覚悟してください。

ソースコード(2009年9月22日)→karman20090922.zip




トラックバック(0)

トラックバックURL: http://n-yagi.0r2.net/sanoupulurun/mt-tb.cgi/233

コメント(1)

コメントする

ホーム >> 左脳Script >> Adobe Flash >> カルマン渦デモ

アーカイブ

このブログ記事について

このページは、n-yagiが2009年9月22日 23:31に書いたブログ記事です。

ひとつ前のブログ記事は「Webディスカッション」です。

次のブログ記事は「メモ:マップカオスを用いた可逆圧縮法」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。