
LAMMPS软件与分子模拟的实现.ppt
44页研究历史,20世纪50年代,高温合金设计,航空航天领域60年代,苏联人提出人工半导体超晶格概念,预报了化合物的结构与性能70年代,梅迪马金属间化合物的生成热和稳定性预测,苏联萨维斯基金属间化合物计算和预报日本人提出“d电子合金设计”思想,应用于钛合金设计领域80年代,美国海军研究院建立隐身材料设计决策系统日本山岛良绩等建立了计算机辅助合金设计系统,应用于核反应堆防护材料的设计90年代,建立了一系列材料设计专家系统,兴起了从原子分子层次设计材料的热潮单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,补充内容 Lammps与分子动力学,常用模拟软件,Lammps功能和原理,经典范例,1.常用的MD模拟软件,NAMD:,免费,主要针对与生物和化学软材料体系,程序设计水平高,计算效率高有很好的分析辅助软件VMDAMBER,主要针对生物体系,也适当兼容一般化学分子有很好的内置势能模型,自定义新模型和新分子很方便,有很完善的维护网站计算效率不高运算速度慢CHARMM,主要针对生物体系,也包含部分化学体系势能模型更新很快自定义新模型比较方便计算效率低GROMACS,免费,主要针对生物体系,也适当照顾一般化学体系。
算法好,计算效率高界面友好,维护服务好TINKER,免费,一般性分子动力学软件,对生物体系略有偏重优点支持多种模型仍在开发中,某些方面还不完善DL-POLY,一般性分子模拟软件,界面友好,计算效率高维护服务很好Materials Studio,LAMMPS,免费,一般性分子模拟软件兼容当前大多数的势能模型,编程水平高,计算效率高可以模拟软材料和固体物理系统Materials Explorer,立足于Windows平台的多功能分子动力学软件拥有强大的分子动力学计算及Monte Carlo软件包,是结合应用领域来研究材料工程的有力工具Materials Explorer可以用来研究有机物、高聚物、生物大分子、金属、陶瓷材料、半导体等晶体、非晶体、溶液,流体,液体和气体相变、膨胀、压缩系数、抗张强度、缺陷等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,官方网址:,Lammps的功能,能(features),一般意义(并行化,可扩充,脚本化输入,接口化编译),专门意义(能建模原子类型,有什么力场,有那些原子操作,如何设置系综/边界/约束,积分方法,输出控制,前后图形处理,以及具有一些什么特色功能),不能(non-features),-非图形化界面,不能自动建立分子结构模型和分配力场参数,不具有复杂的分析的手段,不能可视化输出结果,补救:,Pizza.py,工具包,用于建模和分析以及可视化,但是功能不够强大必须一些其他前后处理软件(几何建模,物理建模,可视化分析)结合使用,接口方法Lammps的基本原理,编写、输入模拟程序,运行模拟,可视化,结果分析,输出结果,Lammps输入文件的主要组成部分,Initialization,Atom definition,Settings,Run a simulation,后面的两个部分可以按照需要多次重复,Lammps软件目前的特点,从势场角度看,:建模软物质(生物分子,聚合物),固态材料(金属,半导体),以及粗粒子和介观材料。
更一般的说是lammps程序是用来建模原子/介观/连续尺度物质以及其在热、力学、化学条件下的性质的模拟软件,因此是系统化方法Lammps程序运行环境:单CPU和多CPU,采用的是消息响应和模拟域的空间分解并行机制Lammps程序代码共享和模块化设计,具有功能易于扩充的特性新版采用C/C+语言书写,周期性发布,以日期为为准,不断更新一些bug和增加一些功能脚本语言应用开发美国能源部下属的圣地亚国家实验室发布,主要作者:Steve Plimpton,Aidan Thompson,and Paul Crozier,网上邮件组可以解决和及时交流,Lammps软件入门,明确自己的问题和方向,选择正确的工具,要做的是什么问题,属于物理,化学,力学,材料,还是都有?能否具体到希望要作出什么结果?实验和理论上是否有相似的研究?再看问题是否适合lammps程序?是否有别的程序可以替代选择或者联合选择?,计算环境搭建可行性分析,现有计算机条件:,硬件水平决定模拟的规模,是否有相关的支持:软件环境,团队学习的重要:交流是非常重要,学习一点分子动力学基础,物理学基础:原子论,量子论,简单的数学,材料学基础:结构化材料,晶体理论,统计力学基础:热力学知识,统计分布,专业基础:热流热导分析,应力分析,辐射损伤分析,蛋白质,计算机基础:程序学习和改进,编程和硬件识别,如何利用好Lammps手册?,求人不如求己,准备一份纸版,一份电子版放置在桌面。
养成良好的学习习惯,几个章节必须看(1-1,2,3;2-2,3,5,6,7;3-1,2,3;4-all),读做例子有感觉(melt,crack,shear),错误信息自己找(完美的错误提示信息),随手整理做记录,命令学习(工具体现),命令名称:基本上告诉你意义,书写格式:脚本语言的特色,格式选项说明:严格遵守,最好理解含义,范例书写:有助于自己写脚本,注意事项:特别的地方,相关命令:命令分类学习,比如输入有那些方式,势函数定义有哪几类?,Lammps常见命令,unit,dimension,newton,processors,boundary,atom style,atom modify,atom type,选择单位系统,L-J、real、metal,2D or 3D?默认是3D,边界条件:周期性边界or自由边界,?,定义你的模拟体系中的原子属性,告诉lammps在你的模拟中使用何种力场,?,pair_style,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_restart,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 temperature,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 simulation(问题的基本初始化),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,#定义一个区域,create_box5 box,#在指定区域建立一个simulation box,5表示原子类型的种类数,create_atoms 1 box,#在simulation box中创建类型为1的原子(原子位置初始化),Mass 1 1.0,Mass 2 1.0,Mass 3 1.0,Mass 4 1.0,Mass 5 1.0,#指定单个原子的质量,Lammps计算输入文件,#LJ potentials(指定原子作用势),pair_stylelj/cut 2.5,#指定lj势,截断半径为2.5,pair_coeff*1.0 1.0 2.5,#指定lj势参数,#define groups(便于加载),Region 1 block INF INF INF 1.25 INF INF,Group lower region 1,#定义lower组(便于施加外加速度),Region 2 block INF INF 38.75 INF INF INF,Group upper region 2,#定义upper组(便于施加外加速度),Group boundary union lower upper,#定义总边界组,Group mobile subtract all boundary,#定义可动原子组(便于统计温度),Lammps计算输入文件,regionleftupper block INF 20 20 INF INF INF,regionleftlower block INF 20 INF 20 INF INF,groupleftupper region leftupper,groupleftlower region leftlower,#定义左上、左下原子组(便于指定裂纹的存在),setgroup leftupper type 2,setgroup leftlower type 3,setgroup lower type 4,setgroup upper type 5,#指定原子类型(便于指定裂纹的存在),Lammps计算输入文件,#initial velocities初始化速度,computenew mobile temp,#定义温度的计算(可动区域内统计平均),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.。












