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