倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

シミュレーションをする人が行うこと

物理シミュレーション(シミュレーション)のためのフレームワークを開発するにあたって、まず、シミュレーションをする人が何をするのかを考えましょう。分野を限定せずに書けるのは以下の程度のことでしょう:

  1. 物理系をモデリングする。
  2. モデルをシミュレーション・プログラムに落とし込む。
  3. シミュレーションを実行する。
  4. シミュレーション結果を実験結果と比較する。

さて、シミュレーション・フレームワークが提供するべき機能とはどれかと考えると、ステップ 2, 3 の「モデルをシミュレーション・プログラムに落とし込む」「シミュレーションを実行する」でしょう。 もう少しブラックボックス的に書くと、物理系のモデルで得られた何らかの成果物を入力にして、シミュレーションを実行するオブジェクトを出力(生成)する、というプログラムというのがシミュレーション・フレームワークとなります。

ちなみに、「1.物理系をモデリングする」というのは、元々の目標「物理理論・物理法則をオブジェクト・モデルに落とし込む」に当てはまります。 このモデリングの成果物がどうなるかはまた後日考えましょう。

また、「4.シミュレーション結果を実験結果と比較する」で行うことは大抵統計学による解析ですが、こういったことはそれ用のソフトウェアが沢山あるので、これはフレームワーク中には含めません。 ただし、そういったソフトウェアで読み込めるような形式で出力できるようにしなければなりません。 また、デモとしてのシミュレーションなどでは、リアルタイム&ビジュアルに表示出来るのが望ましいでしょう。 したがって、上記のステップには書いてませんでしたが、結果の出力(もっと言えば、シミュレーション自体)の分析・設計も必要ですね。 これは「2.モデルをシミュレーション・プログラムに落とし込む」の箇所で行うのが自然でしょう。 これも後日。