HOME > natural science Laboratory

コンピュータ・シミュレーション講座
仮想物理実験室

HTML5による物理シミュレーション環境の構築

HTML5 + Javascript + WebGL を利用した物理シミュレータを構築します。 上記の環境は、現在(2012年2月)まだ標準と言えるところまではいたっていませんが、ウェブブラウザの高機能化にともなって次世代クロスプラットフォームの基幹技術として、今後益々発展していくと考えられている技術です。 最新技術の勉強ついでに、教材目的、プレゼン目的、数値データの3次元ビューアを目的としてのツールを開発していきます。

水素原子の波動関数ビューア(2012.04.06 公開)

分野量子力学
アルゴリズムの導出水素原子のシュレディンガー方程式の解析解
数値積分法解析解のため、数値積分なし
利用 Javascript ライブラリThree.js
(Javascript 並列化計算のための WebWorker 利用)

↓デモ画像(「水素原子の波動関数ビューア」はこちら

特徴

(1)本ビューアは、水素原子の波動関数の解析解を用いて、波動関数の振幅に比例した確率に従って点描画しています(「赤」と「青」は波動関数の正負を表します)。
(2)「K核」「L核」「M核」「N核」の各電子状態の波動関数のそれぞれに計算し(「計算ボタン」をクリック)、「描画」チェック欄にチェックを入れることで、波動関数を描画します(再計算も可)。
(3)「Web worker」と呼ばれるJavascriptの並列化技術を用いています(計算途中でも操作可能)。

今後の発展

(1)摂動論を取り入れた計算 → 磁場を加えることでエネルギー縮退が取れるゼーマン効果の可視化
(2)ヘリウム原子や水素分子の電子状態の可視化

点電荷による電気力線シミュレータ(2012.03.11 公開)

分野電磁気学
アルゴリズムの導出クーロンの法則
数値積分法中心差分法
利用 Javascript ライブラリThree.js

↓デモ画像(「点電荷による電気力線シミュレータ」はこちら

特徴

(1)点電荷からの放射状に電場の向きに応じて線(電気力線)を引いています
(2)「点電荷の設定」欄にて4つの点電荷の電荷と位置を任意に設定し、「リセット」ボタンを押すとシミュレートすることができます
ただし、電荷の単位は電気素量 1.60217733*1E-19[C]、長さの単位は 1E-6[m]です。
(3)電荷の大きさを球の大きさで表現しています。
(4)「結果出力」ボタンを押すと、電気力線の座標をスペース区切りのデータを出力します

今後の発展

(1)等電位面の計算と描画
(2)電荷の数の動的変更

2重振り子シミュレータ(2012.02.20 公開)

分野解析力学+力学系
アルゴリズムの導出直交座標系+ラグランジュ未定定数法
数値積分法4次のルンゲクッタ
利用 Javascript ライブラリThree.js
flotr2

↓デモ画像(「2重振り子シミュレータ」はこちら

特徴

(1)直交座標系で記述した2重振子を4次のルンゲクッタを用いてJavascriptで計算しています
(2)計算結果をリアルタイムにcanvas要素にWebGLを用いて描画しています (canvas要素はjavascriptで動的に生成されています)
(3)グラフ描画ライブラリ flotr2 を利用して、おもりの位置(z座標)とひもの張力をリアルタイムにグラフ描画します
(4)マウスドラックとマウスホイールで視点を移動することができます
(5)各物理量がリアルタイムに表示されます
(6)「スタート」ボタンを押すと、シミュレーションを開始します
(7)「ストップ」ボタンを押すと、仮想物理実験室の時間がストップします
(8)「リセット」ボタンを押すと、フォームで設定した初期条件にてスタートします
(9)「出力」ボタンを押すと、その時刻までの「時間」「張力」「z座標」のスペース区切りのデータを出力します

今後の発展

(1)初期値による「非カオス」or「カオス」の定量的議論(ヤコビ行列の固有値、リアプノフ指数)
(2)カオス時におけるマルチフラクタル解析
(3)N重振り子への拡張

WebGLライブラリThree.js 入門

本稿では新しいWEBページ用の言語であるHTML5+WebGLを利用して、 ウェブブラウザ上で、物理シミュレーションの計算と描画をリアルタイムに実行する「物理シミュレータ」の作成までの手順を記述します。 本稿では、物理シミュレータの例として、任意の初期条件に対する2重振り子の時間発展を4次のルンゲクッタ法を計算する「2重振子シミュレータ」を構築します。 また、本稿では WebGL を簡単に利用することができるWebGLライブラリとして著名な Three.js を用いています。 物理や工学とは無関係に、初めて Three.js を利用する人がチュートリアルとしても利用できることも意図しております。

HTML5による物理シミュレーション環境の構築 ~WebGLライブラリThree.js 入門(1/3)~
HTML5による物理シミュレーション環境の構築 ~WebGLライブラリThree.js 入門(2/3)~
HTML5による物理シミュレーション環境の構築 ~WebGLライブラリThree.js 入門(3/3)~

VisualC++ と OpenGL を利用した仮想物理実験室

第0章 仮想物理実験室の構築

第1章 様々な運動

第2章 ニュートンの運動方程式

第3章 剛体の運動(エネルギー保存則と運動量保存則)

付録

  • 【A-1】参考文献
    ・(A-1-1)OpenGL について
    ・(A-1-2)VisualC++ について
    ・(A-1-3)物理シミュレーション
    ・(A-1-4)数値計算

未分類

力学

量子力学

波動論

【目次】シュレディンガー方程式とマクスウェル方程式

記事リスト





































































▲このページのトップNPO法人 natural science トップ