lammps软件介绍与使用

1.LAMMPS简介

LAMMPS模拟原理
  • 数值方法求解牛顿方程(牛顿第二定律)
Created with Raphaël 2.3.0 开始计算 初始化位置和动量设置模 拟的边界条件和初始条件 能量最小化,几何结构优化 设定体系中粒子的初速度 解牛顿运动方程, 并计算(t+△t)时刻 体系中粒子的位 置、速度和力 体系是否 达到平衡 计算(t+△t)时间后位 置、速度、动量、能 量等物理量,并对结 果进行统计处理 t>max 结束 yes no yes no
LAMMPS软件用途
  • 微观结构演化
  • 结构优化
  • 过渡态搜索
  • 热导率计算
  • 形成能计算
LAMMPS使用流程
in.relax  sub_lmp  W_zhou.eam.alloy

  ↓          ↓           ↓
 in文件  任务提交脚本  势文件   模型文件(可有可无)

in.relax  log.lammps  sub_lmp  W.xyz  W_zhou.eam.alloy

              ↓                 ↓
           日志文件          轨迹文件
   in文件:用命令的形式告诉LAMMPS怎么算,算什么,输出什么
   模型文件(可有可无):模拟的初始构型
   势文件(可有可无):帮助LAMMPS计算原子间相互作用力
   日志文件:记录in文件中命令运行情况

2.建模方法以及势参数获取

常见的建模方式

1.使用LAMMPS内置建模命令
2.使用atomsk建模软件
3.其他的建模软件,如PACKMOL、moltemplate、Avogadro获取方法

势参数(文件)方法

1.根据文献在LAMMPS内置文件中查找
2.根据文献自行在网上查找
https://www.ctcms.nist.gov/potentials/
http://cmse.postech.ac.kr/home_2nnmeam
http://apot.mgedata.cn/InteratomicPotentials
3.根据文献自行写代码获取
LAMMPS官方提供,~/lammps/tools/eam_database/create.f
4.发邮件找作者要

3.in文件以及示例讲解

in文件书写框架

描述一套完整的分子动力学流程,观察粒子在合理的物理环境下的演化过程

  • 初始模拟系统设置
  • 初始模型构建(读取模型数据)
  • 定义原子间相互作用势
  • 定义原子/体系某些信息的计算(原子势能…)
  • 定义输出原子(坐标)/体系(热力学)信息
  • 模拟环境设定并运行
金属Ni的拉伸模拟

1.初始模拟系统设置

units              metal
atom_style         atomic
boundary           p p p

2.初始模型构建(读取模型数据)

lattice            fcc 3.52
region             box block 0 10 0 10 0 10
create_box         1 box
create_atoms       1 box

3.定义原子间相互作用势

pair_style         meam/c
pair_coeff         * * library.meam Ni CoNiCrFeMn.meam Ni

4.定义输出原子(坐标)/体系(热力学)信息

thermo             1000
thermo_style       custom step lx ly lz press pxx pyy pzz pe temp
dump               1 all custom 500 Ni.xyz id type x y z

5.模拟环境设定并运行

  • 环境一:npt系综下弛豫
     velocity          all create 300 12345 dist gaussian
     fix               1 all npt temp 300 300 1 iso 0 0 1 drag 1
     timestep          0.001
     run               20000 
    
  • 环境二:npt系综下沿x轴拉伸
    unfix              1
    fix                1 all npt temp 300 300 1 y 0 0 1 z 0 0 1 drag 1
    fix                2 all deform 1 x erate 0.01 units box
    run                20000
    
in文件
##调试参数设置为变量
variable a equal 0.3  #定义变量a,值为0.3
variable lat equal 3.52  #定义变量lat,值为3.52
variable bx equal 5  #定义变量bx by bz,值为5
variable by equal 5
variable bz equal 5
variable T equal 300  #定义变量T,值为300
variable s equal 0.01  #定义变量s,值为0.01

##模拟条件初始化
units metal  #设置模拟单位为metal单位系统
atom_style atomic  #定义原子样式,atomic样式适用于粗粒液体、固体、金属
boundary p p p  #周期性边界条件,xyz方向
neighbor $a bin  #定义邻居列表的参数,skin超出力界限的额外距离为3,使用binning(箱)构建列表

##构建HEA初始模型
lattice fcc ${lat}  #定义FCC晶格,晶胞长度3.52埃 
region box block -${bx} ${bx} -${by} ${by} -${bz} ${bz}  #定义名为box块状区域
create_box 1 box  #在box区域创建1个模拟框,1种原子
create_atoms 1 box  #box用晶格上的粒子填充整个模拟盒子,1种原子

