数值模拟导论 -第十七、十八讲 分子动态学 分子动态学 分子动态学是计算经典的多体系统的平衡性和非平 衡性的一种技术 *连续粒子的原子运动遵循经典的机械定律(牛顿定 律) 参考资料: 1.液体计算机模拟, M.P. Allen & D.J. Tildesley, Clarendon, Oxford, 1987. 2.了解分子模拟:从计算到应用, D. Frenkel and B. Smit, Academic Press, 1997. 3.Moldy手册 Moldy z免费的分子动态学模拟资料压缩包可以在 CCP5程序库 ( http://www.ccp5.ac.uk/librar.shtml) 的 Moldy中下载,该网页中还有各种非常有用的 信息和分子模拟工具。 zMoldy 简单易用,并附有一个很好的手册可 参考帮助,我希望布置的家庭作业可以借助 Moldy来完成。 我们为什么要研究分子动态学? nF= =数字密度, 流量 类似真实实验 1.让我们去研究和理解材料性能以便我们建立模型 2.告诉我们答案是什么,什么时候模型不存在 质量守恒: 实例:不收敛方程 极限: z该方程只有给定n和F的关系才能求解 z实验或分子性能表明在不同条件下 方程不收敛! Kn 1 Kn 1 0.1 Kn 1 线性梯度连续定律 z大梯度 z不平衡气态流动 -冲击波 -小量流动 (高努森数字流动) -稀薄流动(低密度) (高努森数字流动) 高努森数字流动(气体) zKn为分子平均自由路径比率,表示纵向尺度 z分子平均自由路径分子两次碰撞间隔间的平均运动距离 z碰撞趋向于回复平衡 时,粒子运动是扩散的(接近平衡) 时,粒子运动是扩散的(远离平衡) 时,物理性能变化不定(难于建立模型) 的分解 z当 z当 z当 其它高努森数字流动 z小尺度流动(在空气压力接近60纳米时 的平均自由路径) z真空技术(低压状态) z在高空气流密度低(分子碰撞几率小) z较长的平均自由路径 z典型的高努森数字流动实例 实例: 再进入交通工具的高空飞机制动 SMA-HPC ?2003 MIT 简要介绍统计力学 统计力学为物质的微观描述(如分子的位置和速度) 和诸如肉眼可见的压力、密度、温度等宏观描述之间提 供了理论联系。 这种联系时通过统计方法和总体均值的概念获得的, 一个整体是由很多个同一的的系统( M)在相同的宏观 条件不同的微观初始条件下逐渐演变而成的集合体 令 为系统在状态 下的分子, i则 可以理解为在状态 下找到全体分子的可能性 k z宏观特性(可见的)为加权平均值 或者为其连续极限 z统计力学的一个最基本的结果就是一个系统在固定温度 T 时,能量为 E的系统达到平衡状态的可能性, 确定,其中 z分子方法类似于试验方法,直接测量 即可,不用计算ρ (Γ )。 为玻耳兹曼常数。它由 z对于非平衡系统,问题的求解则变成计算ρ (Γ ). 表示一个给定的全体系统,任一可见的 -由于系统的初始状态和其它时间状态有一一对应的关 系,多个系统初始状态和一个系统不同时间状态是等同的。 可通过多个系统 值的加权平均来测定。 但是,实际上我们不需要用很多个系统来做实验。我们通 常是观察一个系统的不同时间段来测定,这是因为我们采用 了各态历经的假设。 -各态历经假设允许我们将求多个系统的均值转化为求同 一系统不同时间段的均值,这看起来是一个在大多数的情况 下都非常好用的假设。 一个简化的 MD程序结构 tt= 最后 tt> 平衡 z初始化: -读入运行参数(初始参数,时间步数,密度,粒子数, 时间步长) -生成或读取初始配置(粒子的位置和速度) -计算粒子受力 -对运动方程积分 -若 z结果输出 ,系统达到平衡状态 z循环时间步增量,直到 运动方程 牛顿定律 因而 其中 包含了三个实体的交互影响 Lennard-Jones势能 ε σ 常用的最简单的势能为 Lennard-Jones 势能 典型的应用是模拟简单液体和固体 为井深(能量) 为交互长度比例 时强烈排斥 时电势最小 时弱相吸 Lennard-Jones势能( U)和受力( F)为间距( r)的函数 约化单元 zLennard-Jones粒子的运动方程积分的合适 的时间步长是多少? zLennard-Jones分子组成的液体 /气体的密度 是多少? zLennard-Jones液体的汽化温度是多少? 32 10 ? 分子密度 温度 压强 时间 z对于所有 Lennard-Jones分子,结果有效 必定有误!)z点误差放宽:( z在这些单元中,分子具有物理意义 积分算法 积分算法必须要求: a)快速,消耗内存较少 b)允许采用大时间步 c)尽可能精确地复制经典的轨道线 d)满足冲量和能量转化并且可逆 e)简单易于程序编写 积分算法的讨论 a)不是特别重要,但是模拟中耗费最大的是计算 力 b)很重要,因为对于一个给定的模拟,时间步越 长力需要赋值的次数越少 c)不太重要,因为没有哪个数值计算能长时间提 供精确的解(在轨迹线附近程指数偏离),由于 MD是一种在给定宏观常数下获取 “所有初始状态 ” 的平均时间的方法,因此冲量和能量转变更重要 d)非常重要(见 C) e)重要,在没有增速情况下无需复杂计算 Verlet算法 在 MD的最初几十年内 Verlet算法是最受欢迎的算法之一 公式推导:泰勒级数在 t时刻展开 优点: 1) .程序非常的简单紧凑。 2) .非常好的能量守恒工具(得益于时间 ——可逆性) 3)时间可逆性 4)局部误差 1.对速度的处理非常笨拙 之前需要解 缺点: a)在求得之前需要解 2.或许对切断误差比较敏感,这是因为在公式 中一个小数与微分方程中的两个大数相加。 b)速度的误差 改进的Verlet 算法 Beeman运算法则 与 Verlet算法有相同的适应性 速度的计算比 Verlet算法更加精确 预校正算法 a)预知 虽然这些方法都已经很精确,但是 MD仿真自身的属性 决定了这些方法并不适应他们。这是因为任何的预言 -校正 算法,如果没有把邻居考虑在内都是不可靠的。 基本构成: 时刻的位置,速度,加速度。 b)从新的位置估算速度和加速度(如果力由速度来决定) c)应用新的加速度来校正位置,速度,加速度 d)返回( a)步 这里我们可以用改进的 Beeman算法来证明这种方法用来处 理速度依赖于力(以后讨论)的情况是可以的。 如果出现速度不依赖于力的情况将超出 Beeman算法的讨论范围。 周期性边界条件 ?周期性边界条件非常普 遍:简化表面作用 本部分内容可以参考:流体的仿真 计算,作者 M.P. Allen 和 D.J. Tildesley,,牛津科学出版社, 1987。 ?今天的计算机可以很容易的处理 N>1000的周期性边界条件 受限制的小系统 ?平衡条件不受影响 ?长波是不可能的 ?在程序的运行中,粒子与其最相近的粒子的镜像会相互影响 宏观量一般都被定义为微观量的平均值 如果系统处于非平衡状态,在长度(空间,时间) 变化很小的时候我们可以通过求其平均值来将这一工具 定义为空间和时间的函数。 (宏观速度) 仿真的开始 ?需要知道系统中所有粒子的位置速度的初始值 ?初始化已知系统的密度,温度,数量 ?由于高阶非线性粒子的相互作用,要想在完全的任 意状态下开始仿真几乎不可能成功 ?我们可以用平衡分布的方法非常安全的初始化速度 的自由度 如果粒子的位置任意初始化,有很 大的可能性至少有一对粒子 离的很近,这将导致能量的畸变。 由于动能这一附加量 : ?典型的初始化可以用在流体仿真上 导致对每一个粒子速度都有相对独立的概率分布 - 一个近似的随机方针数据结构避免了粒子的重 叠(作为一个例子我们可以参考 moldy手册) - 晶体在平衡点融化是系统仿真的一部分 平衡 由于在不恰当的状态我们使用了典型系统来模拟,势 能往往不是转化成热能,就是热能随着平衡的到来而消 失。为了阻止温度的浮动,我们需要用到下面的方法: 1).变速度尺度法 这里Td是需要的速度并且 是瞬时速度。 在仿真过程中,这是一种最简单也是最直接的控制 温度的一种方法。 使用温控器也是一种保持温度稳定性的一种方法, 它是通过把温度恒定作为一个约束加入到运动方程中去 的。温控器经常被描述成为 “动力系统约束 ” 2) .温控器。 大范围力、切断误差和相邻粒子列表 ?Lennard-Jones势能在 处衰减的非常的快 ?尽管如此,当在 时,相邻粒子之间相互作用的数量将会增加。 ?在某一距离 处由于节省计算耗时,相互作用被忽略 ?对于大范围力来说,在计算大多数的敏感量(表面张力) 时往往将 近似为 。 ?典型的流体力学的计算经常将 近似为 ?静电的相互作用经常需要特殊的方法(多重扩展, Ewald求和 法) -参考 moldy手册 ?虽然系统的特征(如:状态方程,传送系数,潜热,弹性不变量)受 如果需要,我们需要测量新的 ?最简单的切断法就是分段求解。 由于 是间断的,所以这个方法没有什么优势。并没有保存能量 的影响, 。 ?下面是根据切断量和潜在的改变进行修正后的方法 ?即便是一个很小的切断值,计算耗时也会与 —— Verlet列表法 这是因为我们需要检测所有的成对的分离量。 成比例, ?我们可以使用 “相邻粒子列表 ”来简少计算耗时。 ——单元索引法 Verlet相邻粒子列表法 ?保持一个扩展的相邻粒子列表 计算出相邻的例子之间的相互作用 ?我们可以通过测试 10-20个时间步来选择 。 可以计算 本部分的内容来源于流体的计算机 仿真。作者 M.P. Allen 和 D.J. Tildesley,牛津科学出版社, 1987。 (需要很多的存储空间 ) ? 从而不需要在每一个时间步 单元索引法 ?在每个方向上将仿真系统分解成 个亚单元(这里 ) ?这里我们只是在分离点考察亚单元(保守算法) 例子: 如果亚单元的尺寸大与分离点那么,如果我们要研究单元 13那么我 们只是需要考察单元 7, 8, 9, 10, 12, 13, 14, 17, 18, 19。 ?计算两个维度的耗时是 4.5 由原来了 变成了现在的 。 ?计算三个维度的耗时为 13.5 ,而不是原来的 (当 被恰当的重新定义) 。 约束法 ?牛顿的分子动力学保存了系统的能量,体积和 粒子的数量。 ?典型的工程物理学系统就是要在一定的压力, 温度和频繁的与外界交换中(也就是开放系统) 进行处理。 ?对这样的系统进行仿真被提了出来。 *在系统处于平衡状态时这种方法可以对其提供 一种准确的统计学描述。在系统远离平衡时,我 么还没有找到确切的物理学的定理来对系统进行 描述。因此,我们需要转换,尤其需要像变尺度 法这样自然的方法 恒温仿真 ?牛顿方程所保存的能量和温度是可变的。 -变速度尺度法 (未经加工) ?三种主要方法的类型 ?同样我们可以以次来考察压力。我们也重视希望在 多变的系统中来进行恒定的压力计算。 ?在大多数实际影响的计算中我们总是愿意去描述温度。(在 现实中,大容量的系统,例如大气层,系统的各种影响相互 作用并且保持温度恒定) -扩展系统法 (添加一个或者更多的自由度到大容量系统中) 运动方程: 其中 f是动力学可变量并且我们可以通过以下公式获得: g=系统的自由度 Q=大容量系统的集合(可调整的参数控制平衡动力学) 这种方法被称为 Nosé-Hoover温控器 -约束法 (运动方程被强制放在相空间的一个平面上) 在这种情况下,约束是 这产生了下面的运动方程。 是一个拉格朗日乘数(不是一个动力学变量) 在 Moldy手册中我们可以看到一个关于本方法和 压力约束法的介绍 纪录“速度 -力”之间的关系。 作业讨论 ?应用(或者修改)控制文档 control.argon。 你可以用这 一文件来进行简短系统的分析模拟。 ? Control.argon调用了系统的 argon.in系统文件。将粒子的 数量增加到至少 1000个(减小了小系统的影响和噪音) ?在 Control.argon文件中密度的单位是 ?我们可以通过增加粒子的数量和 /或平均时间间隔来减少 噪音。 ?确保温度没有发生明显的漂移。你或许会经常处于正在重 新调节或者停止调节的过程中。确保在重新调节的过程中 没有进行取样 ?通过设置 ,你忽略了放射性波动函数的计 算使的输出文件更加的易读。 采样控制文件 # #采样控制文件。不同于代码产生的文件 # #密度 =1335kg/m 3 #初始温度 =120k #每 2个时间步长对速度进行一次调解 #在时间步 5000处停止改变速度的尺度 #总共运行 25000个时间步长 #每 500个时间步长打印一次结果 #每 500个时间步长进行一次循环。 #在第 5001时间步开始求平均值 #在 10000时间步求平均值 #每一事件步 0.01ps #亚单元法的亚单元尺寸 #应用精密级来计算力 #3 * sigma #在第 2501步开始放射分区函数的计算