本書將分子動力學理論與應(yīng)用相結(jié)合,以高質(zhì)量的代碼呈現(xiàn)分子動力學模擬的底層邏輯與實現(xiàn)形式。內(nèi)容上,本書將在介紹分子動力學模擬的經(jīng)典力學基礎(chǔ)、熱力學與經(jīng)典統(tǒng)計力學基礎(chǔ)之上,通過一個簡單的分子動力學模擬程序引導(dǎo)讀者從零構(gòu)建模擬程序。此后,再逐步上升到模擬的高階知識,如模擬盒子與近鄰列表、經(jīng)驗勢函數(shù)與機器學習勢函數(shù)、控溫與控壓算法、平衡態(tài)性質(zhì)、輸運性質(zhì)的計算、基于路徑積分的量子分子動力學模擬等內(nèi)容。
第1章 分子動力學模擬的物理基礎(chǔ) 001
1.1 牛頓力學 001
1.1.1 質(zhì)點力學 001
1.1.2 粒子系力學 004
1.1.3 牛頓運動方程的數(shù)值積分 005
1.1.4 Python編程范例:簡諧振子運動的數(shù)值求解 007
1.2 分析力學 008
1.2.1 拉格朗日方程 008
1.2.2 哈密頓方程 008
1.2.3 相空間 010
1.2.4 哈密頓體系運動方程的數(shù)值積分 012
1.3 熱力學 015
1.3.1 基本概念 015
1.3.2 熱力學第一定律 016
1.3.3 熱力學第二定律 018
1.3.4 熱力學函數(shù)和關(guān)系 020
1.4 經(jīng)典統(tǒng)計力學 024
1.4.1 統(tǒng)計系綜和統(tǒng)計分布函數(shù) 024
1.4.2 微正則系綜 025
1.4.3 正則系綜 027
1.4.4 等溫等壓系綜 034
第2章 簡單的分子動力學模擬程序 035
2.1 簡單分子動力學模擬的基本要素 035
2.1.1 分子動力學模擬的定義 035
2.1.2 初始條件 036
2.1.3 邊界條件 037
2.1.4 相互作用 039
2.1.5 運動方程的數(shù)值積分 041
2.1.6 物理量的計算 042
2.2 C++編程范例:一個簡單的分子動力學模擬程序 042
2.2.1 程序中使用的單位制 042
2.2.2 本章程序的源代碼解析 043
2.3 程序的測試 051
2.3.1 輸入的準備 051
2.3.2 能量守恒的測試 052
第3章 模擬盒子與近鄰列表 055
3.1 三斜盒子 055
3.1.1 三斜盒子的定義 055
3.1.2 三斜盒子情況下的周期邊界條件 057
3.2 近鄰列表 058
3.2.1 為什么要用近鄰列表? 058
3.2.2 自動判斷何時更新近鄰列表 059
3.2.3 構(gòu)建近鄰列表的平方標度算法 059
3.2.4 構(gòu)建近鄰列表的線性標度算法 060
3.3 C++編程范例:使用近鄰列表的分子動力學模擬程序 061
3.3.1 處理三斜盒子的基本函數(shù) 061
3.3.2 近鄰列表平方標度算法的C++實現(xiàn) 064
3.3.3 近鄰列表線性標度算法的C++實現(xiàn) 065
3.3.4 程序速度測試 070
3.4 GPUMD程序簡介 071
3.4.1 模型文件 072
3.4.2 控制文件 073
3.4.3 GPUMD使用范例:LJ勢函數(shù)的使用 073
第4章 經(jīng)驗勢函數(shù) 075
4.1 經(jīng)典勢函數(shù)的一般性質(zhì) 075
4.1.1 經(jīng)典勢函數(shù)概覽 075
4.1.2 兩體勢與多體勢的定義 077
4.1.3 多體勢中力的表達式 078
4.2 兩個典型的經(jīng)驗多體勢 080
4.2.1 EAM勢 080
4.2.2 Tersoff勢 081
4.3 C++編程范例:Tersoff勢的編程實現(xiàn) 084
4.3.1 Tersoff勢的C++編程實現(xiàn) 084
4.3.2 驗證力的正確性的方法 088
4.4 GPUMD使用范例:Tersoff勢的使用 089
第5章 機器學習勢 091
5.1 NEP機器學習勢 091
5.1.1 NEP機器學習勢的人工神經(jīng)網(wǎng)絡(luò)模型 091
5.1.2 NEP機器學習勢的描述符 093
5.1.3 NEP機器學習勢的訓練 101
5.2 NEP與經(jīng)驗勢的結(jié)合 104
5.2.1 NEP與ZBL排斥勢的結(jié)合 104
5.2.2 NEP與D3色散修正的結(jié)合 105
5.3 GPUMD中NEP機器學習勢的使用 106
5.3.1 NEP機器學習勢使用概覽 106
5.3.2 NEP機器學習勢訓練范例:晶體硅 108
第6章 控溫算法 111
6.1 Berendsen控溫算法 111
6.2 BDP控溫算法 112
6.3 Nose-Hoover控溫算法 112
6.3.1 NH控溫算法的理論推導(dǎo) 112
6.3.2 Python編程范例:用簡諧振子展示NH控溫算法的效果 115
6.4 NHC控溫算法 120
6.4.1 NHC控溫算法的理論推導(dǎo) 120
6.4.2 Python編程范例:用簡諧振子展示NHC控溫的效果 122
6.5 朗之萬控溫算法 127
6.5.1 理論 127
6.5.2 Python編程范例:用簡諧振子展示朗之萬控溫的效果 128
6.6 GPUMD使用范例:幾個控溫算法的對比 131
第7章 控壓算法 134
7.1 壓強的微觀計算與直觀理解 134
7.1.1 多體勢中位力和壓強的表達式 134
7.1.2 壓強的直觀理解 136
7.2 Berendsen控壓算法 137
7.3 SCR控壓算法 140
7.4 Martyna- Tuckerman-Tobias-Klein控壓算法 141
7.5 GPUMD中控壓算法的使用范例 146
7.5.1 幾個控壓算法的對比 146
7.5.2 非各向同性控壓 147
第8章 靜態(tài)性質(zhì) 150
8.1 統(tǒng)計誤差 150
8.1.1 理論基礎(chǔ) 150
8.1.2 GPUMD使用范例:計算溫度和壓強的平均值與統(tǒng)計誤差 152
8.2 GPUMD使用范例:熱膨脹模擬 155
8.3 徑向分布函數(shù) 159
8.3.1 理論基礎(chǔ) 159
8.3.2 Python編程范例:徑向分布函數(shù)的編程實現(xiàn) 160
8.3.3 GPUMD使用范例:水的徑向分布函數(shù) 162
8.4 自由能計算 164
8.4.1 自由能微擾理論 164
8.4.2 熱力學積分方法 165
8.4.3 GPUMD使用范例:計算固體的自由能 169
8.4.4 自由能的溫度積分 170
8.4.5 GPUMD使用范例:自由能計算的溫度積分方法 172
第9章 輸運性質(zhì) 174
9.1 線性響應(yīng)理論與時間關(guān)聯(lián)函數(shù) 174
9.2 自擴散系數(shù) 177
9.2.1 C++編程范例:均方位移和速度自關(guān)聯(lián)函數(shù)的編程實現(xiàn) 178
9.2.2 GPUMD使用范例:計算液態(tài)硅的自擴散系數(shù) 180
9.3 黏滯系數(shù) 184
9.3.1 GPUMD使用范例:計算液態(tài)硅的黏滯系數(shù) 185
9.4 熱導(dǎo)率 187
9.4.1 熱輸運的平衡態(tài)分子動力學模擬 187
9.4.2 熱輸運的均勻非平衡分子動力學模擬方法 190
9.4.3 熱輸運的非均勻非平衡分子動力學模擬 191
9.5 GPUMD使用范例:晶體硅熱導(dǎo)率計算 193
9.5.1 EMD模擬 193
9.5.2 HNEMD模擬 194
9.5.3 NEMD模擬 196
9.5.4 熱流的譜分解 198
第10章 路徑積分分子動力學 205
10.1 量子力學 205
10.1.1 量子力學的基本原理 205
10.1.2 坐標表象的量子力學 209
10.2 量子統(tǒng)計系綜 211
10.3 路徑積分量子統(tǒng)計力學 212
10.4 路徑積分分子動力學的算法 215
10.4.1 珠子項鏈體系的哈密頓量 215
10.4.2 運動方程與數(shù)值積分 215
10.4.3 PIMD中的朗之萬熱浴 217
10.5 Python編程范例:路徑積分分子動力學的積分算法 218
10.6 GPUMD使用范例:用PIMD計算水的徑向分布函數(shù) 222
第11章 總結(jié)與展望 224
11.1 勢函數(shù) 224
11.2 積分算法 225
11.3 物理量的測量 226
參考文獻 228