LAMMPS软件与分子模拟的实现_第1页
LAMMPS软件与分子模拟的实现_第2页
LAMMPS软件与分子模拟的实现_第3页
LAMMPS软件与分子模拟的实现_第4页
LAMMPS软件与分子模拟的实现_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、补充内容 Lammps与分子动力学常用模拟软件Lammps功能和原理经典范例1. 常用的MD模拟软件NAMD:免费 主要针对与生物和化学软材料体系,程序设计水平高,计算效率高。有很好的分析辅助软件VMD。AMBER 主要针对生物体系,也适当兼容一般化学分子。有很好的内置势能模型,自定义新模型和新分子很方便,有很完善的维护网站。计算效率不高运算速度慢。CHARMM 主要针对生物体系,也包含部分化学体系。势能模型更新很快自定义新模型比较方便。计算效率低。GROMACS 免费 主要针对生物体系,也适当照顾一般化学体系。算法好,计算效率高。界面友好,维护服务好。TINKER 免费 一般性分子动力学软件

2、,对生物体系略有偏重。优点支持多种模型。仍在开发中,某些方面还不完善。DL-POLY 一般性分子模拟软件,界面友好,计算效率高。维护服务很好。n Materials StudioLAMMPS 免费 一般性分子模拟软件。兼容当前大多数的势能模型,编程水平高,计算效率高。可以模拟软材料和固体物理系统。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:/www

4、.Lammps的功能能(features)一般意义(并行化,可扩充,脚本化输入,接口化编译)专门意义(能建模原子类型,有什么力场,有那些原子操作,如何设置系综/边界/约束,积分方法,输出控制,前后图形处理,以及具有一些什么特色功能)不能(non-features)- 非图形化界面,不能自动建立分子结构模型和分配力场参数,不具有复杂的分析的手段,不能可视化输出结果-补救:Pizza.py 工具包,用于建模和分析以及可视化,但是功能不够强大。-必须一些其他前后处理软件(几何建模,物理建模,可视化分析)结合使用,接口方法。Lammps的基本原理编写、输入模拟程序运行模拟可视化结果分

5、析输出结果Lammps输入文件的主要组成部分InitializationAtom definitionSettingsRun a simulation后面的两个部分可以按照需要多次重复。Lammps软件目前的特点从势场角度看:建模软物质(生物分子,聚合物),固态材料(金属,半导体),以及粗粒子和介观材料。更一般的说是lammps程序是用来建模原子/介观/连续尺度物质以及其在热、力学、化学条件下的性质的模拟软件,因此是系统化方法。Lammps程序运行环境:单CPU和多CPU,采用的是消息响应和模拟域的空间分解并行机制。Lammps程序代码共享和模块化设计,具有功能易于扩充的特性。新版采用C/C+

6、语言书写,周期性发布,以日期为为准,不断更新一些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、metal2D or 3D? 默认是3D边界条件:周期性边界or自由边界?定义你的模拟体系中的原子属性告诉lammps在你的模拟中使用何种力场?pair_style, bond_style, angle_style, dihedral_style, improper_st

9、yleLammps软件的应用应用步骤程序安装安装平台环境(考虑不同的操作系统,是否并行计算)简单易行的安装Windows下:命令行执行方式Linux下:编译选择项几个关键点:编译器的选择;并行库的位置,相关库的位置应用步骤-实例学习输入脚本格式书写:3-1节内容,积木式搭建分块命令学习方法:几何模型构建:atom_style, boundary, dimension,units create_atoms, create_box, lattice, read_data, read_restart, region, replicate物理模型构建:angle_coeff, angle_style,

10、 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, enforci

11、ng boundary conditions, computing diagnostics, etc. 输出模型构建:compute过程计算量,热力学输出量(全局量),局部表征量(单个原子、组原子)3.经典范例使用L-J势模拟裂纹的扩展使用EAM势模拟Ni的剪切行为Cu、Ni等金属的凝固过程模拟表面能计算A. 使用L-J势模拟裂纹的扩展裂纹lowerupperleftupperleftlowerxyLammps计算输入文件 # 2d LJ crack simulation(问题的基本初始化) dimension 2 #2维分子动力学模拟 boundary s s p #x,y方向不存在周期边界

12、条件,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_at

13、oms 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 block INF INF INF 1.25 INF INFGroup lower region 1#定义lower组(便

14、于施加外加速度)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 INF regionleftlower block INF 20 INF 20 INF INF groupleftupper region l

15、eftupper 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 #定义原子应力的计算(整

16、个区域)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 setforce NULL 0.0 0.0 #边界boundary上力条件,钢化原子,便于加载!Lammps

17、计算输入文件 # 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.crack Dump 2 mobile custom 500 dump2.crack tag x y z c_new22 run5000 #进行5000步的模

18、拟B.使用EAM势模拟Ni的剪切行为ZxYyz # 3d metal shear simulation 3维金属剪切模拟 Units metal #采用金属材料单位 boundary s 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 3 box #在box区域内创建包含3种原子类型的simulati

19、on boxLammps计算输入文件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计算输入文件 neighbor0.3 bi

20、n #指定原子近邻列表参数rc+r1中的r1 neigh_modify delay 5 #指定近邻表更新频率 regionlower block INF INF INF 0.9 INF INF regionupper block INF INF 6.1 INF INF INF grouplower region lower groupupper region upper groupboundary union lower upper #指定边界组,用于施加边界条件 groupmobile subtract all boundary #指定可动部分组,用于计算温度Lammps计算输入文件 set

21、group lower type 2 setgroup upper type 3 #设置原子类型lower为2,upper为3 Compute new3d mobile temp #设定温度计算new3d Compute 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方向的受力均为0 Fix 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步在屏幕上打印热动力学统计量

23、thermo_modify temp new3d #输出的温度按new3d方案计算 timestep0.001 #时间步长为0.001ps run100 #弛豫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 #释放弛豫时候的温度约束3 fix 3 mobile temp/rescale 10 300.0 300.0 10.0 1.0 #重新施加温度调控约束3 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计算的原子应力 thermo100 thermo_mod

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论