##定义原子间相互作用势
pair_style meam/c  #使用改进的嵌入原子方法来计算各种材料的非键相互作用
pair_coeff * * library.meam Ni CoNiCrFeMn.meam Ni  #元素库文件library.meam 合金参数文件CoNiCrFeMn.meam

##输出热力学信息
thermo 1000  #每1000时间步长输出热力学信息
thermo_style custom step lx ly lz press pxx pyy pzz pe temp  #自定义输出,输出时间步长、xyz方向的盒长、压力、xx和yy和zz方向压力张量、总势能和温度

##构建NPT模拟环境
velocity all create $T 12345 mom yes rot no  #所有原子在指定温度T的使用随机种子12345生成速度,速度的线性动量为零,角动量不为零
fix 1 all npt temp $T $T 1 iso 0 0 1 drag 1  #1为指定的修复ID,所有原子保持npt系综,初始温度T,结束温度T,温度阻尼系数为1,初始压力0,结束压力0,压力阻尼系数是1,恒温器/恒压器阻力系数为1

##保证弛豫时间足够长
timestep 0.001  #时间步长为0.001皮秒
run 20000  #设置运行20000时间步长

## 输出NPT弛豫后体系的长度
variable Ltmp equal lx  #将x方向的盒长设置为变量Ltmp
variable Lini equal v_Ltmp  #将变量Ltmp值赋予变量Lini
print "Initial Length,Lini: ${Lini}"  #输出弛豫后的初始长度

##在保持y和z方向压强不变的NPT环境下沿x轴拉伸
unfix 1  #删除先前定义的修复1
fix 1 all npt temp $T $T 1 y 0 0 1 z 0 0 1 drag 1  #1为指定的修复名称,所有原子保持npt系综,初始温度T,结束温度T,温度阻尼系数1,开始y和z方向张量0,结束y和z方向张量0,应力阻尼系数1,恒温器阻力系数为1
fix 2 all defrom 1 x erate $s units box remap x  #2为指定的修复名称,每隔1个时间步长deform更改模拟框的形状,以s的工程应变率改变盒子x方向尺寸(L(t) = L0 (1 + erate*dt)),box使用标准距离单位,remap x强制原子通过与框变形完全匹配的仿射变换进行变形

##输出原子坐标信息
dump 1 all custom 500 heas.xyz id type x y z  #1为指定转储名称,每隔500时间步长将所有原子的id、类型、xyz储存到heas.xyz文件中

##输出strain-stress数据
variable strain equal (lx-v_Lini)/v_Lini  #定义变量应变
variable stress equal -pxx/10000  #定义变量应力
fix 3 all print 100 "${strain} ${stress}" file strain_stress.txt screen no  #每隔100时间步长在strain_stress.txt中打印应变与应力,并且关闭屏幕的日志输出

##run 
run 20000  #设置运行20000时间步长

##模拟结束
print "All done"
  • 19
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) 是一种用于分子动力学模拟的开源软件包,可用于模拟各种原子和分子系统的动力学行为。COLVARS (Collective Variables) 是 LAMMPS 中的一个插件,用于定义系统的集体变量并对其进行约束,以帮助研究系统的特定性质。 COLVARS 的主要功能是定义和计算系统的集体变量,这些变量是通过原子坐标或其他系统参数来描述的。通过将这些集体变量与力场相结合,COLVARS 可以在模拟过程中实时计算这些变量的值,并将其用于分析和约束。集体变量的定义和计算是灵活可调的,用户可以根据研究的问题选择适当的变量,并使用合适的算法进行计算。 COLVARS 可以用于多种研究方向,包括生物物理、材料科学和化学等。例如,在蛋白质模拟中,可以使用 COLVARS 定义和计算蛋白质的二级结构参数,如氢键数量和二面角。这些集体变量可以用来约束模拟中的结构,以研究蛋白质的稳定性和动力学。 COLVARS 不仅限于集体变量的计算,还可以用于定义约束和谐力场,以约束系统的某些属性,如距离、角度或二面角。这些约束可以用来模拟系统的热力学过程,如相变、溶解和反应等。 总之,LAMMPS 中的 COLVARS 插件提供了一种灵活而强大的工具,用于定义和计算系统的集体变量,并将其用于模拟和分析。通过 COLVARS 的使用,研究人员可以更好地理解和探索原子和分子系统的动力学行为,以及它们与系统性质之间的关联。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值