Lammps软件的学习和应用hooge2011年4月上海超算中心Lammps程序应用培训交流主要内容分享一些曾经的学习和使用体会初识LAMMPS程序–lammps程序初识–Lammps程序的特点如何有效学习lammps程序–如何快速入门–如何有效学习手册如何应用lammps程序解决问题–Lammps程序应用过程–Lammps应用的实例分析Lammps程序初识Lammps程序是一个经典分子动力学计算程序。LAMMPS是代表Large-scaleAtomic/MolecularMassivelyParallelSimulator。官方网址::adevicethatgenerateslight,heat,ortherapeuticradiation;somethingthatilluminesthemindorsoul--国内交流论坛:程序能与不能能(features)–一般意义(并行化,可扩充,脚本化输入,接口化编译)–专门意义(能建模原子类型,有什么力场,有那些原子操作,如何设置系综/边界/约束,积分方法,输出控制,前后图形处理,以及具有一些什么特色功能)不能(non-features)-非图形化界面,不能自动建立分子结构模型和分配力场参数,不具有复杂的分析的手段,不能可视化输出结果-补救:Pizza.py工具包,用于建模和分析以及可视化,但是功能不够强大。-必须一些其他前后处理软件(几何建模,物理建模,可视化分析)结合使用,接口方法。Lammps程序目前的特点(简述)从势场角度看:建模软物质(生物分子,聚合物),固态材料(金属,半导体),以及粗粒子和介观材料。更一般的说是lammps程序是用来建模原子/介观/连续尺度物质以及其在热、力学、化学条件下的性质的模拟软件,因此是系统化方法。Lammps程序运行环境:单CPU和多CPU,采用的是消息响应和模拟域的空间分解并行机制。Lammps程序代码共享和模块化设计,具有功能易于扩充的特性。新版采用C/C++语言书写,周期性发布,以日期为为准,不断更新一些bug和增加一些功能。脚本语言应用开发。美国能源部下属的圣地亚国家实验室发布,主要作者:StevePlimpton,AidanThompson,andPaulCrozier网上邮件组可以解决和及时交流Lammps程序入门选择正确的比正确的选择更重要明确自己的问题和方向,选择正确的工具–要做的是什么问题,属于物理,化学,力学,材料,还是都有?能否具体到希望要作出什么结果?实验和理论上是否有相似的研究?再看问题是否适合lammps程序?是否有别的程序可以替代选择或者联合选择?计算环境搭建可行性分析–现有计算机条件:硬件水平决定模拟的规模–是否有相关的支持:软件环境–团队学习的重要:交流是非常重要学习一点分子动力学基础–物理学基础:原子论,量子论,简单的数学–材料学基础:结构化材料,晶体理论–统计力学基础:热力学知识,统计分布–专业基础:热流热导分析,应力分析,辐射损伤分析,蛋白质–计算机基础:程序学习和改进,编程和硬件识别Lammps手册的使用----法宝求人不如求己–准备一份纸版,一份电子版放置在桌面。养成良好的学习习惯–几个章节必须看(1-1,2,3;2-2,3,5,6,7;3-1,2,3;4-all)–读做例子有感觉(melt,crack,shear)–错误信息自己找(完美的错误提示信息)–随手整理做记录命令学习(工具体现)–命令名称:基本上告诉你意义–书写格式:脚本语言的特色–格式选项说明:严格遵守,最好理解含义–范例书写:有助于自己写脚本–注意事项:特别的地方–相关命令:命令分类学习,比如输入有那些方式,势函数定义有哪几类?Lammps程序的应用千里之行,始于足下应用步骤—程序安装–安装平台环境(考虑不同的操作系统,是否并行计算)–简单易行的安装Windows下:命令行执行方式Linux下:编译选择项几个关键点:编译器的选择;并行库的位置,相关库的位置应用步骤--实例学习–输入脚本格式书写:3-1节内容,积木式搭建–分块命令学习方法:几何模型构建:atom_style,boundary,dimension,unitscreate_atoms,create_box,lattice,read_data,read_restart,region,replicate物理模型构建:angle_coeff,angle_style,bond_coeff,bond_style,dielectric,dihedral_coeff过程模型构建:Fix:isanyoperationthatisappliedtothesystemduringtimesteppingorminimization.Examplesincludeupdatingofatompositionsandvelocitiesduetotimeintegration,controllingtemperature,applyingconstraintforcestoatoms,enforcingboundaryconditions,computingdiagnostics,etc.输出模型构建:compute过程计算量,热力学输出量(全局量),局部表征量(单个原子、组原子)实例研读一之裂纹分析#2dLJcracksimulation//解释和说明#-------------------几何模型----------------dimension2//几何维度boundaryssp//边界设定atom_styleatomic//原子类型设定neighbor0.3bin//计算方法的设定neigh_modifydelay5#creategeometrylatticehex0.93//晶格结构regionboxblock0100040-0.250.25//模拟几何区域设定create_box5box//创建模拟域几何盒子(box)create_atoms1box//创建原子#------------------------物理模型------------------mass*1.0//质量#LJpotentialspair_stylelj/cut2.5//力场类型pair_coeff**1.01.02.5//力场参数#definegroups#-----------------------过程建模--------------------Region1blockINFINFINF1.25INFINF//区域划分grouplowerregion1//区域内原子分组region2blockINFINF38.75INFINFINFgroupupperregion2groupboundaryunionloweruppergroupmobilesubtractallboundary//组原子可以组合regionleftupperblockINF2020INFINFINFregionleftlowerblockINF20INF20INFINFgroupleftupperregionleftuppergroupleftlowerregionleftlowersetgroupleftuppertype2//不同区域原子分配类型setgroupleftlowertype3setgrouplowertype4setgroupuppertype5#initialvelocities#---------------过程建模-----------------computenewmobiletempvelocitymobilecreate0.01887723tempnew//边界施加速度velocityupperset0.00.30.0velocitymobilerampvy0.00.3y1.2538.75sumyes#----------------分子动力学过程建模---------#fixesfix1allnve//积分,样本fix2boundarysetforceNULL0.00.0#run#------------------输出建模-------------------timestep0.003//时间步长thermo200//采样步长thermo_modifytempnewneigh_modifyexcludetype23dump1allatom500dump.crack//输出到文件run5000//运行开始Lammps程序应用之二----表面能计算物理理论建模是关键,程序仅仅只能是实现的工具。新表面100表面表面能计算几何建模:简单晶格结构物理建模:简单合金势函数区域分块100表面过程建模:实现真空层输出建模:计算能量,原子坐标输出控制:格式,参变量能量最小化方法,计算E0特殊技巧处理过程建模:移动盒子,移动原子,产生新的表面,计算产生新表面后的E(final)计算111表面,首先几何建模的过程中要知道如何在物理和几何上产生(111),最后通过lammps的命令的方法实现。latticefcc3.615origin000orientx11-2orienty-110orientz111•Lammps具有强大功能和开放式的扩充结构•后续的数据处理常常是非常辛苦的•Lammps程序需要结合其他程序来完成你的发文章的要求模拟研究的任务。•做好修改源程序的准备小结谢谢