LAMMPS手册中文版讲解.docx
- 文档编号:11288103
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:12
- 大小:21.14KB
LAMMPS手册中文版讲解.docx
《LAMMPS手册中文版讲解.docx》由会员分享,可在线阅读,更多相关《LAMMPS手册中文版讲解.docx(12页珍藏版)》请在冰豆网上搜索。
LAMMPS手册中文版讲解
LAMMPS手册-中文解析
一、简介
本部份大至介绍了LAMMPS的一些功能和缺点。
1.什么是LAMMPS?
LAMMPS是一个经典的分子动力学代码,他能够模拟液体中的粒子,固体和汽体的系综。
他能够采纳不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS能够计算的体系小至几个粒子,大到上百万乃至是上亿个粒子。
LAMMPS能够在单个处置器的台式机和笔记本本上运行且有较高的计算效率,可是它是专门为并行运算机设计的。
他能够在任何一个按装了C++编译器和MPI的平台上运算,这其中固然包括散布式和共享式并行机和Beowulf型的集群机。
LAMMPS是一能够修改和扩展的计算程序,比如,能够加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是依照不同的边界条件和初始条件对通太短程和长程力彼此作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采纳相邻清单来跟踪他们临近的粒子。
这些清单是依照粒子间的短程互拆力的大小进行优化过的,目的是幸免局部粒子密度太高。
在并行机上,LAMMPS采纳的是空间分解技术来分派模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间能够分派在一个处置器上。
各个处置器之间彼此通信而且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情形)在模拟3维矩行盒子而且具有近均一密度的体系时效率最高。
2.LAMMPS的功能
整体功能:
能够串行和并行计算
散布式MPI策略
模拟空间的分解并行机制
开源
高移植性C++语言编写
MPI和单处置器串行FFT的可选性(自概念)
能够方便的为之扩展上新特点和功能
只需一个输入脚本就可运行
有概念和利用变量和方程完备语法规那么
在运行进程中循环的操纵都有严格的规那么
只要一个输入脚本试就能够够够同时实现一个或多个模拟任务
粒子和模拟的类型:
(atomstyle命令)
原子
粗粒化粒子
全原子聚合物,有机分子,蛋白质,DNA
联合原子聚合物或有机分子
金属
粒子材料
粗粒化介观模型
延伸球形与椭圆形粒子
点偶极粒子
刚性粒子
所有上面的杂化类型
力场:
(命令:
pairstyle,bondstyle,anglestyle,dihedralstyle,improperstyle,kspacestyle)
对彼此作用势:
L-J,Buckingham,Morse,Yukawa,soft,class2(COMPASS),tabulated.
带点对彼此作用势:
Coulombic,point-dipole.
多体作用势:
EAM,Finnis/SinclairEAM,modifiedEAM(MEAM),Stillinger-Weber,Tersoff,AIREBO,ReaxFF
粗粒化作用势:
DPD,GayBerne,Resquared,Colloidal,DLVO
介观作用势:
granular,Peridynamics
键势能:
harmonic,FENE,Morse,nonlinear,class2,quartic
键角势能:
harmonic,CHARMM,cosine,cosine/squared,class2(COMPASS)
二面角势能:
harmonic,CHARMM,multi-harmonic,helix,OPLS,class2(COMPASS)
不合理势能:
harmonic,CVFF,class2(COMPASS)
聚合物势能:
all-atom,united-atom,bead-spring,breakable
水势能:
TIP3P,TIP4P,SPC
隐式溶剂势能:
hydrodynamiclubrication,Debye
长程库伦与分散:
Ewald,PPPM,Ewald/N(针对长程L-J作用)
能够有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场
能够采纳GPU加速的成对类型
杂化势能函数:
multiplepair,bond,angle,dihedral,improperpotentials(多对势能处于更高的优先级)
原子创建:
(命令:
read_data,lattice,create-atoms,delete-atoms,displace-atoms,replicate)
从文件中读入各个原子的坐标
在一个或多个晶格中创建原子
删除几何或逻辑原子基团
复制已存在的原子多次
替换原子
系综,约束条件,边界条件:
(命令:
fix)
二维和三维体系
正角或非正角模拟空间
常NVE,NVT,NPT,NPH积分器
原子基团与几何区域可选择不同的温度操纵器
有Nose/Hoover和Berendsen压力操纵器来操纵体系的压力(任一维度上)
模拟合子的变形(扭曲与剪切)
简谐(unbrella)束缚力
刚体约束
摇摆键与键角约束
各类边界环境
非平行太分子动力学NEMD
各类附加边界条件和约束
积分器:
Velocity-verlet积分器
Brown积分器
rRESPA继承时刻延化积分器
刚体积分器
共轭梯度或最束下降算法能量最小化器
输出:
(命令:
dump,restart)
热力学信息日记
原子坐标,速度和其它原子量信息的文本dump文件
二进制重启文件
各原子量包括:
能量,压力,中心对称参数,CAN等
用户自概念系统宽度或各原子的计算信息
每一个原子的时刻与空间平均
系统宽量的时刻平均
原子图像,XYZ,XTC,DCD,CFG格式
数据的前处置与后处置:
包里提供了一系列的前处置与后处置工具
另外,能够利用独立发行的工具组,它能够进行LAMMPS模拟的设置,分析,作图和可视化工作。
专门功能:
实时的可视化与交互式MD模拟
与有限元方式结合进行原子-持续体模拟
在POEMS库中提供了刚体积分工具
并行裉火
并行复制动力学
对低密度液体直接利用MC模拟
Peridynamic介观建模
目标型与无目标型分子动力学
双温度电子模型
LAMMPS不具有的功能:
由于LAMMPS是对牛顿运动方程积分的工具,因此很多必要的数据前处置与后处置功能是LAMMPS核心不具有的。
其缘故为:
保证LAMMPS的小巧性
前处置与后处置不能进行并行运算
这些功能能够有其它工具来完成
原代码开发的局限性
专门地,LAMMPS不能:
通过图形用户界面来工作
创建分子体系
自动的加上力场系数
为MD模拟提供智能化的数据分析
MD的可视化
为输出数据作图
咱们需要为LAMMPS输入一系列的原子类型,原子坐标,分子拓朴信息和所有原子与键的力场参数。
LAMMPS可不能自动的为咱们创建分子体系与力场参数。
对与原子体系,LAMMPS提供了creat-atoms命令来为固态晶格加上原子。
能够能过paircoeff,bondcoeff,anglecoeff等命来加上小数量的力场参数。
关于分子体系或更复杂的模拟体系,咱们通常会用其它工具来创建或是转换LAMMPS输出文件来做到这些情形。
有的还会写一些自已的代码来完成这项任务。
关于一个复杂的分子体系(如,蛋白质),咱们需要为之提供上面个拓朴信息与力场参数。
因此咱们建议用CHARMM或AMBER或其它的分子建模器来完成这些任务,并把之输到一个文件中去。
然后,改变其格式以达到LAMMPS所许诺的输入格式。
一样,LAMMPS的输出文件是一种简单的文本格式,咱们也能够通过其它的工具来换专这些格式。
咱们能够用以下几个软件来完成高质量的可视工作:
VMD
AtomEye
Pymol
Raster3d
RasMol
最后要说一下的是,以下这些也是自由分子动力学包,它们大多数是并行的,可能也适合来完成你的研究工作,固然也能够与LAMMPS联合起来利用以完成模拟工作。
CHARMM
AMBER
NAMD
NWCHEM
DL_POLY
Tinker
CHARMM,AMBER,NAMD,NWCHEM,Tinker是专们用于模拟生物分子的。
二、开始
本部份要紧描述如何创建和运行LAMMPS。
1.在LAMMPS发行包理含有:
README
LICENSE
Bench:
测式任务
Doc:
文本
Examples:
简单的测试任务
Potentials:
嵌入原子方式与力场文件
Src:
源代码
Tools:
前处置与后处置工具
假设你下载的是windows可执行文件的话,你里面只有一个文件(并行与非并行两种)
2.编译LAMMPS
之前的工作:
编译LAMMPS不是一个繁琐的工作。
第一你可能要写一个makefile文件,里面要选择编译器,附加的一些将要用到的库等。
事前装上MPI或FFT等库。
编译出一个可执行LAMMPS:
在SRC目录里头含有C++源文件和头文件。
固然也包括一个高水平的Makefile,在MAKE目录里头有几个低水平的Makefile.*files别离适有不同的平台。
进入SRC目录,输入make或gmake,你将会看到一列的可选项。
假设其中有一种符合你的机械,你能够输入像下面一样的命令:
Makelinux
Gmakemac
注意,在一个多处置器或多核处置器的平台上你能够进行平行编译,在make命令中利用“-j”选项就能够够够,如此编译起来会更快一些。
在此进程中不发生错误的话,你能够取得一个类似于lmp-linux的可执行文件。
在编译进程当中将会发生的常见错误:
(1)假设是编译进程当中发生错误,并提示不能找到一个含有通配符*为名的文件的话,说明你机械上的make器许诺makefile中利用通配符。
那就偿式利用gmake。
如还不行的话,就试试加入-f选项,用作为make对像。
如:
Makemakelist
Make–flinux
Gmake–fmac
(2)当你利用低水平的makefile时,可能由于对机械的设置不正确,会致使一些错误。
假设你的平台叫“foo”,的话,你将要在MAKE目录中创建一个。
利用任何一个与你机械相近的文件作为开始老是一个不错的选择。
(3)如你在链接的时候显现库丢失或少了依托关系的话,可能是由于:
你编译的包需要一个附加的库,但却没有事前编译需要的packagelibaray.
你要链接的库在你的系统中不存在。
没有连接到必要的系统库
后两种问题显现,你就需要修改你的低水平.
编辑一个新的低水平:
(1)在#后的句子中,替换foo,不论你写成什么,这一行将会出此刻屏幕上,假设是你只输入make命令的话。
(2)在“complier/linkersettings”部份为你的C++编译器列出编译器与链接器的设置,包括优化符号。
你能够在任何UNIX系统中利用G++编译器。
固然你也能够用MPICC,假设是你的系统中安装了MPI的话。
如过在编译进程当中需要符加的库的话,你必需在LIB变量中列出来。
DEPFLAGS设置能够让C++编译器创建一个源文件的依托关系列表,当源文件或头文件改变的时候能够加速编译速度。
有些编译器不能创建依托关系列表,或你能够用选项—D来实现。
G++能够利用-D。
假设是你的编译器不能创建依托关系文件的话,那么你就需要创建一个来与(它用一系列的不需要依托文件的打算)相对应。
(3)“system-specificsettings”部份有四个小部份:
ALMP—INC变量,包括一些与系统相关的条件选项。
B3个MPI变量用于指定MPI库。
如你要进行并行计算的话,那么你必需在你的平台上安上MPI库。
如你想用MPI内置C++编译器的话,你能够让这三个变量空着,如你不用MPICC的话,那么,你要指定(MPI_INC)文件在哪,MPI(MPI_PATH)库在哪,还有库名(MPI_LIB).
假设是你想自已安装MPI的话,咱们建议用或。
LAMMPI也能够。
假设是我的是大平始的话,你的供给商已经为你装上了MPI,其可能比MPICH或LAM更快,你能够把找出来并与之链接。
如你用LAM或MPICH,你必需要设置他并编译他使之适合你的平台。
假设是你想在单处置器的机械上运行的话,你能够用STIBS库,如此你就能够够够不用在你的系统中安装MPI库。
防照,看是假设是设置这三个变量的。
固然你在编译LAMMPS之前你必需创建STUBS库。
在STUBS目录中,输入make,不犯错的话你将会取得一个文件可供链接到LAMMPS。
当犯错,你那么要修改STUBS下的MAKEFILE。
STUBS/有一个CPU计时器MPI_Wtime()能够挪用gettimeofday().如你的系统不支持gettimeofday(),那么你就要插入一句代码来挪用另一个计时器,要注意的是,clock()函数在一个小时以后会归0,因此关于一个长时刻的LAMMPS模拟来讲这是不够用的。
CFTT变量用于指定FFT库,当要用到kspace-style命令来计算长程库伦作历时利用PPPM选项时要用到。
要利用此选项,你必需要在你的机械上安装一个一维的FFT库。
能够能过开关—DFFT—XXX来指定,其中XXX=INTEL,DEC,SGI,SCSL,或FFTW。
没有方法的情形下能够用供给商提供的库。
FFTW是一个快速的,可移植性的库,它能够在任何一个平台上运行。
最好本。
编译FFTW库时只要用./configure;make就能够够够。
不任你是用哪一种FFT库,你都要在中正确的设置咱们的FFT_INC,FFT_PATH,FFT_LIB。
固然,你假设是不用PPPM的话,你将没有必要安装FFT库。
这种情形下,你能够把FFT_INC设成-DFFT-NONE并让其它几个变量空着。
你也能够在编译LAMMPS时把KSPACE包剔除。
D几个SYSLIB和SYSPATH变量你能够忽略,除非你在编译LAMMPS时其中有一个或几个包要用到附加的系统库。
所有这些包都的的名称都将会是SYSLIB和SYSPATH变量的前辍。
SYSLIB变量将列出系统库。
SYSPATH那么是途径,只有当这些库为非默许途径时才有设定。
最后,当你正确的写好了和预编译好了所有的其它库(MPI,FFT,包库等)以后,你只要在SRC目录下输入下面其中一个命令就能够够够了
Makefoo
Gmakefoo
不出意外,你将会取得lmp_foo的可执行文件。
附加建义
(1)为多平台编译LAMMPS
你能够在同一个SRC目录下为多平台编译LAMMPS。
每一个目标都有他自已的目标途径,Obj_name用于存贮指定系统的目标文件。
(2)清理
输入makeclear-all或makeclean-foo将会清理LAMMPS在编译时创建的目标文件。
(3)为windows编译LAMMPS
在LAMMPS下载页面上能够下载已经编译好了的windows可执行文件。
如已经编译好了的windows可执行文件不能知足你的要求的时候,你能够在windows平台上从源文件编译LAMMPS。
可是不建义这么做。
见./src/MAKE/Windows.
3如何有选择性的编译LAMMPS
加入/剔除包
在LAMMPS编译之前能够加入或剔除所有或部份包。
只有两种况下是列外,GPU和OPT包。
这此包中彼此关联的包必需包括在一路。
假设是不是如此,那么在GPU和OPT子目录下的所有包都不能安装。
要安装GPU包里的全数文件,asphere包须安装。
要安装OPT下的所有文件,那么kspace与manybody包须第一安装。
固然,由于某些模拟用不到其中的某些包,那么你想把这些包剔除这是能够的。
如此你就能够够够不用编译一些额外的库,固然你的可执行文件也将会更小,运行起来也会更快。
默许情形下,LAMMPS只包括kspace,manybody,molecule这三个包。
能够通过如makeyes-name,makeno-name来加入和剔除一些包,固然你也能够用makeyes-standard,makeno-standard,makeyes–user,makeno-user,makeyes-all,makeno-all加入或剔除各类包。
Makepackage能够看到多个选项。
3运行LAMMPS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LAMMPS 手册 中文版 讲解