./build.sh
./main NUM_OBJECTS PATH_TO_DATA (euler|heun|middle)
e.g.) ./main 8 data/single_simple.dat middle
euler = オイラー法, heun = ホイン法, middle = 中点法
key | 動作 |
---|---|
Q | 終了 |
A | 再生スピード一段階ダウン |
D | 再生スピード一段階アップ |
- ステータス表示、フィールドの描画の際にその記号を用いる。
- いつもどおりエスケープシーケンスにより着色で実現した。
- structにsymbolという文字列をもたせ、描画するようにした。
- オイラー法
- ホイン法 (
my_update_params_heuns
) - 中点法 (
my_update_middle_point_method
)
を実装した。いずれも2次精度のアルゴリズムであり、1次精度のオイラー法よりも精度が優れている。4次ルンゲ=クッタ法への拡張も容易であるが、そもそも描画がgnuplotなどの高解像度な画像ではなく、高々40x75程度の整数gridであるため、精度による検証をするような問題設定ではなかったため、2次精度までとして解法のバリエーションを増やした。 これらの解法はコマンドライン引数によって選択できるようになっている。
-
pthreadを用いて
- 'Q'を押すと終了
- 'A'を押すと一段階speedダウン
- 'D'を押すと一段階speedアップ
という効果をリアルタイムで付けた。これにより、シミュレーション中にspeedの自由自在な調整ができるようになった。ターミナルや環境、特にdisplayのFPSによっては画面のちらつきが目立つかもしれない。
東京大学2021年度Aセメスター「ソフトウェア2」の発展課題として実装