はじめまして。TSUBAME研のレジェル(@rejell55)です。

TSUBAME研は以下のキーワードをメインとして研究や製作を行っていく研究室としてつい先日新たに立ち上がりました。
  • 数値シミュレーション
  • 並列処理
  • GPUコンピューティング
  • 可視化
特に、僕の中では実際にモノを作るのが難しいもの見た目がよりきれいなもののように、計算機や数値シミュレーションだからこそできることをやっていきたいと考えています。

さて、製作物の紹介ということでだいぶ昔の話になりますが、新歓展示で「Webカメラを用いた流体シミュレータ」と題しまして、Webカメラを利用して物体の形状を検出し流体のシミュレーションを行うといったものを展示 しました。
今回はそれについて紹介させていただきます。
まず、実際にシミュレーションを行った動画がこちらになります。上が流速ベクトル、下が渦度(渦の強さ)をプロットしているものになります。





この展示物の簡単な原理の紹介を第2回rogyゼミにて行いました。スライドはこちらになります。



今回私が流体シミュレータを作ったのは、数値計算の理論を少し勉強してみたかった、ということがあります。実際この流体の計算の部分に関してはほとんどが既存のアルゴリズムで実装されています。
一応新歓展示ということでWebカメラを使って少しだけコンテンツ性を出そうと努力はしましたが、一番やりたかったことは数値シミュレーションの勉強をするということです。

それでは実際にどのように計算を行っているのか、ということですが、つい先日行われた前期研究報告会(たぶんそのうち記事が上がるはずです)にてその内容を発表しました。



多くの物理現象は微分方程式の形で表されます。特に、場が関わってくるような問題は時間に加えて位置の偏微分が含まれた形の方程式となります。微分方程式をコンピュータで計算させる際には、時間や位置などの連続なものを区切って離散化を行ってから計算を行います。
このスライドにもあるように、偏微分方程式の離散化の結果未知数がたくさん登場し、結果連立1次方程式を解くという問題に帰着されることも多々あります。
実は流体シミュレータの計算時間のほとんどは連立1次方程式を解く時間に割かれています。それは, 何万~何十万といった数の連立1次方程式を解かなければならないからです。
このように連立1次方程式を解く問題はあらゆる場面で登場するため、この問題はそれだけで一つの学問をなすくらい重要な問題となっています。

今後の課題としては、より高速な計算を目指すためにより計算効率のよいマルチグリッド法の実装を目指したり、並列処理によって高速な計算を行わせることを考えています。
ただ、少し流体に飽きてきた感じもあるので少し別のテーマにも手を出してみようかな、と考えているところです。具体的にはまだ未定です。