verlet算法

合集下载

velocity-verlet算法求得气泡系统的平衡状态python案例

velocity-verlet算法求得气泡系统的平衡状态python案例

velocity-verlet算法求得气泡系统的平衡状态python案例文章标题:探究气泡系统平衡状态:基于velocity-verlet算法的Python案例在科学研究领域中,气泡系统的平衡状态一直是一个备受关注的话题。

通过基于velocity-verlet算法的Python案例,我们可以更加深入地理解气泡系统平衡状态的相关理论和方法。

本文将从简单到复杂,由浅入深地讨论气泡系统平衡状态的研究过程,共享对这一主题的全面理解和个人观点。

一、气泡系统的基本原理气泡系统是由气泡和液相组成的多相体系,其平衡状态可以通过气泡的分布、形状和动力学行为来描述。

在研究气泡系统的平衡状态时,我们需要考虑气泡间的相互作用、液相的粘性和密度等因素。

通过velocity-verlet算法,我们可以模拟气泡系统在不同条件下的平衡状态,并进一步探讨其动态特性。

二、velocity-verlet算法的原理和应用velocity-verlet算法是一种常用的分子动力学模拟算法,通过同时更新位置和速度的方式来模拟粒子系统的运动。

该算法具有较好的数值稳定性和计算效率,在研究气泡系统平衡状态时得到了广泛的应用。

通过velocity-verlet算法,我们可以模拟气泡系统的动力学行为,探究气泡与液相之间的相互作用和平衡态的演化过程。

三、基于Python的气泡系统平衡状态模拟在进行气泡系统平衡状态的模拟时,我们可以借助Python编程语言中的相关库和工具来实现。

通过编写相应的程序和算法,我们可以对气泡系统的平衡状态进行模拟和分析。

在实际操作中,我们可以通过定义系统的能量函数、计算粒子间的相互作用力以及实现velocity-verlet算法来模拟气泡系统在不同条件下的平衡态,并对其进行深入的研究和分析。

四、案例分析与结论以一个具体的案例为例,我们将基于velocity-verlet算法的Python 模拟结果进行分析,并得出相应的结论。

通过对气泡系统的平衡状态进行模拟和分析,我们可以更加深入地理解气泡间的相互作用、液相的动力学行为以及平衡态的演化过程。

velocity verlet langevin 公式推导

velocity verlet langevin 公式推导

我们要推导Velocity Verlet Langevin方程。

首先,我们需要了解Velocity Verlet算法和Langevin方程。

Velocity Verlet算法是一种用于数值求解常微分方程的算法,特别适用于解决具有周期性或振荡性的问题。

Langevin方程是一个描述粒子在随机力场中运动的微分方程。

假设我们有一个粒子在二维空间中运动,其位置和速度分别为(x, y)和(vx, vy)。

Langevin方程可以表示为:dx/dt = vxdy/dt = vydvx/dt = F(x, y) - γvx + √(2D)R(t)dvy/dt = F(x, y) - γvy + √(2D)R(t)其中,F(x, y)是力函数,γ是阻尼系数,D是扩散系数,R(t)是一个随机过程。

现在我们要使用Velocity Verlet算法来求解这个Langevin方程。

Velocity Verlet Langevin 方程的推导过程如下:1. 首先,我们使用Velocity Verlet算法来求解位置和速度的更新公式。

Velocity Verlet算法的公式如下:x(t+Δt) = x(t) + v(t)Δt + 0.5*a(t)Δt^2v(t+Δt) = v(t) + 0.5*(a(t) + a(t+Δt))*Δt其中,a(t)是加速度,可以通过力函数F(x, y)计算得到:a(t) = F(x(t), y(t)) / m2. 然后,我们将Langevin方程的随机力项和阻尼项加入到Velocity Verlet算法中。

由于随机力项和阻尼项都是与速度有关的力,我们需要在Velocity Verlet算法的速度更新公式中加入这些项。

具体地,我们可以将速度更新公式修改为:v(t+Δt) = v(t) + 0.5*(a(t) + a(t+Δt))*Δt - γ*v(t)*Δt + √(2D)*ΔW其中,ΔW是一个随机变量,表示随机力对速度的贡献。

Verlet算法

Verlet算法

Gear预测校正法
第二步根据新的原子位子 rp,计算受力以及修 正加速度ac(t+ t)。定义预测误差
第三步根据加速度的预测误差对各预测量进行修 正:
Gear预测校正法
• 预测-校正法允许的时间步长比其它算法 长两倍以上 • 每个积分步内要计算两次体系势能,以得 到原子间相互作用力。 • 该算法的稳定差,能量波动较大,较verlet 算法占用更多的内存。
标准Verlet算法
• Verlet 提出的 Verlet 算法在分子动力学中 应用最为广泛。 由Taylor公式展开有:
+
位移
标准Verlet算法
由Taylor公式展开有:
速度
不出现在 算法中。
在典型分子动力学模拟中,只有原子的初始位置和初 始速度是给定的,而在verlet算法中,计算下一步的 原子的位置需要前两步的信息。 那么如何采用verlet算法计算第二个时间步的原子位 置呢?
标准Verlet算法
• 解决方法:
标准r预测校正法
预测校正法是分子动力学模拟中的常用算法之一,
其基本思想是 Taylor 展开,这种算法包含三个部
分。 第一步,利用泰勒展开预测下一时刻的位置及其一 阶、二阶、三阶导数:
式中v、a、b、c分别是位置矢量r的一阶、二阶、三阶和四阶导数。

分子动力学基本知识

分子动力学基本知识

第六章 分子动力学方法6.1引言对于一个多粒子体系的实验观测物理量的数值可以由总的平均得到。

但是由于实验体系又非常大,我们不可能计算求得所有涉及到的态的物理量数值的总平均。

按照产生位形变化的方法,我们有两类方法对有限的一系列态的物理量做统计平均:第一类是随机模拟方法。

它是实现Gibbs的统计力学途径。

在此方法中,体系位形的转变是通过马尔科夫(Markov)过程,由随机性的演化引起的。

这里的马尔科夫过程相当于是内禀动力学在概率方面的对应物。

该方法可以被用到没有任何内禀动力学模型体系的模拟上。

随机模拟方法计算的程序简单,占内存少,但是该方法难于处理非平衡态的问题。

另一类为确定性模拟方法,即统计物理中的所谓分子动力学方法(Molecular Dynamics Method)。

这种方法广泛地用于研究经典的多粒子体系的研究中。

该方法是按该体系内部的内禀动力学规律来计算并确定位形的转变。

