LAMMPS 简 介
1. LAMMPS 特性 1.1. 简介 LAMMPS: Large-scale Atomic/Molecular Massively Parallel Simulator 美国能源部两个实验室和三个公司联合开发,Sandia国家实验室发布 固、液、气态的经典分子动力学模拟 易于扩展,如加入新的力场、原子类型和边界条件等 C++ with MPI,FFT库函数 支持 GPU 和 OpenMP 一个脚本可以运行一个或多个模拟
1.2. 模型(atom_style) 原子 粗粒化粒子(例如高分子的小球-弹簧模型) United-atom 高分子或有机分子 全原子高分子,有机分子,蛋白质,DNA 金属 颗粒物质 粗粒化介观模型 有限尺度球和椭球粒子 有限尺度 line segment(2d)和三角(3d)粒子 偶极粒子 硬球粒子 以上模型的组合
1.3. 力场 (pair_style, bond_style, angle_style, dihedral_style, improper_style, ksapce_style) 二体势:Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, Yukawa, soft, COMPASS, hydrogen bond, tabulated 带电二体势:库仑势,点电荷-电偶极矩作用 多体势:EAM, Finnis/Sinclair EAM, modified EAM (MEAM), embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, REBO, AIREBO, ReaxFF, COMB 电子力场(eFF,AWPMD) 粗粒化势:DPD, GayBerne, REsquared, colloidal, DLVO 介观势:granular, Peridynamics, SPH Bond potentials:harmonic, FENE, Morse, nonlinear, class 2, quartic (breakable)
Angle potentials:harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, class 2 (COMPASS) Dihedral potentials:harmonic, CHARMM, multi-harmonic, helix, class 2 (COMPASS), OPLS Improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS) 高分子势:all-atom, united-atom, bead-spring, breakable 水分子势:TIP3P, TIP4P, SPC 隐含溶液势:hydrodynamic lubrication, Debye KIM archive of potentials 长程势:Ewald, Wolf, PPPM (similar to particle-mesh Ewald), Ewald/N for long-range Lennard-Jones 与常用力场 CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS 格式兼容
1.4. 初始构型 (read_data, lattice, create_atoms, delete_atoms, displace_atoms, replicate) 从构型文件中读入原子坐标 在格点上放置原子 在给定构型上删除成组原子 已有构型复制多次 移动已有原子的位置
1.5. 系综与约束条件 (fix) 二维或三位系统 正交或非正交(三斜晶系)模拟区域 NVE, NVT, NPT, NPH, Parinello/Rahman积分器 针对原子组群可以指定不同的热耦 通过 Nose/Hoover 或者 Berendsen 压耦控制压强 模拟盒子可以变形(拉伸或剪切) 谐振函数约束的力 刚体约束,SHAKE算法固定键长键角 化学键的断裂、生成、交换 各种边界 非平衡分子动力学模拟
1.6. 积分算法 (run, run_style, minimize) velocity-Verlet 积分器 布朗动力学 刚体积分 梯度共轭或者最陡下降法进行能量优化 rRESPA 多等级时间步长 rerun 命令
1.7. 数据输出 (dump, restart) Log 文件输出热力学信息 文本文件输出原子坐标、速度等信息 并行输出文件流 热力学量(能量、压力等等) 用户定义的计算 热力学量的时间平均 XYZ、XTC、DCD、CFG、自定义格式的原子构型
1.8. 多重交换模型 Nudged elastic band: 寻找局部最优路径。 Parallel replica dynamics: 用多个短模拟估计单个跃迁事件所需时间。 Temperature accelerated dynamics: 在高温模拟以加快动力学过程。 Parallel tempering (replica exchange): 同时跑不同温度的模拟,用高温的 模拟帮助低温模拟提高采样效率。
1.9. 前处理与后处理工具 LAMMPS提供各种串行的前后处理工具软件 Pizzaa.py 软件包,包括创建输入文件、分析、画数据图和可视化。
1.10. 特殊功能 随机转动动力学 实时可视化和交互分子动力学模拟 有限元方法实现的原子与连续模型的耦合 POEMS库实现的耦合刚体积分 巨正则系综(VT)蒙特卡洛模拟插入和删除粒子 低密度流体的蒙特卡洛直接模拟 Peridynamics 介观尺度建模 Targeted MD and steered MD
1.11. LAMMPS 不具备的功能 没有运行LAMMPS的图形界面 没有建立分子体系的工具 自动给定力场参数 模拟结果的复杂分析 可视化模拟结果 输出数据作图
2. LAMMPS 输入文件格式 2.1. 构型文件 ********* 标题 XXX atoms 体系的总原子数 ********* 标题 XXX atoms 体系的总原子数 XXX bonds 体系的总键数 XXX angles 体系的总角数 XXX dihedrals 体系的总二面角数 XXX impropers 体系的总 improper dihedral 数 XXX atom types 原子类型数 XXX bond types 化学键类型数 XXX angle types 键角类型数 XXX dihedral types 二面角类型数 XXX improper types improper dihedral 类型数
XXX XXX xlo xhi 模拟盒子在 x 方向的范围 XXX XXX ylo yhi 模拟盒子在 y 方向的范围 XXX XXX zlo zhi 模拟盒子在 z 方向的范围 Masses {atom-type mass} Pair Coeffs {pair-type p1 p2 p3 p4} Bond Coeffs {bond-type p1 p2}
Angle Coeffs {angle-type p1 p2} Dihedral Coeffs {dihedral-type p1 p2 p3} Improper Coeffs {improper-type p1 p2 p3} Atoms {atom-ID molecule-ID atom-type q x y z} Velocities
{atom-ID vx vy vz} Bonds {bond-ID bond-type atom-ID1 atom-ID2} Angles {angle-ID angle-type atom-ID1 atom-ID2 atom-ID3} Dihedrals {dihedral-ID dihedral-type atom-ID1 atom-ID2 atom-ID3 atom-ID4}
Impropers {improper-ID improper-type atom-ID1 atom-ID2 atom- ID3 atom-ID4}
2.2. 参数文件 # ******* 标题 units *** 能量单位 atom_style *** 原子构型格式 # ******* 标题 units *** 能量单位 atom_style *** 原子构型格式 boundary * * * 周期边界条件 pair_style *** 非成键相互作用的函数形式 pair_modify *** 修改非成键相互作用的函数形式 bond_style *** 化学键类型 angle_style *** 键角类型 dihedral_style *** 二面角类型 improper_style *** improper dihedral 类型 kspace_style *** 长程力算法 read_data *** 指定读入数据文件名
neighbor *** 设定 neighbor list 参数 neigh_modify *** 原子构型格式 timestep * * * 时间步长;单位取决于 units 的设置 thermo_style *** 输出文件的数据内容 thermo XXX 输出数据间隔 fix *** 设定模拟系综及参数等等 dump *** 设定输出构型文件名及参数 run XXX 运行的总步长 write restart *** 断点保存的文件名
3. LAMMPS 命令 3.1. 命令分类 逐行解释执行 命令都用小写,文件名和变量都用大写 &: 续行;#:注释;$:变量 初始化命令:atom_modify, atom_style, boundary, dimension, newton, processors, units 初始构型命令:create_atoms, create_box, lattice, read_data, read_dump, read_restart, region, replicate 力场命令:angle_coeff, angle_style, bond_coeff, bond_style, dielectric, dihedral_coeff, dihedral_style, improper_coeff, improper_style, kspace_modify, kspace_style, pair_coeff, pair_modify, pair_style, pair_write, special_bonds
设置命令:communicate, group, mass, min_modify, min_style, neigh_modify, neighbor, reset_timestep, run_style, set, timestep, velocity Fix 命令:fix, fix_modify, unfix Compute 命令:compute, compute_modify, uncompute 输出命令:dump, dump image, dump_modify, restart, thermo, thermo_modify, thermo_style, undump, write_restart 运行命令:delete_atoms, delete_bonds, displace_atoms, change_box, minimize, neb prd, rerun, run, temper 其它命令:clear, echo, if, include, jump, label, log, next, print, shell, variable
3.2. Fix 命令 设置模拟系综、算法、条件、参数等等。
3.3. Compute 命令 设置实时运行中进行的数据处理运算。
3.4. Pair_style 非成键相互作用的设置。
3.5. Bond_style 3.6. Angle_style 3.7. Dihedral_style 化学键的设置。 键角的设置。 二面角的设置。
3.8. Improper_style 3.9. Kspace_style Improper dihedral 的设置。 长程力算法命令。 另外还有很多扩展命令对应于相应的扩展软件包。
LAMMPS 实 例
1. melt 快速融化 LJ 体系 快速融化 4000 个相互作用为 Lennard-Jones 势的粒子。
2. meam SiC 体系模拟 用多体力场 MEAM 模拟 SiC 晶体。
3. peptide 短肽的动力学 模拟一个短肽分子的动力学过程。