研究内容

大規模分子動力学法コードの開発と相転移現象の解析

大規模並列分子動力学法コードを開発し、それを使って相転移現象を調べています。短距離古典分子動力学法コード「MDACP」は、C++で記述されたMPI/OpenMPのハイブリッド並列コードです。超並列計算機、例えば「京」コンピュータフルノード(82944ノード、663552コア)で高効率で実行できます。このコードを用いて、「京」で急減圧シミュレーションを実行しました。液体を急減圧すると、多数の気泡が発生し、相互作用により大きな気泡がより大きく、小さな気泡がより小さくなる「オストワルド成長」が起きます。その時間発展を解析し、オストワルド成長の古典論であるLSW(Lifshitz-Slyozov-Wagner)理論でよく記述されることを確認しました。今後は流れと相互作用がカップルした系の研究を行う予定です。

京コンピュータ4096ノード、数億原子を用いて計算した多重気泡生成シミュレーション

参考文献:
1. HW, M. Suzuki, H. Inaoka, and N. Ito, J. Chem. Phys. 141 234703 (2014) 多重気泡生成過程の解析
2. HW, M. Suzuki, and N. Ito, Prog. Theor. Phys. 126 203-235 (2011) 並列分子動力学法コードの開発と高速化
3. HW, K. M. Nakagawa, Comput. Phys. Commun., 237, 1-7 (2019)力計算のAVX2やAVX-512を用いたSIMD化 (関連リポジトリ)

数値計算アルゴリズムの開発

プログラムが好きな人なら「ビット演算」という言葉を聞いたことがあるかもしれません。ビット演算は、整数を「0」か「1」のビットで表記して、それぞれビットごとに演算を行う、(古典計算機における)究極の並列計算です。このビット演算を駆使して、「任意の確率で独立にビットを立てる高速なアルゴリズム」を開発しました。それぞれのビットが確率pで1になるようなNビットのビット列が欲しいとします。普通にやるとN回の乱数が必要になりますが、我々はBinomial-Shuffle法、Poisson-OR法、有限桁法の三種類を提案し、そのハイブリッドアルゴリズムを構築することで高速に所望のビット列が生成できることを示しました。


参考文献:
1. HW, S. Morita, S. Todo, N. Kawashima, J. Phys. Soc. Jpn. 88, 024004 (2019) アルゴリズムの解説 (関連リポジトリ)

分子動力学計算手法の理論解析

分子動力学法は、ニュートンの運動方程式を数値的に解く手法であり、時間発展は通常シンプレクティックになります。しかし、実際に「使う」ためには、温度制御や圧力制御が必要となり、その場合の時間発展がどういうものなのかはよくわかっていません。例えば、温度制御法として広く使われているNose-Hoover法を調和振動子に適用すると、エルゴード性が破れてうまく制御ができません。また、時間積分には通常は「シンプレクティック積分」を用いますが、温度制御などをしていると時間発展がシンプレクティックではなくなるため、そのままではシンプレクティック積分が適用できません。なぜエルゴード性が破れてしまうのか?シンプレクティックでない時間発展をする系にはどのような数値積分手法を用いればよいのか?このように「分子動力学法の手法そのもの」の理論解析も行っています。

参考文献:
1. HW and H. Kobayashi, Phys. Rev. E, 75, 040102(R) (2007) Nose-Hoover型の熱浴は、一変数ではどうやってもエルゴード性が破れる場合があることを理論的に証明。
2. HW, Chem. Phys. 149, 154101 (2018) 非ハミルトン系において、ナイーブにVelocity Verlet法を適用した場合の安定性を厳密に解析。