![]()
编辑推荐 1.本书是一本较为理想的学习分子动力学模拟的入门与提高读物。主要介绍经典分子动力学,以及路径积分分子动力学中所涉及的物理学原理、数值算法、编程实现和实际应用案例。 2.本书采用更现代、实用的知识体系,由简入繁,由简化的微正则系综入手,一步步推广至正则系综和等温等压系综等更趋现实意义的模拟。 3.本书编程实现主要基于python和C++,以及作者主导开发的GPUMD。有助于读者对MD形成更深刻的理解与自研能力。 4.加入作者的GPUMD学习群,还可一同探讨交流MD模拟技术。相关代码托管于github。 内容推荐 本书主要介绍分子动力学模拟中所涉及的物理学原理、数值算法、编程实现和实际应用案例。在简要回顾分子动力学模拟所需的物理知识后,由一个简单的分子动力学模拟程序入手,继而讨论模拟中的重要概念和算法,如模拟盒子与近邻列表技术、经验势函数与机器学习势函数、控温与控压算法、静态性质计算、输运性质计算等。此外,本书还介绍了路径积分分子动力学的量子基础及算法实现等内容。 本书是一本较为理想的学习分子动力学模拟的入门与提高读物,适合高等院校理工科专业的本科生和研究生及其他任何对分子动力学模拟感兴趣的人士阅读。 目录 第1章 分子动力学模拟的物理基础\t001 1.1 牛顿力学\t001 1.1.1 质点力学\t001 1.1.2 粒子系力学\t004 1.1.3 牛顿运动方程的数值积分\t005 1.1.4 Python编程范例:简谐振子运动的数值求解\t007 1.2 分析力学\t008 1.2.1 拉格朗日方程\t008 1.2.2 哈密顿方程\t008 1.2.3 相空间\t010 1.2.4 哈密顿体系运动方程的数值积分\t012 1.3 热力学\t015 1.3.1 基本概念\t015 1.3.2 热力学第一定律\t016 1.3.3 热力学第二定律\t018 1.3.4 热力学函数和关系\t020 1.4 经典统计力学\t024 1.4.1 统计系综和统计分布函数\t024 1.4.2 微正则系综\t025 1.4.3 正则系综\t027 1.4.4 等温等压系综\t034 第2章 简单的分子动力学模拟程序\t035 2.1 简单分子动力学模拟的基本要素\t035 2.1.1 分子动力学模拟的定义\t035 2.1.2 初始条件\t036 2.1.3 边界条件\t037 2.1.4 相互作用\t039 2.1.5 运动方程的数值积分\t041 2.1.6 物理量的计算\t042 2.2 C++编程范例:一个简单的分子动力学模拟程序\t042 2.2.1 程序中使用的单位制\t042 2.2.2 本章程序的源代码解析\t043 2.3 程序的测试\t051 2.3.1 输入的准备\t051 2.3.2 能量守恒的测试\t052 第3章 模拟盒子与近邻列表\t055 3.1 三斜盒子\t055 3.1.1 三斜盒子的定义\t055 3.1.2 三斜盒子情况下的周期边界条件\t057 3.2 近邻列表\t058 3.2.1 为什么要用近邻列表?\t058 3.2.2 自动判断何时更新近邻列表\t059 3.2.3 构建近邻列表的平方标度算法\t059 3.2.4 构建近邻列表的线性标度算法\t060 3.3 C++编程范例:使用近邻列表的分子动力学模拟程序\t061 3.3.1 处理三斜盒子的基本函数\t061 3.3.2 近邻列表平方标度算法的C++实现\t064 3.3.3 近邻列表线性标度算法的C++实现\t065 3.3.4 程序速度测试\t070 3.4 GPUMD程序简介\t071 3.4.1 模型文件\t072 3.4.2 控制文件\t073 3.4.3 GPUMD使用范例:LJ势函数的使用\t073 第4章 经验势函数\t075 4.1 经典势函数的一般性质\t075 4.1.1 经典势函数概览\t075 4.1.2 两体势与多体势的定义\t077 4.1.3 多体势中力的表达式\t078 4.2 两个典型的经验多体势\t080 4.2.1 EAM势\t080 4.2.2 Tersoff势\t081 4.3 C++编程范例:Tersoff势的编程实现\t084 4.3.1 Tersoff势的C++编程实现\t084 4.3.2 验证力的正确性的方法\t088 4.4 GPUMD使用范例:Tersoff势的使用\t089 第5章 机器学习势\t091 5.1 NEP机器学习势\t091 5.1.1 NEP机器学习势的人工神经网络模型\t091 5.1.2 NEP机器学习势的描述符\t093 5.1.3 NEP机器学习势的训练\t101 5.2 NEP与经验势的结合\t104 5.2.1 NEP与ZBL排斥势的结合\t104 5.2.2 NEP与D3色散修正的结合\t105 5.3 GPUMD中NEP机器学习势的使用\t106 5.3.1 NEP机器学习势使用概览\t106 5.3.2 NEP机器学习势训练范例:晶体硅\t108 第6章 控温算法\t111 6.1 Berendsen控温算法\t111 6.2 BDP控温算法\t112 6.3 Nose-Hoover控温算法\t112 6.3.1 NH控温算法的理论推导\t112 6.3.2 Python编程范例:用简谐振子展示NH控温算法的效果\t115 6.4 NHC控温算法\t120 6.4.1 NHC控温算法的理论推导\t120 6.4.2 Python编程范例:用简谐振子展示NHC控温的效果\t122 6.5 朗之万控温算法\t127 6.5.1 理论\t127 6.5.2 Python编程范例:用简谐振子展示朗之万控温的效果\t128 6.6 GPUMD使用范例:几个控温算法的对比\t131 第7章 控压算法\t134 7.1 压强的微观计算与直观理解\t134 7.1.1 多体势中位力和压强的表达式\t134 7.1.2 压强的直观理解\t136 7.2 Berendsen控压算法\t137 7.3 SCR控压算法\t140 7.4 Martyna- Tuckerman-Tobias-Klein控压算法\t141 7.5 GPUMD中控压算法的使用范例\t146 7.5.1 几个控压算法的对比\t146 7.5.2 非各向同性控压\t147 第8章 静态性质\t150 8.1 统计误差\t150 8.1.1 理论基础\t150 8.1.2 GPUMD使用范例:计算温度和压强的平均值与统计误差\t152 8.2 GPUMD使用范例:热膨胀模拟\t155 8.3 径向分布函数\t159 8.3.1 理论基础\t159 8.3.2 Python编程范例:径向分布函数的编程实现\t160 8.3.3 GPUMD使用范例:水的径向分布函数\t162 8.4 自由能计算\t164 8.4.1 自由能微扰理论\t164 8.4.2 热力学积分方法\t165 8.4.3 GPUMD使用范例:计算固体的自由能\t169 8.4.4 自由能的温度积分\t170 8.4.5 GPUMD使用范例:自由能计算的温度积分方法\t172 第9章 输运性质\t174 9.1 线性响应理论与时间关联函数\t174 9.2 自扩散系数\t177 9.2.1 C++编程范例:均方位移和速度自关联函数的编程实现\t178 9.2.2 GPUMD使用范例:计算液态硅的自扩散系数\t180 9.3 黏滞系数\t184 9.3.1 GPUMD使用范例:计算液态硅的黏滞系数\t185 9.4 热导率\t187 9.4.1 热输运的平衡态分子动力学模拟\t187 9.4.2 热输运的均匀非平衡分子动力学模拟方法\t190 9.4.3 热输运的非均匀非平衡分子动力学模拟\t191 9.5 GPUMD使用范例:晶体硅热导率计算\t193 9.5.1 EMD模拟\t193 9.5.2 HNEMD模拟\t194 9.5.3 NEMD模拟\t196 9.5.4 热流的谱分解\t198 第10章 路径积分分子动力学\t205 10.1 量子力学\t205 10.1.1 量子力学的基本原理\t205 10.1.2 坐标表象的量子力学\t209 10.2 量子统计系综\t211 10.3 路径积分量子统计力学\t212 10.4 路径积分分子动力学的算法\t215 10.4.1 珠子项链体系的哈密顿量\t215 10.4.2 运动方程与数值积分\t215 10.4.3 PIMD中的朗之万热浴\t217 10.5 Python编程范例:路径积分分子动力学的积分算法\t218 10.6 GPUMD使用范例:用PIMD计算水的径向分布函数\t222 第11章 总结与展望\t224 11.1 势函数\t224 11.2 积分算法\t225 11.3 物理量的测量\t226 参考文献\t228 |