《LAMMPS软件与分子模拟的实现ppt课件.ppt》由会员分享,可在线阅读,更多相关《LAMMPS软件与分子模拟的实现ppt课件.ppt(44页珍藏版)》请在三一办公上搜索。
1、补充内容 Lammps与分子动力学,常用模拟软件Lammps功能和原理经典范例,1. 常用的MD模拟软件,NAMD:免费 主要针对与生物和化学软材料体系,程序设计水平高,计算效率高。有很好的分析辅助软件VMD。AMBER 主要针对生物体系,也适当兼容一般化学分子。有很好的内置势能模型,自定义新模型和新分子很方便,有很完善的维护网站。计算效率不高运算速度慢。CHARMM 主要针对生物体系,也包含部分化学体系。势能模型更新很快自定义新模型比较方便。计算效率低。,GROMACS 免费 主要针对生物体系,也适当照顾一般化学体系。算法好,计算效率高。界面友好,维护服务好。TINKER 免费 一般性分子动
2、力学软件,对生物体系略有偏重。优点支持多种模型。仍在开发中,某些方面还不完善。DL-POLY 一般性分子模拟软件,界面友好,计算效率高。维护服务很好。Materials Studio,LAMMPS 免费 一般性分子模拟软件。兼容当前大多数的势能模型,编程水平高,计算效率高。可以模拟软材料和固体物理系统。Materials Explorer 立足于Windows平台的多功能分子动力学软件。拥有强大的分子动力学计算及Monte Carlo软件包,是结合应用领域来研究材料工程的有力工具。Materials Explorer可以用来研究有机物、高聚物、生物大分子、金属、陶瓷材料、半导体等晶体、非晶体、
3、溶液,流体,液体和气体相变、膨胀、压缩系数、抗张强度、缺陷等。Materials Explorer软件中包含2Body,3Body,EAM,AMBER等63个力场可供用户选择。Materials Explorer软件拥有完美的图形界面,方便使用者操作。,2. Lammps功能和原理,Lammps初识 Lammps的功能 Lammps的原理 Lammps的特点 Lammps的应用,Lammps初识,Lammps程序是一个经典分子动力学计算程序。全称 Large-scale Atomic/Molecular Massively Parallel Simulator 官方网址:http:/lammp
4、s.sandia.gov/ 国内交流论坛:http:/www.mdbbs.org,Lammps的功能,能(features)一般意义(并行化,可扩充,脚本化输入,接口化编译)专门意义(能建模原子类型,有什么力场,有那些原子操作,如何设置系综/边界/约束,积分方法,输出控制,前后图形处理,以及具有一些什么特色功能)不能(non-features)- 非图形化界面,不能自动建立分子结构模型和分配力场参数,不具有复杂的分析的手段,不能可视化输出结果补救:Pizza.py 工具包,用于建模和分析以及可视化,但是功能不够强大。必须一些其他前后处理软件(几何建模,物理建模,可视化分析)结合使用,接口方法。
5、,Lammps的基本原理,编写、输入模拟程序,运行模拟,可视化,结果分析,输出结果,Lammps输入文件的主要组成部分,InitializationAtom definitionSettingsRun a simulation,后面的两个部分可以按照需要多次重复。,Lammps软件目前的特点,从势场角度看:建模软物质(生物分子,聚合物),固态材料(金属,半导体),以及粗粒子和介观材料。更一般的说是lammps程序是用来建模原子/介观/连续尺度物质以及其在热、力学、化学条件下的性质的模拟软件,因此是系统化方法。Lammps程序运行环境:单CPU和多CPU,采用的是消息响应和模拟域的空间分解并行机
6、制。Lammps程序代码共享和模块化设计,具有功能易于扩充的特性。新版采用C/C+语言书写,周期性发布,以日期为为准,不断更新一些bug和增加一些功能。脚本语言应用开发。美国能源部下属的圣地亚国家实验室发布,主要作者:Steve Plimpton, Aidan Thompson, and Paul Crozier 网上邮件组可以解决和及时交流,Lammps软件入门,明确自己的问题和方向,选择正确的工具要做的是什么问题,属于物理,化学,力学,材料,还是都有?能否具体到希望要作出什么结果?实验和理论上是否有相似的研究?再看问题是否适合lammps程序?是否有别的程序可以替代选择或者联合选择?计算环
7、境搭建可行性分析现有计算机条件: 硬件水平决定模拟的规模是否有相关的支持:软件环境团队学习的重要:交流是非常重要学习一点分子动力学基础物理学基础:原子论,量子论,简单的数学材料学基础:结构化材料,晶体理论统计力学基础:热力学知识,统计分布专业基础:热流热导分析,应力分析,辐射损伤分析,蛋白质计算机基础:程序学习和改进,编程和硬件识别,如何利用好Lammps手册?,求人不如求己准备一份纸版,一份电子版放置在桌面。养成良好的学习习惯几个章节必须看(1-1,2,3;2-2,3,5,6,7;3-1,2,3;4-all)读做例子有感觉(melt,crack,shear)错误信息自己找(完美的错误提示信息
8、)随手整理做记录命令学习(工具体现)命令名称:基本上告诉你意义书写格式:脚本语言的特色格式选项说明:严格遵守,最好理解含义范例书写:有助于自己写脚本注意事项:特别的地方相关命令:命令分类学习,比如输入有那些方式,势函数定义有哪几类?,Lammps常见命令,unitdimensionnewtonprocessorsboundaryatom styleatom modifyatom type,选择单位系统,L-J、real、metal,2D or 3D? 默认是3D,边界条件:周期性边界or自由边界?,定义你的模拟体系中的原子属性,告诉lammps在你的模拟中使用何种力场?pair_style,
9、bond_style, angle_style, dihedral_style, improper_style,Lammps软件的应用,应用步骤程序安装安装平台环境(考虑不同的操作系统,是否并行计算)简单易行的安装Windows下:命令行执行方式Linux下:编译选择项几个关键点:编译器的选择;并行库的位置,相关库的位置应用步骤-实例学习输入脚本格式书写:3-1节内容,积木式搭建分块命令学习方法:几何模型构建:atom_style, boundary, dimension,units create_atoms, create_box, lattice, read_data, read_rest
10、art, region, replicate物理模型构建:angle_coeff, angle_style, bond_coeff, bond_style, dielectric, dihedral_coeff 过程模型构建:Fix:is any operation that is applied to the system during timestepping or minimization. Examples include updating of atom positions and velocities due to time integration, controlling tem
11、perature, applying constraint forces to atoms, enforcing boundary conditions, computing diagnostics, etc. 输出模型构建:compute过程计算量,热力学输出量(全局量),局部表征量(单个原子、组原子),3.经典范例,使用L-J势模拟裂纹的扩展使用EAM势模拟Ni的剪切行为Cu、Ni等金属的凝固过程模拟表面能计算,A. 使用L-J势模拟裂纹的扩展,裂纹,lower,upper,leftupper,leftlower,x,y,Lammps计算输入文件,# 2d LJ crack simulat
12、ion(问题的基本初始化)dimension2#2维分子动力学模拟boundarys s p#x,y方向不存在周期边界条件,z方向周期边界条件。atom_style atomic#原子类型(金属)Neighbor 0.3 bin#建近邻表参数(rc+0.3)bin表示为近邻表类型。neigh_modify delay 5#间隔多少载荷步重新形成近邻表,Lammps计算输入文件,# create geometry创建初始几何构形Lattice hex 0.93#指定晶格类型(二维hex)和晶格常数Region box block 0 100 0 40 -0.25 0.25#定义一个区域creat
13、e_box5 box#在指定区域建立一个simulation box,5表示原子类型的种类数create_atoms 1 box#在simulation box中创建类型为1的原子(原子位置初始化)Mass 1 1.0Mass 2 1.0Mass 3 1.0Mass 4 1.0Mass 5 1.0#指定单个原子的质量,Lammps计算输入文件,# LJ potentials(指定原子作用势)pair_stylelj/cut 2.5#指定lj势,截断半径为2.5pair_coeff * * 1.0 1.0 2.5#指定lj势参数# define groups(便于加载)Region 1 bloc
14、k INF INF INF 1.25 INF INFGroup lower region 1#定义lower组(便于施加外加速度)Region 2 block INF INF 38.75 INF INF INFGroup upper region 2#定义upper组(便于施加外加速度)Group boundary union lower upper#定义总边界组Group mobile subtract all boundary#定义可动原子组(便于统计温度),Lammps计算输入文件,regionleftupper block INF 20 20 INF INF INFregionleft
15、lower block INF 20 INF 20 INF INFgroupleftupper region leftuppergroupleftlower region leftlower#定义左上、左下原子组(便于指定裂纹的存在)setgroup leftupper type 2setgroup leftlower type 3setgroup lower type 4setgroup upper type 5#指定原子类型(便于指定裂纹的存在),Lammps计算输入文件,# initial velocities初始化速度computenew mobile temp#定义温度的计算(可动区
16、域内统计平均)compute new2 mobile stress/atom #定义原子应力的计算(整个区域)Velocity mobile create 0.01 887723 temp new#按指定的温度(0.01)计算方法,初始化原子的速度Velocity upper set 0.0 0.3 0.0#upper原子组y方向的速度为0.3Velocity mobile ramp vy 0.0 0.3 y 1.25 38.75 sum yes#mobile原子的速初始度从0到0.3线性变化# fixes施加约束fix1 all nve#nve系综的积分算法fix2 boundary set
17、force NULL 0.0 0.0 #边界boundary上力条件,钢化原子,便于加载!,Lammps计算输入文件,# run运行计算timestep0.003#时间间隔步Thermo 200#每200步输出热动力学统计量thermo_modify temp new#计算温度通过new指示的方法计算neigh_modify exclude type 2 3#原子2,3之间作用取消(也就是通过不使他们在近邻表中出现实现)Dump 1 all atom 500 dump.crack#每隔500步将原子信息写入文件dump.crackDump 2 mobile custom 500 dump2.c
18、rack tag x y z c_new22run5000#进行5000步的模拟,B.使用EAM势模拟Ni的剪切行为,Z,x,Y,y,z,# 3d metal shear simulation 3维金属剪切模拟Units metal#采用金属材料单位boundarys s p#施加z方向的周期边界条件atom_style atomic#定义原子之间的相互作用(没有键键作用)Lattice fcc 3.52#指定晶格为fcc,晶格常数3.52埃Region box block 0 16.0 0 10.0 0 2.828427#定义区域box (x上下限,y上下限,z上下限)create_box
19、3 box#在box区域内创建包含3种原子类型的simulation box,Lammps计算输入文件,Lammps计算输入文件,Lattice fcc 3.52 orient x 1 0 0 orient y 0 1 1 orient z & 0 -1 1 origin 0.5 0 0#指定晶格类型、晶格常数、x,y,z坐标的晶向# &续行符、晶胞的起始点(0.5表示半个晶格常数)create_atoms 1 box#在box区域内建立类型为1的原子pair_styleeam#定义原子之间作用势为嵌入原子势pair_coeff * * Ni_u3.eam#指定嵌入势参数文件,Lammps计算
20、输入文件,neighbor0.3 bin#指定原子近邻列表参数rc+r1中的r1neigh_modify delay 5#指定近邻表更新频率regionlower block INF INF INF 0.9 INF INFregionupper block INF INF 6.1 INF INF INFgrouplower region lowergroupupper region uppergroupboundary union lower upper#指定边界组,用于施加边界条件groupmobile subtract all boundary#指定可动部分组,用于计算温度,Lammps计
21、算输入文件,setgroup lower type 2setgroup upper type 3#设置原子类型lower为2,upper为3Compute new3d mobile temp#设定温度计算new3dCompute new2d mobile temp/partial 0 1 1#设定温度计算new2d,忽略x方向速度compute new1d all stress/atom #设定原子应力计算,Velocity mobile create 300.0 5812775 temp new3d#初始化mobile区域原子的速度#使new3d方法计算的温度为300k? Fix 1 all
22、 nve#使系综为nve系综,同时确定了方程的积分方法Fix 2 boundary setforce 0.0 0.0 0.0#使边界上原子x,y,z方向的受力均为0Fix 3 mobile temp/rescale 10 300.0 300.0 10.0 1.0#使用直接调温法,每10步准备调一次#如果在300+-10k内不调#如调的话要求其范围在300+-1k之内fix_modify 3 temp new3d#fix 3 调温时采用new3d的计算方案,Lammps计算输入文件,Lammps计算输入文件,#以下为弛豫过程thermo25#每25步在屏幕上打印热动力学统计量thermo_mod
23、ify temp new3d#输出的温度按new3d方案计算timestep0.001#时间步长为0.001psrun100#弛豫100个载荷步,Lammps计算输入文件,#以下为剪切加载velocityupper set 1.0 0 0#上边界原子施加x方向的速度velocitymobile ramp vx 0.0 1.0 y 1.4 8.6 sum yes#在y1.4,8.6区域定义0,1之间的vx插值速度#该速度累加到弛豫的速度上Unfix 3#释放弛豫时候的温度约束3fix3 mobile temp/rescale 10 300.0 300.0 10.0 1.0#重新施加温度调控约束3
24、fix_modify 3 temp new2d#温度的计算采用new2d计算方案,Lammps计算输入文件,#以下为剪切计算Dump 1 all custom 100 dump.shear tag type & x y z c_new24#每100步输出,c_new1d4为new1d计算的原子应力thermo100thermo_modifytemp new2d#每次输出屏幕上的温度按new2d方案计算reset_timestep0#重新设当前为第0步run3000#剪切计算3000步,C. 熔化、凝固过程模拟:Ar Cu Al,对于Cu,建立885的FFC晶格体系,充分弛豫后利用Nose-Ho
25、ver方法,保持压强为0,从2.5 K开始加热,直至发生熔化转变。,输入文件,输入文件,模拟输出结果,模拟发现在1609 K附近发生了一级相变,而Cu的熔点为1357 K。,Cu在特定温度下的性质,均方根位移速度自关联函数径向分布函数,建立一个888的FCC格子,分别在10K、500K、1000K、1800K以及2000K下保持零外压弛豫,得到不同温度下的原子运动情况,以及不同情况下的均方根位移。,输入文本文件均方根位移,输入文本文件均方根位移,输出结果分析,输出结果分析,Cu处于液态时的均方根位移图,D. 应用Lammps程序计算材料的表面能,物理理论建模是关键,程序仅仅只能是实现的工具。,
26、Cu(100) 晶面的表面能计算,几何建模:简单晶格结构物理建模:简单合金势函数,区域分块,100表面,过程建模:实现真空层,输出建模:计算能量,原子坐标,输出控制:格式,参变量,能量最小化方法,计算E0,特殊技巧处理,过程建模:移动盒子,移动原子,产生新的表面,计算产生新表面后的E(final),计算111表面,首先几何建模的过程中要知道如何在物理和几何上产生(111),最后通过lammps的命令的方法实现。lattice fcc 3.615 origin 0 0 0 orient x 1 1 -2 orient y -1 1 0 orient z 1 1 1,小结,Lammps具有强大功能和开放式的扩充结构 后续的数据处理通常相当辛苦 Lammps程序需要结合其他程序来完成你的发 文章的要求模拟研究的任务。 做好修改源程序的准备,