它首先需要建立一组分子的运动方程,并通过直接对系统中的一个个分子运动方程进行数值求解,得到每个时刻各个分子的坐标与动量,即在相空间的运动轨迹,再利用统计计算方法得到多体系统的静态和动态特性, 从而得到系统的宏观性质。

因此,分子动力学模拟方法可以看作是体系在一段时间内的发展过程的模拟。

在这样的处理过程中我们可以看出:分子动力学方法中不存在任何随机因素。

系统的动力学机制决定运动方程的形式:在分子动力学方法处理过程中,方程组的建立是通过对物理体系的微观数学描述给出的。

在这个微观的物理体系中,每个分子都各自服从经典的牛顿力学。

每个分子运动的内禀动力学是用理论力学上的哈密顿量或者拉格朗日量来描述,也可以直接用牛顿运动方程来描述。

这种方法可以处理与时间有关的过程,因而可以处理非平衡态问题。

但是使用该方法的程序较复杂,计算量大,占内存也多。

适用范围广泛:原则上,分子动力学方法所适用的微观物理体系并无什么限制。

这个方法适用的体系既可以是少体系统,也可以是多体系统;既可以是点粒子体系,也可以是具有内部结构的体系;处理的微观客体既可以是分子,也可以是其它的微观粒子。

Verlet算法

Verlet算法

Verlet 算法从计算数学的观点来看,MD 方法是一个初值问题,主要用有限差分方法来求解。

能够求解Newton 运动方程的有限差分算法很多,但分子动力学计算原子数目较多,所以对时间和空间要求都比较高,需要研究适合于分子动力学的时间积分算法。

时间积分算法基于有限差分法,对时间进行离散,t δ为时间步长,由t 时刻的变量及其时间导数推演得到t +t δ时刻的物理量,逐步计算即得到整个历史过程的物理量。

这个过程是近似的,不可避免地引入误差,包括截断误差和舍入误差。

前者主要是有限差分算法采用Taylor 展开截断某些高阶项引入的,后者是计算机本身数值精度引入的。

两种误差都能通过减小时间步长t δ而减小。

对于比较大的t δ,截断误差起主导作用;但随着t δ下降截断误差迅速降低,舍入误差随t δ下降变化不大,并在较小的t δ时起主导作用。

分子动力学时间步长一般随模拟的材料、温度、物理过程而变化,一般为fs (1510-秒)量级。

进行数值求解的算法有多种,其共同的出发点是,将粒子的位置和其它力学量如速度、加速度等展开为Taylor 级数。

最常用的数值求解算法有Verlet 算法,leap-frog 算法,Beeman 算法及Gear 所提出的校正预测法。

1.Verlet 算法Verlet 提出的Verlet 算法在分子动力学中运用最为广泛,也是最简单的。

