ここは、計算物理春の学校2026 個別講義D-4 「無衝突系の運動論シミュレーション入門」で用いるプログラム置き場です。
- FDS: 有限差分法
- FVS: 有限体積法
- Vlasov: 運動論シミュレーション
- common: 共通C++プログラムとPython可視化補助
C++とPythonプログラムが準備されていますので、お好きな方をご利用ください。
そのまま使うもよし、機能を追加するもよし、自作の参考にするもよしです。
講義ではPythonを用います。
ローカル環境で使う場合は、ご自身のPCにファイルをダウンロードするか、
git clone https://github.com/minoshim/Num_Analysis.git
してください。
クラウド環境で使う場合は、Google Colabを使いますので、Googleアカウントをご準備ください。
ディレクトリPyの先にあるmain.pyがバッチファイル、hoge.ipynbがノートブックです(一部、main.pyのみの補助プログラムもあります)。
バッチファイルをローカル環境で使う場合は、numpy, scipy, matplotlibがインストール済みのPythonを準備します。
使いたい課題のディレクトリに移動してから、例えば
cd FDS/Py/Adv
python main.py
のように実行します。Pythonの対話環境から実行する場合は、
exec(open("main.py").read())
とすると計算が行われます。
ノートブックをクラウド環境で使う場合は、例えば
https://github.com/minoshim/Num_Analysis/blob/main/FDS/Py/Adv/fds_adv.ipynb
のURLを
https://colab.research.google.com/github/minoshim/Num_Analysis/blob/main/FDS/Py/Adv/fds_adv.ipynb
と変更すると、Google Colabで開くことができます。
(https://github.com/をhttps://colab.research.google.com/github/に変更しています)
また、ノートブックがあるディレクトリのREADMEに設置されている「Open In Colab」ボタンをクリックすることでも開くことができます。
ローカルのLinux環境(Windows Subsystem for Linuxを含む。多分Macも可)での利用を想定しています。
C++コンパイラとmakeをインストールしてください。
まず、commonディレクトリにあるMakefile.incで、ご自身の環境に合わせてコンパイラとコンパイラオプションを変更してください。
変更したら、commonディレクトリにて
cd common
make clean
make
とし、bound.oが作成されるか確認してください。
ここまでうまくいったら、課題のディレクトリに移動し、
cd ../FDS/C++/Adv
make
./a.out
とすることで、プログラムが実行されます。上のFDS/C++/Advは例ですので、実行したい課題のディレクトリ(例: FDS/C++/Diff, FVS/C++/Adv, Vlasov/Elesta/C++/landauなど)に置き換えてください。
計算結果はPythonで可視化することができます(numpyとmatplotlibが必要)。読み込み用のバッチファイルbatch1d.pyなどが準備されていますので、pythonを実行して、
exec(open("batch1d.py").read())
とします。するとInput data directory (Ctrl-D to exit):と聞かれますから、計算を実行したディレクトリであれば.と答えて計算結果を読み込みます。2次元Poisson問題ではbatch2d.py、Vlasov問題ではbatch_f.pyを使います。
詳しくはバッチファイルの中身をご覧ください。