本書將分子動力學(xué)理論與應(yīng)用相結(jié)合,以高質(zhì)量的代碼呈現(xiàn)分子動力學(xué)模擬的底層邏輯與實(shí)現(xiàn)形式。內(nèi)容上,本書將在介紹分子動力學(xué)模擬的經(jīng)典力學(xué)基礎(chǔ)、熱力學(xué)與經(jīng)典統(tǒng)計力學(xué)基礎(chǔ)之上,通過一個簡單的分子動力學(xué)模擬程序引導(dǎo)讀者從零構(gòu)建模擬程序。此后,再逐步上升到模擬的高階知識,如模擬盒子與近鄰列表、經(jīng)驗(yàn)勢函數(shù)與機(jī)器學(xué)習(xí)勢函數(shù)、控溫與控壓算法、平衡態(tài)性質(zhì)、輸運(yùn)性質(zhì)的計算、基于路徑積分的量子分子動力學(xué)模擬等內(nèi)容。
第1章 分子動力學(xué)模擬的物理基礎(chǔ) 001
1.1 牛頓力學(xué) 001
1.1.1 質(zhì)點(diǎn)力學(xué) 001
1.1.2 粒子系力學(xué) 004
1.1.3 牛頓運(yùn)動方程的數(shù)值積分 005
1.1.4 Python編程范例:簡諧振子運(yùn)動的數(shù)值求解 007
1.2 分析力學(xué) 008
1.2.1 拉格朗日方程 008
1.2.2 哈密頓方程 008
1.2.3 相空間 010
1.2.4 哈密頓體系運(yùn)動方程的數(shù)值積分 012
1.3 熱力學(xué) 015
1.3.1 基本概念 015
1.3.2 熱力學(xué)第一定律 016
1.3.3 熱力學(xué)第二定律 018
1.3.4 熱力學(xué)函數(shù)和關(guān)系 020
1.4 經(jīng)典統(tǒng)計力學(xué) 024
1.4.1 統(tǒng)計系綜和統(tǒng)計分布函數(shù) 024
1.4.2 微正則系綜 025
1.4.3 正則系綜 027
1.4.4 等溫等壓系綜 034
第2章 簡單的分子動力學(xué)模擬程序 035
2.1 簡單分子動力學(xué)模擬的基本要素 035
2.1.1 分子動力學(xué)模擬的定義 035
2.1.2 初始條件 036
2.1.3 邊界條件 037
2.1.4 相互作用 039
2.1.5 運(yùn)動方程的數(shù)值積分 041
2.1.6 物理量的計算 042
2.2 C++編程范例:一個簡單的分子動力學(xué)模擬程序 042
2.2.1 程序中使用的單位制 042
2.2.2 本章程序的源代碼解析 043
2.3 程序的測試 051
2.3.1 輸入的準(zhǔn)備 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)建近鄰列表的平方標(biāo)度算法 059
3.2.4 構(gòu)建近鄰列表的線性標(biāo)度算法 060
3.3 C++編程范例:使用近鄰列表的分子動力學(xué)模擬程序 061
3.3.1 處理三斜盒子的基本函數(shù) 061
3.3.2 近鄰列表平方標(biāo)度算法的C++實(shí)現(xiàn) 064
3.3.3 近鄰列表線性標(biāo)度算法的C++實(shí)現(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)驗(yàn)勢函數(shù) 075
4.1 經(jīng)典勢函數(shù)的一般性質(zhì) 075
4.1.1 經(jīng)典勢函數(shù)概覽 075
4.1.2 兩體勢與多體勢的定義 077
4.1.3 多體勢中力的表達(dá)式 078
4.2 兩個典型的經(jīng)驗(yàn)多體勢 080
4.2.1 EAM勢 080
4.2.2 Tersoff勢 081
4.3 C++編程范例:Tersoff勢的編程實(shí)現(xiàn) 084
4.3.1 Tersoff勢的C++編程實(shí)現(xiàn) 084
4.3.2 驗(yàn)證力的正確性的方法 088
4.4 GPUMD使用范例:Tersoff勢的使用 089
第5章 機(jī)器學(xué)習(xí)勢 091
5.1 NEP機(jī)器學(xué)習(xí)勢 091
5.1.1 NEP機(jī)器學(xué)習(xí)勢的人工神經(jīng)網(wǎng)絡(luò)模型 091
5.1.2 NEP機(jī)器學(xué)習(xí)勢的描述符 093
5.1.3 NEP機(jī)器學(xué)習(xí)勢的訓(xùn)練 101
5.2 NEP與經(jīng)驗(yàn)勢的結(jié)合 104
5.2.1 NEP與ZBL排斥勢的結(jié)合 104
5.2.2 NEP與D3色散修正的結(jié)合 105
5.3 GPUMD中NEP機(jī)器學(xué)習(xí)勢的使用 106
5.3.1 NEP機(jī)器學(xué)習(xí)勢使用概覽 106
5.3.2 NEP機(jī)器學(xué)習(xí)勢訓(xùn)練范例:晶體硅 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 壓強(qiáng)的微觀計算與直觀理解 134
7.1.1 多體勢中位力和壓強(qiáng)的表達(dá)式 134
7.1.2 壓強(qiáng)的直觀理解 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使用范例:計算溫度和壓強(qiáng)的平均值與統(tǒng)計誤差 152
8.2 GPUMD使用范例:熱膨脹模擬 155
8.3 徑向分布函數(shù) 159
8.3.1 理論基礎(chǔ) 159
8.3.2 Python編程范例:徑向分布函數(shù)的編程實(shí)現(xiàn) 160
8.3.3 GPUMD使用范例:水的徑向分布函數(shù) 162
8.4 自由能計算 164
8.4.1 自由能微擾理論 164
8.4.2 熱力學(xué)積分方法 165
8.4.3 GPUMD使用范例:計算固體的自由能 169
8.4.4 自由能的溫度積分 170
8.4.5 GPUMD使用范例:自由能計算的溫度積分方法 172
第9章 輸運(yùn)性質(zhì) 174
9.1 線性響應(yīng)理論與時間關(guān)聯(lián)函數(shù) 174
9.2 自擴(kuò)散系數(shù) 177
9.2.1 C++編程范例:均方位移和速度自關(guān)聯(lián)函數(shù)的編程實(shí)現(xiàn) 178
9.2.2 GPUMD使用范例:計算液態(tài)硅的自擴(kuò)散系數(shù) 180
9.3 黏滯系數(shù) 184
9.3.1 GPUMD使用范例:計算液態(tài)硅的黏滯系數(shù) 185
9.4 熱導(dǎo)率 187
9.4.1 熱輸運(yùn)的平衡態(tài)分子動力學(xué)模擬 187
9.4.2 熱輸運(yùn)的均勻非平衡分子動力學(xué)模擬方法 190
9.4.3 熱輸運(yùn)的非均勻非平衡分子動力學(xué)模擬 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章 路徑積分分子動力學(xué) 205
10.1 量子力學(xué) 205
10.1.1 量子力學(xué)的基本原理 205
10.1.2 坐標(biāo)表象的量子力學(xué) 209
10.2 量子統(tǒng)計系綜 211
10.3 路徑積分量子統(tǒng)計力學(xué) 212
10.4 路徑積分分子動力學(xué)的算法 215
10.4.1 珠子項(xiàng)鏈體系的哈密頓量 215
10.4.2 運(yùn)動方程與數(shù)值積分 215
10.4.3 PIMD中的朗之萬熱浴 217
10.5 Python編程范例:路徑積分分子動力學(xué)的積分算法 218
10.6 GPUMD使用范例:用PIMD計算水的徑向分布函數(shù) 222
第11章 總結(jié)與展望 224
11.1 勢函數(shù) 224
11.2 積分算法 225
11.3 物理量的測量 226
參考文獻(xiàn) 228