它运用原子在t 时刻的位置)(t r 和加速度)(t a 及t t δ-时刻的位置,计算出t t δ+时刻的位置。

将粒子的位置以Taylor 公式展开,即...))((!21)()()(222+++=+t t r dt d t t r dt d t r t t r δδδ 将式中的t δ换为-t δ,得...))((!21)()()(222++-=-t t r dtd t t r dt d t r t t r δδδ 两式相减得速度式[])()(21)(t t r t t r tdt dr t v δδδ--+== 两式相加得222))(()(2)()(t t r dtd t r t t r t t r δδδ++--=+ 因)()(22t a t r dtd =,故依据上式可由t 及t t δ-的位置预测t t δ+时的位置。

分子动力学模拟方法总结

分子动力学模拟方法总结

三、Velocity Verlet算法:
ri (t t) ri (t) v i (t) t 1 a i (t) t 2 2
v i (t t) v i (t)
等价于
1 [a i (t) a i (t t)]t 2
1 1 v i (t t) v i (t) a i (t) t 2 2
1 1 ri (t t) ri (t) v i (t) t ai (t) t 2 b i (t) t 3 2 6
+
2
ri (t t) 2ri (t) ri (t - t) ai (t)t 粒子位置 : r (t t) ri (t - t) v i (t) i 粒子速度 2t : 开始运动时需要r(t-Δt): Fi (t) 粒子加速度:
ri (t t) 2ri (t) ri (t - t) ai (t)t 2
v i (t) ri (t t) ri (t - t) 2t
Verlet算法程序:
Do 100 I = 1, N RXNEWI = 2.0 * RX(I) RXOLD(I) + DTSQ * AX(I) RYNEWI = 2.0 * RY(I) RYOLD(I) + DTSQ * AY(I) RZNEWI = 2.0 * RZ(I) RZOLD(I) + DTSQ * AZ(I) VXI = ( RXNEWI – RXOLD(I) ) / DT2 VYI = ( RYNEWI – RYOLD(I) ) / DT2 VZI = ( RZNEWI – RZOLD(I) ) / DT2 RXOLD(I) = RX(I) RYOLD(I) = RY(I) RZOLD(I) = RZ(I) RX(I) = RXNEWI RY(I) = RYNEWI RZ(I) = RZNEWI 100 CONTINUE

fourth-order verlet method -回复

fourth-order verlet method -回复

fourth-order verlet method -回复什么是四阶Verlet方法(The fourth-order Verlet method)?四阶Verlet方法是一种用于数值求解常微分方程的算法。

它在物理建模和分子动力学模拟中被广泛应用,尤其适用于描述粒子或系统的运动和相互作用。

该方法的原理基于一个简单的物理概念:根据牛顿第二定律,系统的加速度是由作用在它上面的力决定的。

在四阶Verlet方法中,我们使用位置和速度的值来计算加速度,然后基于这个加速度更新位置和速度。

四阶Verlet方法的步骤如下:1. 初始化:我们需要给定系统的初始位置和速度。

这些值可以从实验数据或者计算结果中获得。

2. 计算加速度:我们根据系统力学方程计算系统的加速度。

这个方程通常涉及粒子之间的相互作用力,以及可能的外部力。

3. 更新位置:根据当前的位置、速度和加速度,可以使用以下公式更新位置:x(t+Δt) = x(t) + v(t)Δt + 0.5a(t)Δt^2这里,x(t)表示当前时刻的位置,v(t)表示当前时刻的速度,a(t)表示当前时刻的加速度,∆t表示时间步长。

4. 重新计算加速度:因为位置的更新可能导致粒子之间的相互作用力发生变化,我们需要使用更新后的位置重新计算加速度。

5. 更新速度:根据当前的速度和新计算的加速度,可以使用以下公式更新速度:v(t+Δt) = v(t) + 0.5(a(t) + a(t+Δt))Δt这里,a(t+Δt)表示使用更新后的位置计算得到的新加速度。

重复以上步骤直至达到所需的时间点或模拟结束。

使用四阶Verlet方法的好处是它的数值稳定性和高精度。

相比于一阶欧拉方法或者二阶Verlet方法,四阶Verlet方法可以更准确地预测粒子的运动轨迹和动能。

它的误差较小,让我们可以在更长的时间间隔内进行模拟,而不需要频繁地重新计算加速度。

然而,四阶Verlet方法也有一些限制。

首先,它假设系统是时间反演对称的,也就是说系统的行为在时间正向和时间逆向时是相同的。

lammps计算速度算法

lammps计算速度算法

lammps计算速度算法LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一种用于分子动力学模拟的开源软件包,它可以用于模拟原子、分子和其他粒子的动力学行为。

在LAMMPS中,可以使用多种算法来计算粒子的速度。

其中,计算速度的算法通常涉及到力的计算和时间积分。

在LAMMPS中,常用的速度算法包括Verlet算法、Leap-Frog算法和Velocity-Verlet算法。

Verlet算法是一种常用的时间积分算法,它通过对位置和加速度的更新来计算速度。

该算法具有较好的数值稳定性和能量守恒性,但对于长时间的模拟可能存在数值积分误差累积的问题。

Leap-Frog算法是另一种常用的时间积分算法,它通过在时间步长的中点进行速度的更新来计算粒子的速度。

该算法也具有一定的数值稳定性和能量守恒性,但同样存在数值积分误差累积的问题。

Velocity-Verlet算法是Verlet算法的改进版本,它通过对位置、速度和加速度的更新来计算粒子的速度。

该算法在数值积分误差累积方面具有一定的改进,能够更好地保持系统的稳定性和能量守恒性。

除了这些常用的算法外,LAMMPS还提供了一些高级的速度算法,如基于温度耗散的算法和基于随机力的算法,用于模拟复杂系统中的速度更新过程。

总的来说,LAMMPS提供了多种算法来计算粒子的速度,用户可以根据具体的模拟需求和系统特性选择合适的算法进行速度更新。

在实际应用中,需要根据模拟系统的特点和所需精度来选择合适的速度算法,并进行参数调优和验证,以确保模拟结果的准确性和可靠性。

分子动力学模拟方法的基本原理与应用

分子动力学模拟方法的基本原理与应用

分子动力学模拟方法的基本原理与应用摘要:介绍了分子动力学模拟的基本原理及常用的原子间相互作用势,如Lennard-Jones势;论述了几种常用的何限差分算法,如Verlet算法;说明了分子动力学模拟的几种系综及感兴趣的宏观统计量的提取。

关键词:分子动力学模拟;原子间相互作用势;何限差分算法;分子动力学是一门结合物理,数学和化学的综合技术。

分子动力学是一套分子模拟方法,该方法主要是依靠牛顿力学来模拟分子体系的运动,以在由分子体系的不同状态构成的系统中抽取样本,从而计算体系的构型积分,并以构型积分的结果为基础进一步计算体系的热力学量和其他宏观性质。

从统计物理学中衍生出来的分子动力学模拟方法(Molecular Dynamics Simulation, NfDS),实践证明是一种描述纳米科技研究对象的有效方法,得到越来越广泛的重视。

所谓分子动力学模拟,是指对于原子核和电子所构成的多体系统, 用计算机模拟原子核的运动过程,从而计算系统的结构和性质,其中每一个原子核被视为在全部其他原子核和电子所提供的经验势场作用下按牛顿定律运动。

它被认为是本世纪以来除理论分析和实验观察之外的第三种科学研究手段,称之为“计算机实验”手段,在物理学、化学、生物学和材料科学等许多领域中得到广泛地应用。

科学工作者在长期的科学研究实践中发现,当实验研究方法不能满足研究工作的需求时,用计算机模拟却可以提供实验上尚无法获得或很难获得的重要信息;尽管计算机模拟不能完全取代实验,但可以用来指导实验,并验证某些理论假设,从而促进理论和实验的发展。

特别是在材料形成过程中许多与原子有关的微观细节,在实验中基本上是无法获得的,而在计算机模拟中即可以方便地得到。

这种优点使分子动力学模拟在材料研究中显得非常有吸引力。

分子动力学模拟就是用计算机方法来表示统计力学,作为实验的一个辅助手段。

分子模拟就是对于原子核和电子所构成的多体系统,求解运动方程(如牛顿方程、哈密顿方程或拉格朗日方程),其中每一个原子核被视为在全部其它原子核和电子作用下运动,通过分析系统中各粒子的受力情况,用经典或量子的方法求解系统中各粒子在某时刻的位置和速度,以确定粒子的运动状态,进而计算系统的结构和性质。

python verlet积分法

python verlet积分法

标题:深度探讨Python中的Verlet积分法一、引言Python中的Verlet积分法是一种常用的数值积分算法,在物理模拟、分子动力学和振动系统建模等领域都有广泛应用。

本文将从简单的介绍开始,逐步深入探讨Python中Verlet积分法的原理、应用和优缺点,以期帮助读者全面理解这一重要的数值计算方法。

二、Verlet积分法概述在物理学和工程学中,我们经常需要对运动的物体进行数值模拟。

而Verlet积分法是一种常用的数值积分算法,在模拟分子动力学系统和连续介质力学问题中得到广泛应用。

它通过迭代计算物体在每个时间步长的位置和速度,从而模拟其动力学行为。

在Python中,我们可以利用Verlet积分法实现对复杂系统的模拟和分析。

三、Verlet积分法原理在Verlet积分法中,我们通过迭代计算每个时间步长物体的位置和速度。

其基本原理是利用泰勒级数展开的思想,通过利用物体的当前位置、速度和加速度,来预测其下一个时间步长的位置和速度。

然后再根据预测值进行校正,从而得到更准确的结果。

在Python中,我们可以利用Verlet积分法来实现对复杂系统的数值模拟。

四、Verlet积分法应用在物理学、化学、生物学以及工程学等领域,Verlet积分法都有着广泛的应用。

例如在分子动力学模拟中,我们可以利用Verlet积分法来模拟原子之间的相互作用;在材料科学中,我们可以利用Verlet积分法来模拟材料的力学性能;在天体物理学中,我们可以利用Verlet积分法来模拟行星运动等。

在Python中,我们可以利用Verlet积分法来实现对这些复杂系统的数值模拟,从而更深入地理解其动力学行为。

五、Verlet积分法优缺点Verlet积分法是一种高效、稳定的数值积分算法,它适用于模拟复杂系统的动力学行为。

相比于其他数值积分算法,Verlet积分法具有较好的能量守恒性和长时间稳定性,能够更准确地模拟系统的运动行为。

然而,Verlet积分法也存在一些缺点,比如对于非保守力系统的数值积分可能出现能量漂移等问题。

分子动力学

分子动力学

分子动力学模拟一.分子动力学的基本原理在分子动力学模拟中,体系原子的一系列位移是通过对牛顿运动方程积分得到的,结果是一条运动轨迹,它表明了系统内原子的位置与速度如何随时间而发生变化。

通过解牛犊第二定律的微分方程,可以获得原子的运动轨迹。

方程如下:这个方程描述了质量为m i的原子i在力Fi的作用下,位置矢量为r i时的运动方程。

其中,Fi可以由势函数U的梯度给出:系统的温度则与系统中全部原子的总动能K通过下式相联系:N是原子数,Nc是限制条件,k B是波尔兹曼常数。

二. MD模拟的积分算法为了得到原子的运动轨迹,可以采用有限差分法来求解运动方程。

有限差分法的基本思想就是将积分分成很多小步,每一小步的时间固定为δt。

用有限差分解运动方程有许多方法,所有的算法都假定位置与动态性质(速度、加速度等)可以用Taylor级数展开来近似:在分子动力学模拟中,常用的有以下的几中算法:1. Verlet算法运用t时刻的位置和速度及t-δt时刻的位置,计算出t+δt时刻的位置:两式相加并忽略高阶项,可以得到:速度可以通过以下方法得到:用t+δt时刻与t-δt时刻的位置差除以2δt:同理,半时间步t+δt时刻的速度也可以算:Verlet算法执行简单明了,存储要求适度,但缺点是位置r(t+δt)要通过小项与非常大的两项2r(t)与r(t-δt)的差相加得到,容易造成精度损失。

另外,其方程式中没有显示速度项,在没有得到下一步的位置前速度项难以得到。

它不是一个自启动算法:新位置必须由t时刻与前一时刻t-δt的位置得到。

在t=0时刻,只有一组位置,所以必须通过其它方法得到t-δt的位置。

一般用Taylor级数:2. Velocity-Verlet算法3. Leap-frog算法为了执行Leap-frog算法,必须首先由t-0.5δt时刻的速度与t时刻的加速度计算出速度v(t+δt),然后由方程计算出位置r(t+δt)。

T时刻的速度可以由:得到。

蛋白质分子动力学模拟的数值方法研究

蛋白质分子动力学模拟的数值方法研究

蛋白质分子动力学模拟的数值方法研究一、引言蛋白质分子动力学模拟是研究生物分子结构和动态行为的重要方法。

在过去的几十年里,随着计算机技术和数值方法的发展,分子动力学模拟已经成为研究生物系统中蛋白质的动力学行为、配体结合和化学反应动力学等许多方面的重要工具。

本文将介绍常用的蛋白质分子动力学模拟数值算法及其基本原理。

二、蛋白质分子动力学模拟的基本理论蛋白质分子动力学模拟的基本理论是经典力学和统计力学。

根据这些理论,蛋白质分子的动力学行为可以通过使用牛顿运动方程来描述。

假设N个粒子构成的蛋白质分子,每个粒子的位置由其位置矢量r,动量矢量p,和质量m确定。

牛顿运动方程可以写为:F_i = m_i a_i其中F_i是第i个粒子的受力,a_i是它的加速度。

力的大小和方向由相互作用势确定。

为了解决运动方程,需要使用封闭的数值算法。

Molecular dynamics 最早由Alder 和Wainwright提出,之后由Rahman和吴克军等人进行了长达20年的发展,最终在70年代中期成为一个完整的计算方法。

它基于Monte Carlo方法,采用模拟退火的思想,通过在体系中添加有限的温度,将系统状态变为随机状态,然后在设定的时间尺度进行模拟、计算。

通过模拟体系中的粒子的运动轨迹,得到蛋白质的构象信息和动力学行为。

三、蛋白质分子动力学模拟的数值算法1. Verlet算法Verlet算法是一种非常基础的蛋白质分子动力学模拟算法。

它基于泰勒级数展开,可以在一倍的时间步幅内计算两个粒子的位置和速度。

Verlet算法可以保证能量在一个固定值上保持不变,同时可以记录老的速度、位移和加速值,方便下一步计算。

2. 隐式算法隐式算法在计算蛋白质分子动力学模拟中,会使用与时间相关的动量,因此一般比较适合于模拟越长时间范围的粒子。

针对隐式算法的优点,在计算蛋白质分子动力学模拟时非常重要。

多种隐形算法已经可以直接运用于蛋白质分子动力学的计算中。

分子动力学

分子动力学

第五章 分子动力学第一节 Verlet 算法 牛顿方程i i i m f dtr d =22 记 ()N r r r R ,,21=⎪⎪⎭⎫ ⎝⎛=N N m f m f m f G,,2211 方程写为 2d RG dt= 三点公式()()242111122n n n n n n n R R R G R R v ττττ+-+-=-++O -=+O 如果给出初始条件0R 和1R,可求解方程,但常常给出的初始条件是00,v R,那么 020012G v R R ττ++=(为什么? 因为dvG dt =,所以,0000()'(')tv t v dt G t v t G =++⎰,所以,210000000'(')R R dt v t G R v G τττ=++++⎰)方法的优点: •保持时间反演不变性,即令 n n ->-, 方程形式不变(尽管误差会破坏这一对称性) •如果问题与v无关,计算精度相当高方法的缺点:n v 必须用到1n R +(为什么是缺点?) 另一方案()()2221112!()2n n n n n n n n R R v G v v G G τττττ+++=+++O =+++O缺点:失去时间反演不变性第二节 多体问题的基本方法 (阅读材料) 全同粒子,概率分布为()()N r r r W R W 21,= 物理量平均值()()()1iiA A R W R dR dR dr ZZ W R dR===∏⎰⎰分子动力学()⎰∞→=τττ1lim dt t A A n 个粒子处于()n r r,1的分布密度函数()()()⎰+-=N n n n r d r d R W n N N Z r r r 121!!1,ρ()!!n N N -来自N 个粒子中取n 个的组合数例如:N n = 是11=n 是N通常记 ()()r r1ρρ=,称系统的粒子密度定义 ()()1ˆNi i r r r ρδ==-∑ 则()()ˆr r ρρ= 证明:这是显然的()()()()111221ˆ,,,NiN ii N N ii r r r W r r dr ZNW r r r dr Zρδ===-=∑∏⎰∏⎰这里假设了()N r r W ,1是关于交换i r 和jr 对称的还可证明()()()()()2ˆˆ,r r r r r r r ρρρδρ'''=-- 证明:()()()()()111ˆˆN Niji j r r r r r r W R dR Zρρδδ==''=--∑∑⎰如 ()()⎰∏='-='≠N i i N r d r r r r W N N Z r r 33,,!2!1如()()ˆˆ,r r r r ρρ''=多出一项, 来自()()∑=--Ni i i r r r r 1δδ 的贡献。

分子动力学模拟方法及应用

分子动力学模拟方法及应用

分子动力学模拟方法及应用概述分子动力学模拟是一种基于牛顿力学原理和统计力学的计算模拟方法,可用于研究物质的微观结构和动力学行为。

本文将介绍分子动力学模拟的基本原理和常用的计算方法,以及它在不同领域的应用。

一、分子动力学模拟的基本原理分子动力学模拟基于经典力学理论,通过求解牛顿运动方程来模拟物质的运动行为。

它假设系统中的分子为硬球或软球,根据分子之间的相互作用力、动能和位能,计算分子的运动轨迹和力学性质。

1. 分子间相互作用力分子间的相互作用力主要包括范德华力、静电力和键能。

范德华力描述非极性分子之间的相互作用力,静电力描述电荷之间的相互作用力,而键能则表示化学键的形成和断裂过程。

这些相互作用力的计算对于准确模拟分子的行为至关重要。

2. 动力学方程分子动力学模拟基于牛顿第二定律,即F=ma。

其中,F 是分子所受的合外力,m是分子的质量,a是加速度。

通过求解这些动力学方程,可以得到分子的位置和速度随时间的演化。

二、常用的分子动力学模拟方法在分子动力学模拟中,为了准确模拟系统行为,需要借助适当的计算方法和技术。

以下是几种常用的分子动力学模拟方法。

1. Verlet算法Verlet算法是最常用的求解分子动力学方程的方法之一。

它基于泰勒级数展开,通过利用前一时刻的位置和加速度来预测当前时刻的位置。

Verlet算法具有较高的计算精度和稳定性。

2. Monte Carlo模拟除了分子动力学模拟,Monte Carlo模拟也是一种常用的计算方法。

它基于随机抽样的方法,通过模拟系统的状态转移来研究系统的平衡性质和统计性质。

Monte Carlo模拟在研究液体和固体的相变、化学反应等方面具有重要的应用。

3. 并行计算由于分子动力学模拟的计算复杂性很高,为了提高计算效率,通常需要借助并行计算技术。

并行计算可以将任务分配给多个处理器或计算节点进行并行计算,大大提高了计算速度和效率。

三、分子动力学模拟的应用领域分子动力学模拟在化学、材料科学、生物物理学等领域具有广泛的应用。

Shake (verlet)算法1977

Shake (verlet)算法1977
JOURNAL
OF COMPUTATIONAL.
PHYSICS
23,
321-341 (1977)
Numerical integration of the Cartesian Equations of Motion of a System with Constraints: Molecular Dynamics of n-Alkanes
1. INTR~D~JCTI~N The method of molecular dynamics (MD), which has been widely used in the past for studying simple liquids and solids, has more recently been applied to molecular systemswith internal degreesof freedom such as N, [l], H,O [2] and even C,H,, [3]. In applying the MD method three problems arise: (a) the choice of a suitable mechanical model, (b) the derivation of the equations of motion of the system and (c) the choice of an efficient algorithm for the numerical integration of these equations. In polyatomic molecules, the fast ined from rotational and translational motions and can therefore be frozen by introducing a certain number of rigid bonds and anglesin the skeleton of the molecule. For example, Nz becomes a rod, H,O a rigid triangle and C4H,, a nonrigid solid with one internal rotation [l, 2, 31. The classical way to treat such systemsis in terms of generalized coordinates (Lagrange-Hamilton formalism), but as the number of internal degreesof freedom increases it rapidly becomesharder to write down explicitly the appropriate equations of motion.

分子动力学模拟的原理和方法

分子动力学模拟的原理和方法

分子动力学模拟的原理和方法分子动力学模拟(Molecular Dynamics Simulation, 简称MD)是一种将牛顿力学应用到分子层面的模拟技术,可以模拟原子和分子之间的相互作用、热力学性质、结构和动力学行为等。

MD模拟可以帮助化学、物理、生物和材料科学等领域深入了解宏观现象的微观机制,如蛋白质折叠、物质传输、材料制备等,被广泛应用于科学研究和技术开发之中。

本文将简要介绍MD模拟的原理和方法。

一、MD模拟的基本原理MD模拟从每个原子的初始位置和速度开始,通过求解牛顿方程(F=ma)来模拟系统在时间上的演化。

在MD模拟中,系统通过使用多体势能函数对原子间的相互作用进行建模,而势能函数通常由经验势和量子化学手段得到。

在物理意义上,势能函数体现了系统的稳定性、结构性质和动力学行为。

通过构建适当的势能函数,MD模拟可以模拟系统在不同温度、压力和配位数等条件下的热力学性质。

MD模拟中的牛顿运动方程可以写成如下形式:m_i d^2r_i /dt^2 = -∇_i U,其中m_i是第i个原子的质量,r_i是它的坐标,U是总势能。

这里d^2 /dt^2表示双重时间导数,即加速度。

∇_i表示关于i号原子的拉普拉斯算子。

通过牛顿方程,我们可以获得系统中每个原子的位置和速度,并通过使用数值积分方法对它们进行离散化计算。

MD模拟的基本步骤包括:1. 构建系统模型:包括化学结构、粒子数、初始位置、速度等2. 选择适当的势能函数:包括经验势和量子化学势等,并进行参数化3. 进行初始的能量最小化:通过改变原子位置和速度,使系统达到稳定状态4. 进行温度和压力的控制:可以通过Berendsen热浴、Nose-Hoover热浴、Andersen热浴等方法对系统进行控制5. 进行时间演化:通过数值积分方法对牛顿方程进行求解,计算原子的位置和速度6. 计算系统的热力学属性:包括温度、压力、能量、速度和位移等。

二、MD模拟的方法MD模拟方法主要可以分为两类,即粒子动力学模拟(Particle Dynamics Simulation, PDS)和基于能量的最小化算法(Energy Minimization Algorithm, EMA)。

分子动力学模拟方法的基本原理与应用

分子动力学模拟方法的基本原理与应用

分子动力学模拟方法的基本原理与应用摘要: 介绍了分子动力学模拟的基本原理及常用的原子间相互作用势, 如Lennard-Jones势; 论述了几种常用的有限差分算法, 如Verlet算法; 说明了分子动力学模拟的几种系综及感兴趣的宏观统计量的提取。

关键词: 分子动力学模拟; 原子间相互作用势; 有限差分算法;分子动力学是一门结合物理,数学和化学的综合技术。

分子动力学是一套分子模拟方法,该方法主要是依靠牛顿力学来模拟分子体系的运动,以在由分子体系的不同状态构成的系统中抽取样本,从而计算体系的构型积分,并以构型积分的结果为基础进一步计算体系的热力学量和其他宏观性质。

从统计物理学中衍生出来的分子动力学模拟方法(Molecular Dynamics Simulation, MDS) , 实践证明是一种描述纳米科技研究对象的有效方法, 得到越来越广泛的重视。

所谓分子动力学模拟, 是指对于原子核和电子所构成的多体系统, 用计算机模拟原子核的运动过程, 从而计算系统的结构和性质, 其中每一个原子核被视为在全部其他原子核和电子所提供的经验势场作用下按牛顿定律运动。

它被认为是本世纪以来除理论分析和实验观察之外的第三种科学研究手段, 称之为“计算机实验”手段, 在物理学、化学、生物学和材料科学等许多领域中得到广泛地应用。

科学工作者在长期的科学研究实践中发现,当实验研究方法不能满足研究工作的需求时,用计算机模拟却可以提供实验上尚无法获得或很难获得的重要信息;尽管计算机模拟不能完全取代实验,但可以用来指导实验,并验证某些理论假设,从而促进理论和实验的发展。

特别是在材料形成过程中许多与原子有关的微观细节,在实验中基本上是无法获得的,而在计算机模拟中即可以方便地得到。

这种优点使分子动力学模拟在材料研究中显得非常有吸引力。

分子动力学模拟就是用计算机方法来表示统计力学,作为实验的一个辅助手段。

分子模拟就是对于原子核和电子所构成的多体系统,求解运动方程(如牛顿方程、哈密顿方程或拉格朗日方程),其中每一个原子核被视为在全部其它原子核和电子作用下运动,通过分析系统中各粒子的受力情况,用经典或量子的方法求解系统中各粒子在某时刻的位置和速度,以确定粒子的运动状态,进而计算系统的结构和性质。

C语言编程中的物理模拟与仿真

C语言编程中的物理模拟与仿真

C语言编程中的物理模拟与仿真在计算机科学领域中,物理模拟与仿真是一项重要的技术,常常被用于模拟和预测真实世界中的物理现象。

C语言作为一种强大的编程语言,提供了丰富的工具和库,可以用于开发物理模拟与仿真程序。

本文将介绍C语言编程中物理模拟与仿真的基本概念、常用算法和应用举例。

一、物理模拟与仿真概述物理模拟是指利用计算机程序模拟真实世界中的物理现象,例如,模拟重力、摩擦力、碰撞等。

通过精确地计算物体受力和运动规律,可以模拟出与真实世界相似的物理行为。

而物理仿真则是对物理模拟的进一步扩展,通常包含更多的物理参数和复杂的算法,以实现更精确的仿真效果。

二、物理模拟与仿真算法1. 欧拉方法欧拉方法是物理模拟和仿真中常用的一种基本算法。

它基于物理学中的运动方程,通过离散化的时间步长来逼近物体的位置和速度的变化。

欧拉方法简单易懂,但由于误差累积的问题,当时间步长过大时,可能导致模拟结果不准确。

2. Verlet算法Verlet算法是一种改进的物理模拟算法,通过基于前一时刻的位置和加速度信息来计算当前时刻的位置,从而减小了误差累积的影响。

Verlet算法的主要优势是在模拟保持精确度的同时,计算开销较小,是一种高效的物理模拟算法。

3. 碰撞检测与响应模拟真实世界的物理行为,需要包含对碰撞的检测和响应。

常用的碰撞检测算法包括包围盒检测、球体碰撞检测和凸面体碰撞检测等。

一旦检测到碰撞,可以使用动量守恒和能量守恒等原理来计算碰撞后物体的运动状态。

三、C语言物理模拟与仿真的应用举例1. 二维物理模拟游戏通过使用C语言编写物理模拟算法和图形化界面库,可以实现二维物理模拟游戏。

例如,模拟一个弹球的运动过程,在游戏中可以调整球的质量、速度和重力加速度等参数,实时观察球的运动轨迹和与其他物体的碰撞效果。

2. 车辆物理仿真在计算机游戏中,常需要对车辆的物理行为进行仿真,以实现逼真的驾驶体验。

使用C语言编写物理模拟算法,可以模拟车辆的重力、摩擦力、碰撞等物理效果,同时结合图形渲染技术展示车辆的运动轨迹和变化。

verlet算法

verlet算法

verlet算法从计算数学的观点来看,MD ⽅法是⼀个初值问题,主要⽤有限差分⽅法来求解。

能够求解Newton 运动⽅程的有限差分算法很多,但分⼦动⼒学计算原⼦数⽬较多,所以对时间和空间要求都⽐较⾼,需要研究适合于分⼦动⼒学的时间积分算法。

时间积分算法基于有限差分法,对时间进⾏离散,t δ为时间步长,由t 时刻的变量及其时间导数推演得到t +t δ时刻的物理量,逐步计算即得到整个历史过程的物理量。

这个过程是近似的,不可避免地引⼊误差,包括截断误差和舍⼊误差。

前者主要是有限差分算法采⽤Taylor 展开截断某些⾼阶项引⼊的,后者是计算机本⾝数值精度引⼊的。

两种误差都能通过减⼩时间步长t δ⽽减⼩。

对于⽐较⼤的t δ,截断误差起主导作⽤;但随着t δ下降截断误差迅速降低,舍⼊误差随t δ下降变化不⼤,并在较⼩的t δ时起主导作⽤。

分⼦动⼒学时间步长⼀般随模拟的材料、温度、物理过程⽽变化,⼀般为fs (1510-秒)量级。

进⾏数值求解的算法有多种,其共同的出发点是,将粒⼦的位置和其它⼒学量如速度、加速度等展开为Taylor 级数。

最常⽤的数值求解算法有Verlet 算法,leap-frog 算法,Beeman 算法及Gear 所提出的校正预测法。

1.Verlet 算法Verlet 提出的Verlet 算法在分⼦动⼒学中运⽤最为⼴泛,也是最简单的。

它运⽤原⼦在t 时刻的位置)(t r 和加速度)(t a 及t t δ-时刻的位置,计算出t t δ+时刻的位置。

将粒⼦的位置以Taylor 公式展开,即...))((!21)()()(222+++=+t t r dtd t t r dt d t r t t r δδδ将式中的t δ换为-t δ,得...))((!21)()()(222++-=-t t r dtd t t r dt d t r t t r δδδ两式相减得速度式[])()(21)(t t r t t r tdt dr t v δδδ--+==两式相加得 222))(()(2)()(t t r dtd t r t t r t t r δδδ++--=+ 因)()(22t a t r dtd =,故依据上式可由t 及t t δ-的位置预测t t δ+时的位置。

分子动力学模拟及其在材料科学中的研究进展

分子动力学模拟及其在材料科学中的研究进展

分子动力学模拟及其在金属材料中的研究进展摘要本文综述了分子动力学模拟技术的发展,介绍了分子动力学的分类、运动方程的求解、初始条件和边界条件的选取、平衡系综及其控制、感兴趣量的提取以及分子动力学模拟在金属材料中的研究进展。

关键词:分子动力学模拟平衡态系综金属材料感兴趣量径向分布函数引言科学工作者在长期的科学研究实践中发现,当实验研究方法不能满足研究工作的需求时,用计算机模拟却可以提供实验上尚无法获得或很难获得的重要信息;尽管计算机模拟不能完全取代实验,但可以用来指导实验,并验证某些理论假设,从而促进理论和实验的发展。

特别是在材料形成过程中许多与原子有关的微观细节,在实验中基本上是无法获得的,而在计算机模拟中即可以方便地得到。

这种优点使分子动力学模拟在金属材料研究中显得非常有吸引力。

分子动力学MD (Molecular Dynamics)模拟就是用计算机方法来表示统计力学,作为实验的一个辅助手段。

MD模拟就是对于原子核和电子所构成的多体系统,求解运动方程(如牛顿方程、哈密顿方程或拉格朗日方程),其中每一个原子核被视为在全部其它原子核和电子作用下运动,通过分析系统中各粒子的受力情况,用经典或量子的方法求解系统中各粒子在某时刻的位置和速度,以确定粒子的运动状态,进而计算系统的结构和性质。

该模拟技术主要涉及粒子运动的动力学问题,与蒙特卡罗模拟方法(简称MC)相比,分子动力学是一种“确定性方法”,它所计算的是时间平均,而MC进行的是系综平均。

然而按照统计力学各态历经假设,时间平均等价于系综平均。

因此,两种方法严格的比较计算能给出几乎相同的结果。

经典的分子动力学方法是Alder等于1957年提出并首先在“硬球”液体模型下应用,发现了由Kirkwood在1939年根据统计力学预言的“刚性球组成的集合系统会发生有液相到结晶相的转变”。

后来人们称这种相变为Alder相变。

Rahman于1963年采用连续势模型研究了液体的分子动力学模拟。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

从计算数学的观点来看,MD方法是一个初值问题,主要用有限差分方法来求解。

能够求解Newton运动方程的有限差分算法很多,但分子动力学计算原子数目较多,所以对时间和空间要求都比较高,需要研究适合于分子动力学的时间积分算法。

时间积分算法基于有限差分法,对时间进行离散,6t为时间步长,由t时刻的变量及其时间导数推演得到t +秋时刻的物理量,逐步计算即得到整个历史过程的物理量。

这个过程是近似的,不可避免地引入误差,包括截断误差和舍入误差。

前者主要是有限差分算法采用Taylor展开截断某些高阶项引入的,后者是计算机本身数值精度引入的。

两种误差都能通过减小时间步长联而减小。

对于比较大的就,截断误差起主导作用;但随着就下降截断误差迅速降低,舍入误差随联下降变化不大,并在较小的娩时起主导作用。

分子动力学时间步长一般随模拟的材料、温度、物理过程而变化,一般为fs (10」5秒)量级。

进行数值求解的算法有多种,其共同的出发点是,将粒子的位置和其它力学量如速度、加速度等展开为Taylor级数。

最常用的数值求解算法有Verlet算法, leap-frog算法,Beeman算法及Gear所提出的校正预测法。

I.Verlet 算法Verlet提出的Verlet算法在分子动力学中运用最为广泛,也是最简单的。

它运用原子在t时刻的位置r (t)和加速度a(t)及t-欲时刻的位置,计算出t +狀时刻的位置。

将粒子的位置以Taylor公式展开,即d 1 d 2r(t + 册)=r(t) +—r(t)册+——r(t)(册f +...dt 2! dt2将式中的说换为-册,得r(t -散)=r(t) -2「化)& +丄_^^『亿)(抚)2 +... dt 2! dt 2两式相减得速度式dr 1吩2不二討两式相加得r(t +6t) = -r(t -就)+ 2r(t) +務 r(t)@t)2 dt,故依据上式可由t 及t -哉的位置预测t +6t 时的位置。

1Verlet 算法执行简明,需要的内存小,但其缺点在于速度式中含有一项,而 实际计算中通常选取很小的 茂值,且位置r(t +茂)要通过小项与非常大的两项2r(t)与r(t -就)的差的相加得到,容易造成精度损失。

另外,它不是一个自启动算法,新位置必须由t 时刻与前一时刻t -6t 的位置得到。

在t=O 时刻,只有一组 位置,所以必须通过其他方法得到t -就的位置。

获得t -茂时刻的位置的方法之 一时应用近似式r(」t) = r(0) -观* v(0)。

2. 跳蛙法(leap-frog method)鉴于Verlet 算法的一些缺点,Hockney 提出了跳蛙法。

跳蛙法是从 Verlet 法推导出来的。

它在半个积分时间步得到速度,并利用这一速度计算新的位置。

位 置和速度表达式为_A .4 ■ v i (t + — §t) = V i (t —一尿)+ a i (t)尿2 2r?(t + 5t)=n(t)+ V(t +7 册)2计算时假设已知如『)与r -(t ),由t 时的位置「;⑴计算质点所受的力与加速 d 2因尹⑴胡t)1 1度a (t ),再预测时间为t +-戲时的速度v (t+2戲),以此类推。

根据V i1 d t )与V/t —At ),可得时间为t 时的速度为-1「- 1 - 1 tV i ⑴=2即+护+Vi (匕叫利用跳蛙法计算仅需储存V (t -舟秋)与n (t )两类信息,既节约储存空间,而且准确性及稳定性较高。

跳蛙法不需要计算下一步位置就可以得出速度, 但需要注意能直接计算总能量。

3. Beema n 法1 ■■ Q 飞⑷i (t)—a i (t"皿 4G (t +秋)=c (t )+—[2a i (t +哉)+5孑匚化)一/卫一就)]就6此方法需储存r i (t )、V i (t )与a i (t-§t),储存量大于Verlet 的跳蛙法。

但优点在于 可以引用较长的积分间隔 秋。

Beeman 方法所引用的积分步长 狀可为Verlet 方法 的3~4倍,而具有相同的准确性。

4. 校正预测法(Predictor-corrector method)Gaer 提出了基于预测-校正积分方法的校正预测法。

因为经典运动粒子的轨迹为连续的,故于时间t +就时的位置、速度等可由时间t 的Taylor 展开式预测得-p - - 1-21-3 r p(t + 娩)= r(t) +v(t)娩 +-a(t)6t + -b(t)6t +... 2 6-p 、 一 _.1-2 v p (t + 册)=v(t) + a(t)册 +?b(t)6t +...a p (t +§t) =a(t)+b(t)册+…b P (t +说)=b(t) +...由于这些物理量来自Taylor 展开式,并非由解Newton 运动方程式而来,所以式(2.17)中所产生的速度、加速度等并非完全正确。

为了解决这个问题,用所预测的位置厂(t +散)计算所受的力及正确的加速度a p (t +散)。

设正确的加速度与预 测的加的是速度并未与位置在同一时间定义,结果是动能和势能也未同时定义。

所以不Beeman 法是除Verlet 跳蛙法外, 另一种较为常见的方法。

其积分公式如下速度之间的误差为■—C "- p△a(t +6t) =c (t + 6t)—a p(t +6t)得各量之校正式为/(t +及)p(t +5t)+ c^a(t +战) |v c(t +&) =v P(t +5t) +c^a(t +5t) a c(t +秋)=a p(t + 就)+ C2 也a(t +6t) b c(t +§t) = b p(t +§t) + c^a(t + 6t)式中,C0、C1、C2、C3均为常数。

这仅为Gear的一次预测校正法,也可以推展至更高次的校正法。

对于大多数MD应用来说,Verlet型的算法就可以满足基本的要求了。

但有时采用高阶算法更方便。

一般来说Gear算法中的Taylor展开阶数越高,精度越好。

但占用内存比较大,这对于大量分子系统的模拟不如Verle t算法方便。

当钦减小时,Gear的高次预测校正法误差较小,但欲增大时,Verlet 方法较佳。

边界条件执行分子动力计算通常选取一定数目N的分子,将其置于一立方体的盒子中。

设盒子的边长为L ,贝U其体积为V = L3。

若分子的质量为m,则系统的密度为:NmL3计算系统的密度应等于实验所测定的密度。

介质的宏观性质是由大量粒子所为,所以在模拟中,粒子的数量只有足够多,才能真实地再现介质的宏观性质。

然而由于计算机的计算能力的限制,我们在模拟时粒子数一般应少于10000个。

同时粒子数量越少,表面效应越明显,因为此时大量的粒子是处于表面的。

这样少的粒子组成的集团和真实体系相比,其表面原子与体内原子数之比显然过大,这必然造成表面效应。

无论模拟的区域是否在容器中,表面的粒子受力仍不同于实际情况,从而很难正确的描述其宏观性质。

为了减小有限尺寸的影响,在分子动力学模拟中采用了各种有效的边界条件。

通常用于分子动力学模拟中的边界条件有两种:周期性边界条件、非周期性边界条件。

(1)模拟计算中,为使计算中系统的密度维持恒定,通常采用周期性边界条件[2],以二维的计算系统为例,图2.3显示了二维盒中系统粒子的排列及移动方向。

图2.3图2.4粒子的最近映像如图2.3中的第2个粒子。

这样的限制条件使得系统中的粒子数维持恒定,密度不变,符合实际的要求。

计算系统中分子间的作用力时,采取最近镜像方法[2]。

如图2.4(粒子的最近映像)所示,计算分子2与5的作用力,是取与分子2和其最近的距离镜像分子5。

因为在计算中利用最近镜像的观念,因此需采用截断半径r c的方法计算非键结的远程作用力,否则会因重复计算粒子所受的力而导致不正确的结果。

图 2.5为一般的van der Waals势能图。

图2.5 van der Waals势能图图中显示,当r>r c时,势能的值已非常趋近于零,表示分子间的van der Waals作用力已可以忽略不计。

在很多分子动力学模拟过程中,若分子间的距离大于截断半径,则将其作用视为零。

截断半径最大不能超过盒长的一半,即r c冷。

般的原子所选取的截断半径约为10〜15A。

(2)分子模拟并不都是周期边界,在许多情况下,如对于液滴体系,溶液中沉淀的分子团簇,并不需要周期边界。

如图 2.7所示,图中的外壳,即阴影部分是体系的边界区。

边界区内的分子可以设计为位置固定的。

体系中部的分子是可以移动的。

图2.7非周期边界情形时间步长的选取时间步长与采用的数值积分方法、研究的对象有关。

在选择了数值算法后,时间步长的选取是影响计算结果的一个关键因素。

这里存在一对矛盾,一方面应 尽量选择大的时间步以模拟更长的时间, 从而在相空间抽样的比例更大;另一方 面,过大的时间步将导致结果精度降低、甚至分子动力学的崩溃。

时间步长与所研究现象的弛豫时间密切相关。

一般地,时间步长可安全地取1 1为弛豫时间的 -------- 。

对于金属单原子晶体结构,时间步长可大致取为10sf 。

但10 5模拟系统可能存在几个不同的时间尺度,如对于分子系统,分子间和分子内的弛 豫时间是不同的。

因此存在一个时间步长能很好地描述一种现象、但却无法描述 同一系统另一种现象的可能性。

所以时间步长应根据研究对象的特征以及模拟过 程中能量的变化情况来选取,不存在一个通用的时间步长。

简化单位g 为单位,则原子质量的量纲为io'3(g),位置以时间步长以秒为单位则量纲约为10^3 ~10^6(s)o拟中导致计算的误差。

通常选择能量客,长度CT 及质量m 为转换简化单位的标准,则分子动力学方法计算体系中原子或分子的运动,若采用 cgs 制,原子质量以 cm 为单位则量纲为10 (cm), 这些量的值均很小,可能在模E*=EF CTs/m1(g/m 乍分子动力计算的初始设定均匀相的液体系统的初始位置通常定位其晶体的结构,或均匀分布的面心立方结构。

若分子体积很大,则以分子间不产生重叠为原则,近似系统的平衡结构愈佳。

若复杂系统,则由分子力学能量最小化的结果为模拟起点。

初速度有两种常用的设置方法:一种是取平均速度」逖匚,方向余弦取-1-1 之间的随机数,相对简单;另一种是按靠近Maxwell分布来取样,这种方法相比之下,更容易达到热力学平衡,即,、,mT、1/2 「1 mv2a= X, y, ZP(v4(2^k:)exp一二=计算前检查粒子的速度分布以使各方向的总动量为0。

在进行用分子动力学方法模拟平衡问题的时候,初始一段时间的模拟结果往往丢弃掉,初始条件一般不会影响最终结果,但会影响模拟的收敛速度。

相关文档
最新文档