当前位置:
文档之家› LAMMPS软件与分子模拟的实现
LAMMPS软件与分子模拟的实现
Lammps常见命令
unit dimension newton 选择单位系统,L-J、real、metal 2D or 3D? 默认是3D
processors
boundary atom style atom modify atom type 告诉lammps在你的模拟中使用何种力场? pair_style, bond_style, angle_style, dihedral_style, improper_style 边界条件:周期性边界or自由边界? 定义你的模拟体系中的原子属性
CHARMM
主要针对生物体系,也包含部分化学体系。势能模型更新 很快自定义新模型比较方便。计算效率低。
GROMACS 免费 主要针对生物体系,也适当照顾一般化学体系。算法 好,计算效率高。界面友好,维护服务好。 TINKER 免费 一般性分子动力学软件,对生物体系略有偏重。优点 支持多种模型。仍在开发中,某些方面还不完善。 DL-POLY 一般性分子模拟软件,界面友好,计算效率高。维护 服务很好。 Materials Studio
官方网址: / 国内交流论坛:
Lammps的功能
能(features)
一般意义(并行化,可扩充,脚本化输入,接口化编译) 专门意义(能建模原子类型,有什么力场,有那些原子操 作,如何设置系综/边界/约束,积分方法,输出控制,前 后图形处理,以及具有一些什么特色功能)
2. Lammps功能和原理
Lammps初识 Lammps的功能 Lammps的原理 Lammps的特点 Lammps的应用
Lammps初识
Lammps程序是一个经典分子 动力学计算程序。全称 Large-scale Atomic/Molecular Massively Parallel Simulator
Lammps软件入门
明确自己的问题和方向,选择正确的工具
要做的是什么问题,属于物理,化学,力学,材料,还是都有? 能否具体到希望要作出什么结果?实验和理论上是否有相似的研 究?再看问题是否适合lammps程序?是否有别的程序可以替代选 择或者联合选择?
计算环境搭建可行性分析
现有计算机条件: 硬件水平决定模拟的规模 是否有相关的支持:软件环境 团队学习的重要:交流是非常重要
3.经典范例
使用L-J势模拟裂纹的扩展 使用EAM势模拟Ni的剪切行为 Cu、Ni等金属的凝固过程模拟 表面能计算
A. 使用L-J势模拟裂纹的扩展
leftupp er 裂纹 uppe r
y
leftlow er x lowe r
Lammps计算输入文件
• # 2d LJ crack simulation(问题的基本初始 化)
Lammps计算输入文件
• • • • • • • • • • • • • • • • # LJ potentials(指定原子作用势) pair_style lj/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的基本原理
编写、输入模拟程序
运行模拟 输出结果
可视化
结果分析
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 免费 一般性分子模拟软件。 兼容当前大多数的势能模型,编程水平高,计算效率高。可以 模拟软材料和固体物理系统。
Materials Explorer 立足于Windows平台的多功能分子动力学软件。拥有强大的分 子动力学计算及Monte Carlo软件包,是结合应用领域来研究 材料工程的有力工具。Materials Explorer可以用来研究有机物 、高聚物、生物大分子、金属、陶瓷材料、半导体等晶体、非 晶体、溶液,流体,液体和气体相变、膨胀、压缩系数、抗张 强度、缺陷等。Materials Explorer软件中包含2Body,3Body ,EAM,AMBER等63个力场可供用户选择。Materials Explorer软件拥有完美的图形界面,方便使用者操作。
• • • • dimension 2 #2维分子动力学模拟 boundary ssp #x,y方向不存在周期边界条件,z方向周期 边界条件。
• atom_style atomic • #原子类型(金属)
Lammps计算输入文件
• # create geometry创建初始几何构形 • • • • • • • • • • • • • • Lattice hex 0.93 #指定晶格类型(二维hex)和晶格常数 Region box block 0 100 0 40 -0.25 0.25 #定义一个区域 create_box 5 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 #指定单个原子的质量
学习一点分子动力学基础
物理学基础:原子论,量子论,简单的数学 材料学基础:结构化材料,晶体理论 统计力学基础:热力学知识,统计分布 专业基础:热流热导分析,应力分析,辐射损伤分析,蛋白质 计算机基础:程序学习和改进,编程和硬件如求己
准备一份纸版,一份电子版放置在桌面。
养成良好的学习习惯
几个章节必须看(1-1,2,3;2-2,3,5,6,7;3-1,2,3;4-all) 读做例子有感觉(melt,crack,shear) 错误信息自己找(完美的错误提示信息) 随手整理做记录
命令学习(工具体现)
命令名称:基本上告诉你意义 书写格式:脚本语言的特色 格式选项说明:严格遵守,最好理解含义 范例书写:有助于自己写脚本 注意事项:特别的地方 相关命令:命令分类学习,比如输入有那些方式,势函数定 义有哪几类?
Lammps计算输入文件
• • • • • • • # run运行计算 timestep 0.003 #时间间隔步 Thermo 200 #每200步输出热动力学统计量 thermo_modify temp new #计算温度通过new指示的方法计算
• set • set group leftupper type 2 group leftlower type 3
Lammps计算输入文件
• • • • • • • • • • • • • • • • # initial velocities初始化速度 compute new 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.3 Velocity mobile ramp vy 0.0 0.3 y 1.25 38.75 sum yes #mobile原子的速初始度从0到0.3线性变化 # fixes施加约束 fix 1 all nve #nve系综的积分算法 fix 2 boundary setforce NULL 0.0 0.0 #边界boundary上力条件,钢化原子,便于加载!!
补充内容 Lammps与分子动力学
常用模拟软件
Lammps功能和原理 经典范例
1. 常用的MD模拟软件
NAMD:免费
主要针对与生物和化学软材料体系,程序设计水平高,计 算效率高。有很好的分析辅助软件VMD。
AMBER
主要针对生物体系,也适当兼容一般化学分子。有很好的 内置势能模型,自定义新模型和新分子很方便,有很完善 的维护网站。计算效率不高运算速度慢。
Lammps计算输入文件
• region leftupper block INF 20 20 INF INF INF • region leftlower block INF 20 INF 20 INF INF • group leftupper region leftupper • group leftlower region leftlower • #定义左上、左下原子组(便于指定裂纹的 存在)