Center for Theoretical Chemical Physics Laboratory of Molecular Catalysis mvative Material 有限差分方法(Finite Difference Methods) ■Verlet.算法的优点 ■存储量小:r(t-t,r(t),v(t),a(t) ■ Verlet.算法的缺点 ■精度 r(t+t)=2r(t)-r(t-t)+a(t)2 初始位置r(0)和r(-δt): r(-t)≈r(O)-v(O)t 振华制 10/14/2013 第七章-2MD方法 11
李 振 华 制 10/14/2013 第七章-2 MD 方法 11 造 有限差分方法(Finite Difference Methods) Verlet算法的优点 存储量小:r(t-δt),r(t),v(t), a(t) Verlet算法的缺点 精度 2 r(t t) 2r(t) r(t t) a(t)t 初始位置r(0)和r(-δt): r(t) r(0) v(0)t
Center for Theoretical Chemical Physics Laboratory of Molecular Catalysis mvative Material 有限差分方法(Finite Difference Methods) ■Verlet算法的改进l ■leap-frog(Hockney,1970),蛙跳 wt+m)=t-的+aa r(t+)=r(t)+v(t+一)ot 2 v0-20+0+u-281 蛙跳的由来 2 李振华制 10/14/2013 第七章-2MD方法 12
李 振 华 制 10/14/2013 第七章-2 MD 方法 12 造 有限差分方法(Finite Difference Methods) Verlet算法的改进1 leap-frog (Hockney, 1970),蛙跳 t t t t t)t 2 1 r( ) r( ) v( t t t t) (t)t 2 1 ) ( 2 1 v( v a )] 2 1 ) ( 2 1 [ ( 2 1 v(t) v t t v t t 蛙跳的由来
Center for Theoretical Chemical Physics Laboratory of Molecular Catalysis Innovative Material 有限差分方法(Finite Difference Methods) 蛙跳算法的优点 直接包括速度,不再对较大的量(()做差分 ■蛙跳算法的缺点 ■位置和速度的计算不同步 振华制 10/14/2013 第七章-2MD方法 13
李 振 华 制 10/14/2013 第七章-2 MD 方法 13 造 有限差分方法(Finite Difference Methods) 蛙跳算法的优点 直接包括速度,不再对较大的量(r(t))做差分 蛙跳算法的缺点 位置和速度的计算不同步
Center for Theoretical Chemical Physics Laboratory of Molecular Catalysis mvative Material 有限差分方法(Finite Difference Methods) ■Verlet.算法的改进2 velocity Verlet (Swope,1982) r(t+òt)=r(t)+v(t)δt+。a(t)δt2 2 vt+δ0)=v(0)+与[a(t)+at+δt)]t 速度计算相当于分成两步: v(t+)=v(t)+a(t) v(1+8t)=v(t+781)+aa(t+8t) 振华制 10/14/2013 第七章-2MD方法 14 造
李 振 华 制 10/14/2013 第七章-2 MD 方法 14 造 有限差分方法(Finite Difference Methods) Verlet算法的改进2 velocity Verlet (Swope, 1982) t t t t t t t t t t t t t t [ ( ) ( ) ] 2 1 ( ) ( ) ( ) 2 1 ( ) ( ) ( ) 2 v v a a r r v a v(t 1 2 t) v(t) 1 2 t a(t) v(t t) v(t 1 2 t) 1 2 t a(t t) 速度计算相当于分成两步:
Center for Theoretical Chemical Physics Laboratory of Molecular Catalysis mvative Material Velocity Verlet.算法—FORTRAN77程序 do i=1.natoms do j=1,3 xxm(j,i)=xxm(j,i)+ppm(j,i)/m(i)*dt-0.5d0*dt*dt *gv(j,i)/m(i) enddo enddo do i=1.natoms r(t+8t)=r(t)+v(t)6t+a(t)6t2 do j=1,3 gvc(j.i)=gv(j.i) enddo vu+d0=v0+)[a(0+a(t+o018 enddo call getgrad(xxm,natoms,mnat gv) do i=1.natoms do j=1,3 ppm(j,i)=ppm(j,i)-0.5d0 *(gv(j,i)+gvc(j,i))*dt enddo enddo 李 振华制 10/14/2013 第七章-2MD方法 15
李 振 华 制 10/14/2013 第七章-2 MD 方法 15 造 Velocity Verlet算法——FORTRAN 77程序 do i=1,natoms do j=1,3 xxm(j,i) = xxm(j,i) + ppm(j,i) /m(i)*dt- 0.5d0 * dt*dt *gv(j,i) /m(i) enddo enddo do i=1,natoms do j=1,3 gvc(j,i) = gv(j,i) enddo enddo call getgrad(xxm,natoms,mnat,gv) do i=1,natoms do j=1,3 ppm(j,i) = ppm(j,i) - 0.5d0 * (gv(j,i)+gvc(j,i)) * dt enddo enddo t t t t t t t t t t t t t t [ ( ) ( ) ] 2 1 ( ) ( ) ( ) 2 1 ( ) ( ) ( ) 2 v v a a r r v a