これは3次元空間中の音波伝搬の物理シミュレーションのデモプログラムです。空間は流体で満たされています。また,Mur の1次吸収境界条件を備えています。(Mur の1次吸収境界条件は,最善の性能というわけではありませんが,もっとも簡単な吸収境界条件のうちの一つです。)
このプログラムでは「3次元音響 FDTD 法 (finite-difference time-domain; 有限差分時間領域法)」の方程式を解いています。暗い部分は空気(332 m/s),明るい楕円状の部分は空気とヘリウムの混合気体(718 m/s)から成ります。グリッドの解像度は 15 mm/pixel,時間刻みは 12 μs/step (μs = マイクロ秒 = 1/1000000 秒)です。1 kHz の正弦波1波(ハン窓を掛けたもの)を送波しています。
お楽しみいただけましたら幸いです。
このプログラムは Windows 上の Opera 26 (Blink),Firefox 31 (Gecko),Internet Explorer 11,および Spartan でテストされました。おそらく HTML5 と WebGL に対応したスマートフォンでも動作します。 また,Blink, WebKit と Gecho ブラウザではタッチ操作にも対応しています。 計算速度はお使いの PC の速度に依存します。Intel Core i3 以上を推奨します。 また,3次元レンダリングに WebGL 技術を利用しているため,3次元描画の性能は CPU 速度に加えて GPU の性能にも依存します。
Safari 5.1 から 7.1 のユーザは下記の設定をおこなって下さい:
- [Safari] メニューから [環境設定] を開く。
- その後,[詳細] タブを開く。
- その後,ウインドウ下部の [メニューバーに"開発"メニューを表示] にチェックを入れる。
- 最後に,[開発] メニューの [WebGL を有効にする] を選択する。
(Yosemite (Safari 8) のユーザーは上記の操作は不要です。)
3次元弾性FDTD法などを含め,FDTD法についてのさらに詳しい情報は作者の論文をご参照下さい。
⇒ http://ultrasonics.jp/nagatani/
シミュレーションの可視化についての有意義なアイデア提供していただくとともにプログラムをテストしていただいた橘亮輔氏 (@ro_tachi)(東京大学)に深く感謝します。また,ゲヒルン株式会社の茨木隆彰氏には,コードのレビューとコーディングにおける重要なコメントを頂きました。ここに感謝の意を表します。
また,3次元レンダリングには three.js ライブラリを利用しました。この強力なライブラリの開発に寄与された皆様に謝意を表します。