lammps学习friction程序电子教案
LAMMPS讲课教案
Minimize命令Minimize命令使用格式:minimize(命令名)tolerance(误差限)maxiter ()maxeval()说明:tolerance =stopping tolerance停止公差、容差maxiter =优化器的最大叠代次数(max iterations of minimizer)maxevel =总的(力/能)评估值的最大个数(max number of total force/ energy evalutions)例子:minimze 1.0e-4 100 1000描述:该命令用来执行一个系统的能量的最小化(energy minimization),通过调整每个原子的原子坐标。
使用的优化算法由命令min_style设置。
能量最小化命令可以被和run命令交替使用(interspersed),在松弛和动力学之间分布(Minimizecommands can be interspersed with run commands to alternate betweenrelaxation and dynamics.)。
最小化器are implemented in a robust fashion坚固的方式that should allow forsystems with highly overlapped atoms (large energies and forces) tostill be minimized by pushing the atoms off of each other.(通过推开每个原子,使得即使有重叠的原子(具有高的能量和力)仍然可以优化,因为算法是很强壮的。
不知道这样翻译对不对,这句太难理解了。
最优化器involves包括一个外部迭代循环outer iteration loop(用以设置搜索迭代方向,在这个方向上坐标被改变),内部的迭代使用一个线搜索算法(An inner iteration is then performed using a line searchalgorithm. T)。
LAMMPS手册-中文版讲解
LAMMPS手册-中文解析一、简介本部分大至介绍了LAMMPS的一些功能和缺陷。
1.什么是LAMM PS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。
LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。
他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和B e owulf型的集群机。
LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。
2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspacestyle)对相互作用势:L-J, Bucking ham, Morse, Yukawa, soft, class2(COMPASS), tabulat ed.带点对相互作用势:Coulombi c, point-dipole.多体作用势:EAM, Finnis/Sinclai r EAM, modifie d EAM(MEAM), Stillin g er-Weber, Tersoff, AIREBO, ReaxFF粗粒化作用势:D PD, GayBern e, Resquar ed, Colloid al, DLVO介观作用势:granula r, Peridyn amics键势能:harmoni c, FENE, Morse, nonlinear, class2, quartic键角势能:harmoni c, CHARMM, cosine, cosine/squared, class2(COMPASS)二面角势能:harmoni c, CHARMM, multi-harmoni c, helix, OPLS, class2(COMPASS)不合理势能:harmoni c, CVFF, class2(COMPASS)聚合物势能:all-atom, united-atom, bead-spring, breakabl e水势能:TIP3P,TIP4P,SPC隐式溶剂势能:h y drody n amiclubrication, Debye长程库伦与分散:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采用GPU加速的成对类型杂化势能函数:m ultipl e pair, bond, angle, dihedral, imprope r potenti als(多对势能处于更高的优先级)原子创建:(命令:read_da ta, lattice, create-atoms, delete-atoms, displac e-atoms, replica te)从文件中读入各个原子的坐标在一个或多个晶格中创建原子删除几何或逻辑原子基团复制已存在的原子多次替换原子系综,约束条件,边界条件:(命令:fix)二维和三维体系正角或非正角模拟空间常NVE,NVT,NPT,NPH积分器原子基团与几何区域可选择不同的温度控制器有Nose/Hoover和Berend sen压力控制器来控制体系的压力(任一维度上)模拟合子的变形(扭曲与剪切)简谐(unbrell a)束缚力刚体约束摇摆键与键角约束各种边界环境非平行太分子动力学NEMD各种附加边界条件和约束积分器:Velocit y-verlet积分器Brown积分器rRESPA继承时间延化积分器刚体积分器共轭梯度或最束下降算法能量最小化器输出:(命令:dump, restart)热力学信息日志原子坐标,速度和其它原子量信息的文本dump文件二进制重启文件各原子量包括:能量,压力,中心对称参数,CAN等用户自定义系统宽度或各原子的计算信息每个原子的时间与空间平均系统宽量的时间平均原子图像,XYZ,XTC,DCD,CFG格式数据的前处理与后处理:包里提供了一系列的前处理与后处理工具另外,可以使用独立发行的工具组p i zza.py, 它可以进行LAMMPS模拟的设置,分析,作图和可视化工作。
lammps学习指南(可编辑修改word版)
lammps学习指南(可编辑修改word版)温馨提示:(1)点击标题可直接到相关的“章节”。
(2)为避免混淆,上面的各“章”,在本文中用“步骤2”、“步骤5”这样的词代指;而文中其它地方出现的“章节”是指lammps 手册中的章节。
(3)文中跟某些名词相关的网页已加注超链接,直接点击可浏览该页面以获得更详尽的信息。
0. 写在最开始的话从2007 年5 月初开始接触和学习lammps,时至今日,依然对lammps 存有很多疑惑。
如同一个刚入门的工匠面对着一台功能强大的复杂机器,不知所措。
虽然还有好多好多的东西要学习,但是也已经了解了一些最最基本的东西了。
我可以去帮助那些刚刚入门的人,正如我刚刚开始学习lammps 时诸位热心网友对我的帮助。
现在,我写一写自己知道的东西,希望对lammps 的新手有所帮助,不当之处,真诚地希望各位读者多多指正。
我写的这点儿东西,使用者仅限于使用lammps 的新手,而且里面只讲到了ubuntu 下编译lammps 的单机版,没有涉及并行版的编译。
我希望这个“指南”会帮他们更快地了解和学习lammps。
如果你已经在使用lammps 了,我觉得这个“指南”是不会对你有什么帮助的。
不过,对于高手来说,如果你有时间,我还是希望你能看完这篇,因为我接触lammps 和MD 的时间都不长,我怕我的某些错误会误导新手。
所以,希望大家一起努力,完善这个指南。
对这个“指南”有任何的建议,请联系我,联系方式如下:QQ: 365449075Email: wfc@/doc/8815552588.html,另外,我只把这篇文章放在这个由学校提供的个人网页空间。
之前QQ 空间的那篇文章,因为对其内容改动较大,故我已将其删除。
我并不反对转载,(先自我陶醉一下下,可是会有吗?呵呵)但是转载之前,请注意:(1)文章中的一些表述我尚不肯定正确与否。
所以转载之前,请你负责任地认真读完这篇文章并确认你是否认可我的表述。
lammps使用手册
lammps使用手册一、简介LAMMPS是一款功能强大的分子动力学模拟软件,可用于研究固体、液体、气体以及它们之间的相互作用。
本手册旨在帮助用户了解LAMMPS的基本使用方法和技巧,以便更好地进行模拟研究。
二、安装与配置1.下载安装包:从LAMMPS官方网站下载适合您操作系统的安装包。
2.安装软件:按照安装指南完成软件安装。
3.配置环境:根据软件要求配置计算环境,包括编译器、库文件和路径等。
三、基本操作1.启动模拟:使用LAMMPS命令行界面或脚本启动模拟。
2.添加系统参数:设置模拟系统的体积、温度、边界条件等参数。
3.添加粒子:创建粒子,设置其质量、电荷等属性。
4.更新系统:执行时间积分算法,更新粒子运动状态。
5.观察结果:使用可视化工具观察模拟系统的动态变化。
四、常用命令1.`fix`:用于设置固定粒子组或边界条件的命令。
2.`atom_modify`:用于修改粒子属性,如质量、电荷等。
3.`pair_style`:设置粒子之间的相互作用模型。
4.`run`:执行模拟并更新粒子运动状态。
5.`dump`/`restart`:保存或恢复模拟结果。
五、高级功能1.粒子相互作用模型:LAMMPS支持多种粒子相互作用模型,如Lennard-Jones势、Ewald方法等。
2.边界条件:支持不同类型的边界条件,如周期性边界、固定边界等。
3.能量最小化:用于优化粒子分布,降低能量波动。
4.温度控制:通过加热和冷却过程保持系统温度恒定。
5.并行计算:支持多核处理器和分布式计算,提高模拟速度。
六、实例应用1.分子动力学模拟固体晶格结构变化。
2.研究液体流动和粘度。
3.计算材料在不同应力条件下的变形行为。
4.模拟药物在生物体系中的分布和相互作用。
七、常见问题及解决方法1.模拟结果波动较大:检查粒子相互作用模型和边界条件设置是否正确,以及积分算法是否适当。
2.模拟时间步长选择不当:过小的步长可能导致系统不稳定,过大的步长则影响模拟精度。
最新LAMMPS软件与分子模拟的实现精品课件
第十七页,共44页。
Lammps计算(jìsuàn)输入文件
函数定义有哪几类?
第十二页,共44页。
Lammps常见(chánɡ jiàn)命令
• unit • dimension • newton • processors • boundary • atom style • atom modify • atom type
选择(xuǎnzé)单位系统,L-J、real、metal 2D or 3D? 默认(mòrèn)是3D
第三页,共44页。
• LAMMPS 免费 • 一般性分子模拟软件。
兼容当前大多数的势能模型,编程水平高,计算效率高。可以模拟软材料 和固体物理系统。
• Materials Explorer • 立足于Windows平台的多功能分子动力学软件。拥有强大的分子动力
学计算及Monte Carlo软件包,是结合应用领域来研究材料工程的有力工 具。Materials Explorer可以用来研究有机物、高聚物、生物大分子、金属 、陶瓷材料、半导体等晶体、非晶体、溶液,流体,液体(yètǐ)和气体相 变、膨胀、压缩系数、抗张强度、缺陷等。Materials Explorer软件中包含 2Body,3Body,EAM,AMBER等63个力场可供用户选择。Materials Explorer软件拥有完美的图形界面,方便使用者操作。
运行(yùnxíng)模拟
输出结果 可视化 结果(jiē guǒ)分析
vasp与lammps学习资料2020年
LAMMPS分子动力学模拟技术与应用课程内容一、LAMMPS基础1分子动力学模拟入门理论——掌握lammps的in文件中各命令的意义1.1系综理论1.2主要算法介绍1.3积分步长的选取1.4温度和压力控制1.5周期性边界条件1.6分子动力学模拟流程二、LAMMPS入门学习2LAMMPS入门操作基础2.1Linux命令入门基础——熟练掌握LAMMPS所用的Linux命令2.2LAMMPS中一些安装包的介绍——为以后创建自己体系进行选择性安装2.3LAMMPS的linux版串行和并行及GPU版编译安装——掌握LAMMPS的编译方法,针对自己体系编译可执行文件。
2.4LAMMPS的in文件结构格式、基本语法及常用命令讲解、data文件格式。
2.5LAMMPS实例讲解。
实例操作:在linux系统编译安装自己的LAMMPS可执行程序。
三、LAMMPS进阶学习MMPS各种参数计算3.1颗粒模拟3.2可视化快照3.3弹性常数模拟3.4计算热导率3.5计算粘度3.6计算均方位移3.7计算径向分布函数3.8计算扩散系数3.9计算能量数据3.10Lammps常见错误及解决途径实例操作:学员结合自己的科研方向,选择运行契合自己研究方向的例子四、Lammps的建模4LAMMPS建模——掌握基本操作流程4.1掌握lattice命令建立晶体模型4.2Packmol建模语法学习及实操4.3Material Studio建模学习及实操4.4VMD建模学习及实操实例操作:把上述实操模型转换成lammps的data文件五、从examples的简单例子,到完成自己的科研课题5通过examples中的例子,理解要模拟对象的物理意义5.1运行examples\flow到建立水分子在石墨烯片层(碳纳米管)内的流动模拟5.2运行examples\shear到石墨烯力学性质模拟5.3运行examples\friction到金属/合金的摩擦模拟5.4特殊结构的模拟建模(C60系列模型)实例操作:学员探索由简单例子到自己科研课题的模拟过程六、环氧树脂在二氧化硅表面吸附建模(CVFF力场)6环氧树脂在二氧化硅表面吸附吸能的影响模拟过程6.1创建构型文件6.2建立输入脚本6.3运行能量最小化及体系的预松弛6.4压缩盒子达到指定的密度(针对不同研究体系掌握压缩方法的不同,并掌握判断方法和依据)6.5模拟步骤:包括能量最小化-NVT 平衡-NPT 平衡-对研究目标的性质进行长时间轨迹平衡-输出研究所关心的性质。
lammps20版使用手册
lammps20版使用手册LAMMPS 20 版使用手册LAMMPS 是一个经典的分子动力学模拟软件,用于研究原子和分子的行为。
本文将为您提供 LAMMPS 20 版的使用手册,详细介绍软件的安装、基本命令、输入文件格式和常见功能。
一、安装LAMMPS 20 版可从官方网站下载并安装。
在安装之前,请确保您的计算机满足以下要求:1. 操作系统:Windows、Linux 或 macOS;2. C++ 编译器:例如 g++、icc 或 Clang;3. 并行库:如 MPI(可选)。
请根据您的操作系统选择相应的安装包,并按照官方提供的说明进行安装。
二、基本命令LAMMPS 使用基于命令行的界面,您可以通过输入一系列命令来控制模拟的运行。
1. 运行 LAMMPS:在命令行终端中输入 `lmp_serial` 或 `lmp_mpi` 启动 LAMMPS 应用程序。
2. 选择分子力场:使用 `pair_style` 命令选择适合您研究系统的分子力场。
例如,`pair_style lj/cut` 表示使用 Lennard-Jones 势函数进行计算。
3. 定义模拟盒子:使用 `region` 定义模拟盒子的边界条件和尺寸。
例如,`region box block 0 10 0 10 0 10` 定义了一个尺寸为 10x10x10 的盒子。
4. 添加原子:使用 `create_atoms` 在模拟盒子中添加原子。
例如,`create_atoms 1 random 100 12345 box` 表示在盒子中随机地添加 100 个类型为 1 的原子。
5. 温度控制:使用 `velocity` 控制系统的温度。
例如,`velocity all create 298 123456` 为系统中的所有原子设置一个初始温度为 298K。
6. 运行模拟:使用 `run` 命令来运行模拟。
例如,`run 1000` 表示运行 1000 步模拟。
LAMMPS手册-中文版讲解
LAMMPS手册-中文解析一、简介本部分大至介绍了LAMMPS的一些功能和缺陷。
1.什么是LAMMPS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。
LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。
他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。
LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。
2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)对相互作用势:L-J, Buckingham, Morse, Yukawa, soft, class2(COMPASS), tabulated.带点对相互作用势:Coulombic, point-dipole.多体作用势:EAM, Finnis/Sinclair EAM, modified EAM(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隐式溶剂势能:hydrodynamic lubrication, Debye长程库伦与分散:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采用GPU加速的成对类型杂化势能函数:multiple pair, bond, angle, dihedral, improper potentials(多对势能处于更高的优先级)原子创建:(命令: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格式数据的前处理与后处理:包里提供了一系列的前处理与后处理工具另外,可以使用独立发行的工具组pizza.py, 它可以进行LAMMPS模拟的设置,分析,作图和可视化工作。
(完整版)LAMMPS手册学习.doc
(完整版)LAMMPS手册学习.docLAMMPS手册学习一、简介本部分大至介绍了LAMMPS的一些功能和缺陷。
1.什么时LAMMPS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。
LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。
他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。
LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。
2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)对相互作用势:L-J, Buckingham, Morse, Yukawa, soft, class2(COMPASS), tabulated.带点对相互作用势:Coulombic, point-dipole.多体作用势:EAM, Finnis/Sinclair EAM, modified EAM(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隐式溶剂势能:hydrodynamic lubrication, Debye长程库伦与分散:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采用GPU加速的成对类型杂化势能函数:multiple pair, bond, angle, dihedral, improper potentials(多对势能处于更高的优先级)原子创建:(命令: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格式数据的前处理与后处理:包里提供了一系列的前处理与后处理工具另外,可以使用独立发行的工具组pizza.py, 它可以进行LAMMPS模拟的设置,分析,作图和可视化工作。
lammps教程
lammps教程
LAMMPS是一个常用的分子动力学模拟软件,用于模拟原子、分子的运动和相互作用。
下面是一份关于如何使用LAMMPS
进行模拟的简单教程。
1. 安装LAMMPS:首先,你需要从官方网站上下载LAMMPS 的最新版本。
根据你的操作系统,选择合适的版本进行下载和安装。
2. 准备输入文件:在使用LAMMPS之前,你需要准备一个输
入文件,用于描述你想要模拟的系统和模拟的条件。
这个文件通常使用文本编辑器创建,扩展名为".in"。
在输入文件中,你
需要定义原子的初始位置、速度、力场参数等。
你也可以在输入文件中指定模拟的时间、温度、压力等参数。
3. 运行LAMMPS:在终端中,使用以下命令来运行LAMMPS,同时指定输入文件:
```
lammps < input_file.in
```
然后,LAMMPS将读取输入文件中的信息,并开始模拟。
4. 分析和可视化结果:LAMMPS输出的模拟结果通常以文本
文件的形式保存。
你可以使用文本处理工具(如awk、sed等)来分析并提取模拟结果中的关键信息。
此外,还可以使用可视
化软件(如VMD、OVITO等)来对模拟结果进行可视化和分析。
注意:以上只是一个简单的教程,介绍了LAMMPS的基本使用方法。
LAMMPS具有非常丰富的功能和参数选项,可以进行复杂的分子动力学模拟。
请参考LAMMPS的官方文档和用户手册,以获取更详细和全面的指导。
MATLAB实用教程电子教案讲课文档
型。
第二十一页,共289页。
聚合矩阵的特殊函数
下表列出了聚合矩阵的一些特殊函数。
函数
cat horzcat vertcat repmat blkdiag
描述
沿指定的维聚合矩阵 水平聚合矩阵 垂向聚合矩阵 通过复制和叠置矩阵来创建新矩阵 用已有矩阵创建块对角矩阵
变量的数据类型
数组
逻辑型
字符型
数值型 单元数组 结构数组
函数句柄
int8, uint8 int16, uint16 int32, uint32
Single
定制类 Double
Java类
第十一页,共289页。
数组和矩阵
MATLAB中,所有数据都用数组 或矩阵形式进行保存。 数组 矩阵
第十二页,共289页。
B(1:3:end) = -10
第二十七页,共289页。
字符串
字符串的创建 类型转换 字符串的比较 字符串的聚合 字符串的搜索和替换
第二十八页,共289页。
创建字符串
通过把字符放到单引号中来指定字符数据。如,下面创建 一个1×5的字符串country。
country = 'China';
MATLAB的桌面环境
启动按钮
命令窗口
命令历史窗口 工作空间窗口 当前目录浏览器
第五页,共289页。
主界面
当前目录浏览工具 工作空间窗口
第六页,共289页。
命令窗口
启动按钮
命令历史窗口
MATLAB的帮助系统
帮助浏览工具 help函数和doc函数
第七页,共289页。
第2章 数据类型
大学生 机电系统动态仿真matlab电子教案课件-第二章数组及其运算 精品推荐
矩阵除法运算 左除:A\B=A B-1 右除: A/B=AB -1
A为方矩阵 B为方矩阵
点运算(数组运算规则计算)
两个矩阵之间的点运算是该矩阵对应元素的直接运算
要求:参加运算的矩阵的大小必须相同
-1 -1
-1 -1
矩阵的基本运算
1.矩阵与标量的运算
矩阵中的每个元素对该标量的运算。
2.矩阵与矩阵的运算
利用串操作函数创建多行串数组
演示:用专门函数char , str2mat , strvcat创建多行串数组 示例。
S1=char('This string array','has two rows.') S1 = This string array has two rows. S2=str2mat(‘这’,‘字符’,‘串数组’,‘’,‘由4
格式: 说明:B矩阵补在A矩阵的右面,A与B行数必须相同 格式: 说明:B矩阵补在A矩阵的后面,A与B列数必须相同
4 矩阵的操作
冒号 单引号 方括号 分号 1.构造行向量 2.从向量或矩阵中挑选出指定的行列元素
格式: 3.构造简单的矩阵(矩阵合并)
例:X=(-1:0.1:1)’; Y=sin(X); Z=[X,Y]
矩阵的建立
3.通过文件产生 把数据作为矩阵输入到M文件中(作为变量保 存在M文件中) 从文本文件中调用数据
例:通过M文件输入数组。 思路:建立M文件,在M文件中输入数据, 如果需要使用这些数据,直接在命令窗口 输入M文件的名字,立刻输出M文件中的 数据。
矩阵的建立
3.通过文件产生 把数据作为矩阵输入到M文件中(作为变量保 存在M文件中) 从文本文件中调用数据
4 矩阵的操作
LAMMPS手册-中文版讲解
LAMMPS手册-中文解析一、简介本部分大至介绍了LAMMPS的一些功能和缺陷。
1.什么是LAMMPS?LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。
他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。
LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。
LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。
他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。
LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。
通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。
高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。
这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。
在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。
各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。
LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。
2.LAMMPS的功能总体功能:可以串行和并行计算分布式MPI策略模拟空间的分解并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以方便的为之扩展上新特征和功能只需一个输入脚本就可运行有定义和使用变量和方程完备语法规则在运行过程中循环的控制都有严格的规则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机分子,蛋白质,DNA联合原子聚合物或有机分子金属粒子材料粗粒化介观模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)对相互作用势:L-J, Buckingham, Morse, Yukawa, soft, class2(COMPASS), tabulated.带点对相互作用势:Coulombic, point-dipole.多体作用势:EAM, Finnis/Sinclair EAM, modified EAM(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隐式溶剂势能:hydrodynamic lubrication, Debye长程库伦与分散:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采用GPU加速的成对类型杂化势能函数:multiple pair, bond, angle, dihedral, improper potentials(多对势能处于更高的优先级)原子创建:(命令: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格式数据的前处理与后处理:包里提供了一系列的前处理与后处理工具另外,可以使用独立发行的工具组pizza.py, 它可以进行LAMMPS模拟的设置,分析,作图和可视化工作。
LAMMPS学习记录
LAMMPS学习记录1、时间单位1s=103ms=106μs=109ns=1012ps=1015fs2、如何运行开始-运行-cmd-输入“e:”回车,输入“cd lammps”直至找到可执行文件的位置,输入“lmp_win_no-mpi –in in.colloid”就可以计算了(新版本可能可执行文件的名称不一样了)。
MMPS的程序可以分为4个部分Input script structureA LAMMPS input script typically has 4 parts:1. Initialization2. Atom definition3. Settings4. Run a simulation后面的两个根据需要可以重复多次.4.系综的分类NVE,微正则系综,具有相同的化学组成、体积、总能量的热力学体系的集合。
粒子数N,温度T,体积V都相同的孤立热力学体系组成的系综称为微正则系综。
微正则系综必须是孤立的,与外界没有任何物质和能量的交换,其容器也必须刚性,没有任何体积变化。
NVT,正则系综,具有相同化学组成、体积、温度的热力学体系的集合。
粒子数N,温度T,体积V都相同的热力学体系组成的系综称为正则系综。
正则系综必须处在刚性容器之中,没有任何体积变化,与环境之间也没有物质交换。
正则系综热力学体系的总能量是变化的,不是固定的。
NPT,具有相同化学组成、压力、温度的热力学体系的集合。
体系的压力固定或几乎固定,体系的体积却可以自由变化。
是化学中最常用的系综。
巨正则系综是温度T,体积V,化学势μ都相同的热力学体系的集合。
巨正则系综体系也可理解为一个巨大的孤立体系中的一小部分,这一小部分与其他部分之间存在充分的物质和能量交换。
5.对一些命令的学习记录LAMMPS中的许多操作都是基于group的。
在建立group的基础上,进行各种操作。
利用VMD生成石墨烯:使用VMD的Extensions->Modeling->Nanostructure Builder->generate Sheet(s)就可以生成石墨烯,中间还可以修改各项参数,长,宽,层数都可以控制。
lammps学习friction程序
#文件结构#Initialization#Atom definition#Settings#Run a simulation#注意本程序由于默认的单位体制是LJ# 2d friction simulation#初始化dimension 2#维数boundary p s p#边界条件 boundary x y zx,y,z =porsorform, one or two lettersp is periodicf is non-periodic and fixeds is non-periodic and shrink-wrappedm is non-periodic and shrink-wrapped with a minimum values为收缩边界(自由边界),用于有限尺寸的维度,随原子移动而改变,原子不会跑出边界;f为固定边界,同样用于有限尺寸的维度,模拟时原子可能跑出边界,跑出则程序终止;p 为周期边界,原子可以周期穿过盒子边界。
m为柔性边界,允许边界上的粒子有微小移动以反映内层原子的作用力施加到它们身上的情况。
atom_style atomic#atomic原子模式(用于粗粒液体,固体和金属的模拟)。
Define what style of atoms to use in a simulation 定义模拟体系中的原子属性。
用比需要的范围大的类型。
neighbor 0.3 bin#建近邻表参数(r+rc),rc为力的截断距离,缓冲距离r=0.3sigma(σ),bin表示为近邻表类型。
所有截止距离等于它的力的截断距离加上缓冲距离的原子对都被存储在列表里。
其值的选择取决于单位制。
Syntax:neighbor skin styleThis command sets parameters that affect the building of pairwise neighbor lists. skin = extra distance beyond force cutoff (distance units)style =bin or nsq or multineigh_modifydelay 5#间隔5载荷步重新形成近邻表# create geometry#创建初始几何构形lattice hex 0.9#定义晶格类型(二维hex)和Lennard-Jones折算密度0.9region box block 0 50 0 22 -0.25 0.25#定义模拟盒子(区域)的大小,在空间x[0,50],y[0,22],z[-0.25,0.25]的范围内创建区域。
lammps学习L-J势函数涉及各物理量单位体制.doc
lammps学习L-J势函数涉及各物理量单位体制.docLJ势函数单位体制Thelj/cutstyles compute the standard 12/6 Lennard-Jones potential, given byE⼆4rf(-)12 -(-)6]r < q r r cRc is the cutoff.units ljFor stylelj, all quantities are unitless. Without loss of generality, LAMMPS sets the fundamental quantitiesmass, sigma, epsilon, and the Boltzmann constant = 1. The masses, distances, energies you specify aremultiples of these fundamental values?The formulas relating the reduced or unitless quantity (with anasterisk) to the same quantity with units is also given. Thus you can use the mass & sigma & epsilon valuesfor a specific material and convert the results from a unitless LJ simulation into physical quantities.mass = mass or m ?distance = sigma, where x* ⼆x / sigma ? time = tau, where t* = t (epsilon / m/ sigma A2)A l/2 ? energy = epsilon, where E* ⼆E / epsilon ? velocity = sigma/tau, where v* = v tau / sigma ? force = epsilon/sigma, where f* ⼆f sigma / epsilon ? torque (⼒矩)=epsilon, where t* = t / epsilon ?temperature = reduced LJ temperature, where T* = T K b / epsilon ?pressure = reduced LJ pressure, where P* ⼆P sigma A3 / epsilon ?dynamic viscosity = reduced LJ viscosity, where eta* = eta sigma A3 / epsilon / taucharge = reduced LJ charge, where q* = q / (4 pi permO sigma epsilon)A1/2dipole = reduced LJ dipole, moment where *mu ⼆mu / (4 pi permO sigma A3 epsilon)A l/2electric field = force/charge, where E* ⼆E (4 pi permO sigma epsilon)A l/2 sigma / epsilondensity = mass/volume, where rho* = rho sigma A dimLamps中的LJ单位问题LJ单位mass: =2.43x10 *kg,即[mass 相当于2-43x10 8kgsigma:=lxl0_5m ,即1 sigma 相当于lxl(T5mepsilon:=8.41xlO'l3N-m ,即1 epsilon 相当于8.41xlO_13N m那么根据manual⾥⾯的dipole的解释,即:dipole = reduced LJ dipole, moment where *mu = mu / (4 pi permO sigma A3 epsilon)A l/2所以1 dipole 相当于(4 pi permO sigma A3 epsilon)A l/2即.y]47rx/?(?n/7Ox(lxlO~5m)3x8.41xlO_13N m根据您的解释,这⾥的pennO应该也是⼀个约化单位,即permO=l,但在计算的过程中要转化成实际单位,故应该此处的permO = --- ---- 74^X10-7N/A2,也只有这样,dipole的量纲分析才正确。
Lammps 软件的学习和应用
0.3 bin
//计算方法的设定
neigh_modify delay 5
# create geometry
lattice
hex 0.93 //晶格结构
region
box block 0 100 0 40 -0.25 0.25 //模拟几何区域设定
create_box 5 box //创建模拟域几何盒子(box)
#----------------分子动力学过程建模---------
# fixes
fix
1 all nve
//积分,样本
fix
2 boundary setforce NULL 0.0 0.0
# run
#------------------输出建模-------------------
timestep 0.003
新 表 面
100表面表面能计算
100表面
几何建模:简单晶格结构 物理建模:简单合金势函数
区域分块
过程建模:实现真空层
输出建模:计算能量,原子坐标
输出控制:格式,参变量 能量最小化方法,计算E0
特殊技巧处理
过程建模:移动盒子, 移动原子,产生新的 表面,计算产生新表 面后的E(final)
计算111表面,首先几何建模的过程中要知道如何在物理和几何上产生 (111),最后通过lammps的命令的方法实现。
compute
new mobile temp
velocity
mobile create 0.01 887723 temp new //边界施加速度
velocity upper set 0.0 0.3 0.0
velocity mobile ramp vy 0.0 0.3 y 1.25 38.75 sum yes
LAMMPS讲课教案
LAMMPS讲课教案Minimize命令Minimize命令使用格式:minimize(命令名)tolerance(误差限)maxiter ()maxeval()说明:tolerance =stopping tolerance停止公差、容差maxiter =优化器的最大叠代次数(max iterations of minimizer)maxevel =总的(力/能)评估值的最大个数(max number of total force/ energy evalutions)例子:minimze 1.0e-4 100 1000描述:该命令用来执行一个系统的能量的最小化(energy minimization),通过调整每个原子的原子坐标。
使用的优化算法由命令min_style设置。
能量最小化命令可以被和run命令交替使用(interspersed),在松弛和动力学之间分布(Minimizecommands can be interspersed with run commands to alternate betweenrelaxation and dynamics.)。
最小化器are implemented in a robust fashion坚固的方式that should allow forsystems with highly overlapped atoms (large energies and forces) tostill be minimized by pushing the atoms off of each other.(通过推开每个原子,使得即使有重叠的原子(具有高的能量和力)仍然可以优化,因为算法是很强壮的。
不知道这样翻译对不对,这句太难理解了。
最优化器involves包括一个外部迭代循环outer iteration loop(用以设置搜索迭代方向,在这个方向上坐标被改变),内部的迭代使用一个线搜索算法(An inner iteration is then performed using a line searchalgorithm. T)。
LAMMPS手册-中文版讲解
LAMMPS手册-中文解析之五兆芳芳创作一、简介本部分大至介绍了LAMMPS的一些功效和缺陷.1.什么是LAMMPS?LAMMPS是一个经典的份子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综.他可以采取不合的力场和鸿沟条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系.LAMMPS 可以计较的体系小至几个粒子,大到上百万甚至是上亿个粒子.LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计较效率,但是它是专门为并行计较机设计的.他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包含散布式和同享式并行机和Beowulf型的集群机.LAMMPS是一可以修改和扩展的计较程序,比方,可以加上一些新的力场,原子模型,鸿沟条件和诊断功效等.通常意义上来讲,LAMMPS是按照不合的鸿沟条件和初始条件对通太短程和长程力相互作用的份子,原子和宏不雅粒子荟萃对它们的牛顿运动方程进行积分.高效率计较的LAMMPS通过采取相邻清单来跟踪他们邻近的粒子.这些清单是按照粒子间的短程互拆力的大小进行优化过的,目的是避免局部粒子密度太高.在并行机上,LAMMPS采取的是空间分化技巧来分派模拟的区域,把整个模拟空间分红较小的三维小空间,其中每一个小空间可以分派在一个处理器上.各个处理器之间相互通信并且存储每一个小空间鸿沟上的”ghost”原子的信息.LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高.2.LAMMPS的功效总体功效:可以串行和并行计较散布式MPI战略模拟空间的分化并行机制开源高移植性C++语言编写MPI和单处理器串行FFT的可选性(自定义)可以便利的为之扩展上新特征和功效只需一个输入脚本就可运行有定义和使用变量和方程完备语律例则在运行进程中循环的控制都有严格的法则只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型:(atom style命令)原子粗粒化粒子全原子聚合物,有机份子,蛋白质,DNA联合原子聚合物或有机份子金属粒子资料粗粒化介不雅模型延伸球形与椭圆形粒子点偶极粒子刚性粒子所有上面的杂化类型力场:(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)对相互作用势:L-J, Buckingham, Morse, Yukawa, soft, class2(COMPASS), tabulated.带点对相互作用势:Coulombic, point-dipole.多体作用势:EAM, Finnis/Sinclair EAM, modified EAM(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隐式溶剂势能:hydrodynamic lubrication, Debye长程库伦与分离:Ewald, PPPM, Ewald/N(针对长程L-J作用)可以有与普适化力场如CHARMM,AMBER,OPLS,GROMACS相兼容的力场可以采取GPU加快的成对类型杂化势能函数:multiple pair, bond, angle, dihedral, improper potentials(多对势能处于更高的优先级)原子创建:(命令: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格局数据的前处理与后处理:包里提供了一系列的前处理与后处理东西另外,可以使用独立刊行的东西组pizza.py, 它可以进行LAMMPS模拟的设置,阐发,作图和可视化任务.特别功效:实时的可视化与交互式MD模拟与有限元办法结合进行原子-连续体模拟在POEMS库中提供了刚体积分东西并行裉火并行复制动力学对低密度液体直接使用MC模拟Peridynamic介不雅建模目标型与无目标型份子动力学双温度电子模型LAMMPS不具备的功效:由于LAMMPS是对牛顿运动方程积分的东西,所以良多需要的数据前处理与后处理功效是LAMMPS焦点不具备的.其原因为:包管LAMMPS的小巧性前处理与后处理不克不及进行并交运算这些功效可以有其它东西来完成原代码开发的局限性特别地,LAMMPS不克不及:通过图形用户界面来任务创建份子体系自动的加上力场系数为MD模拟提供智能化的数据阐发MD的可视化为输出数据作图我们需要为LAMMPS输入一系列的原子类型,原子坐标,份子拓朴信息和所有原子与键的力场参数.LAMMPS不会自动的为我们创建份子体系与力场参数.对与原子体系,LAMMPS提供了creat-atoms命令来为固态晶格加上原子.可以能过pair coeff,bond coeff, angle coeff等命来加上小数目的力场参数.对于份子体系或更庞杂的模拟体系,我们通常会用其它东西来创建或是转换LAMMPS输出文件来做到这些事情.有的还会写一些自已的代码来完成这项任务.对于一个庞杂的份子体系(如,蛋白质),我们需要为之提供上面个拓朴信息与力场参数.所以我们建议用CHARMM或AMBER或其它的份子建模器来完成这些任务,并把之输到一个文件中去.然后,改动其格局以达到LAMMPS所允许的输入格局.同样,LAMMPS的输出文件是一种复杂的文本格局,我们也可以通过其它的东西来换专这些格局.我们可以用以下几个软件来完成高质量的可视任务:VMDAtomEyePymolRaster3dRasMol最后要说一下的是,以下这些也是自由份子动力学包,它们大多数是并行的,可能也适合来完成你的研究任务,当然也可以与LAMMPS联合起来使用以完成模拟任务.CHARMMAMBERNAMDNWCHEMDL_POLYTinkerCHARMM,AMBER,NAMD,NWCHEM,Tinker是专们用于模拟生物份子的.二、开始本部分主要描述如何创建和运行LAMMPS.1.在LAMMPS刊行包理含有:READMELICENSEBench:测式任务Doc:文本Examples:复杂的测试任务Potentials:嵌入原子办法与力场文件Src:源代码Tools: 前处理与后处理东西假设你下载的是windows可执行文件的话,你里面只有一个文件(并行与非并行两种)L2. 编译LAMMPS之前的任务:编译LAMMPS不是一个繁琐的任务.首先你可能要写一个makefile文件,里面要选择编译器,附加的一些将要用到的库等.事先装上MPI或FFT等库.编译出一个可执行LAMMPS:在SRC目录里头含有C++源文件和头文件.当然也包含一个高水平的Makefile,在MAKE目录里头有几个低水平的Makefile.*files辨别适有不合的平台.进入SRC目录,输入make或gmake,你将会看到一列的可选项.假设其中有一种合适你的机械,你可以输入像下面一样的命令:Make linuxGmake mac注意,在一个多处理器或多核处理器的平台上你可以进行平行编译,在make命令中使用“-j”选项就可以,这样编译起来会更快一些.在此进程中不产生错误的话,你可以得到一个类似于lmp-linux的可执行文件.在编译进程当中将会产生的罕有错误:(1)如果编译进程当中产生错误,并提示不克不及找到一个含有通配符*为名的文件的话,说明你机械上的make器允许makefile中使用通配符.那就偿式使用gmake.如还不成的话,就试试参加-f选项,用Makefile.list作为make对像.如:Make makelistMake –f makefile.list linuxGmake –f makefile.lst mac(2)当你使用低水平的makefile时,可能由于对机械的设置不正确,会导致一些错误.假设你的平台叫“foo”,的话,你将要在MAKE目录中创建一个Makefile.foo.使用任何一个与你机械相近的文件作为开始总是一个不错的选择.(3)如你在链接的时候出现库丢失或少了依赖关系的话,可能是由于:你编译的包需要一个附加的库,但却没有事先编译需要的package libaray.你要链接的库在你的系统中不存在.没有连接到需要的系统库后两种问题出现,你就需要修改你的低水平makefile.foo.编辑一个新的低水平makefile.foo:(1)在#后的句子中,替换foo,不管你写成什么,这一即将会出现在屏幕上,如果你只输入make命令的话.(2)在“complier/linker settings”部分为你的C++编译器列出编译器与链接器的设置,包含优化符号.你可以在任何UNIX系统中使用G++编译器.当然你也可以用MPICC,如果你的系统中装置了MPI的话.如过在编译进程当中需要符加的库的话,你必须在LIB变量中列出来.DEPFLAGS设置可以让C++编译器创建一个源文件的依赖关系列表,当源文件或头文件改动的时候可以放慢编译速度.有些编译器不克不及创建依赖关系列表,或你可以用选项—D来实现.G++可以使用-D.如果你的编译器不克不及创建依赖关系文件的话,那么你就需要创建一个Makefile.foo来与Makefile.storm(它用一系列的不需要依赖文件的计划)相对应.(3)“system-specific settings”部分有四个小部分:A LMP—INC变量,包含一些与系统相关的条件选项.B 3个MPI变量用于指定MPI库.如你要进行并行计较的话,那么你必须在你的平台上安上MPI 库.如你想用MPI内置C++编译器的话,你可以让这三个变量空着,如你不必MPICC的话,那么,你要指定MPI.h(MPI_INC)文件在哪,MPI(MPI_PATH)库在哪,还有库名(MPI_LIB).如果你想自已装置MPI的话,我们建议用MPICH1.2或M MPI也可以.如果我的是大平始的话,你的供给商已经为你装上了MPI,其可能比MPICH或LAM更快,你可以把找出来并与之链接.如你用LAM或MPICH,你必须要设置他并编译他使之适合你的平台.如果你想在单处理器的机械上运行的话,你可以用STIBS库,这样你就可以不必在你的系统中装置MPI库.防照makefile.serial,看是如果设置这三个变量的.当然你在编译LAMMPS之前你必须创建STUBS库.在STUBS目录中,输入make,不出错的话你将会得到一个libmpi.a文件可供链接到LAMMPS.当出错,你则要修改STUBS下的MAKEFILE. STUBS/MPI.CPP有一个CPU计时器MPI_Wtime()可以调用gettimeofday(). 如你的系统不支持gettimeofday(),则你就要拔出一句代码来调用另一个计时器,要注意的是,clock()函数在一个小时之后会归0,所以对于一个长时间的LAMMPS模拟来说这是不敷用的.C FTT变量用于指定FFT库,当要用到kspace-style命令来计较长程库伦作用时使用PPPM选项时要用到.要使用此选项,你必须要在你的机械上装置一个一维的FFT库.可以能过开关—DFFT—XXX来指定,其中XXX=INTEL,DEC,SGI,SCSL,或FFTW.没有办法的情况下可以用供给商提供的库.FFTW是一个快速的,可移植性的库,它可以在任何一个平台上运行.最好 2.1.X本.编译FFTW库时只要用./configure;make就可以.不任你是用哪一种FFT库,你都要在makefile.foo中正确的设置咱们的FFT_INC,FFT_PATH,FFT_LIB.当然,你如果不必PPPM的话,你将没有需要装置FFT库.这种情况下,你可以把FFT_INC设成-DFFT-NONE并让其它几个变量空着.你也可以在编译LAMMPS时把KSPACE包剔除.D 几个SYSLIB和SYSPATH变量你可以疏忽,除非你在编译LAMMPS时其中有一个或几个包要用到附加的系统库.所有这些包都的的名称都将会是SYSLIB和SYSPATH变量的前辍.SYSLIB变量将列出系统库.SYSPATH则是路径,只有当这些库为非默认路径时才有设定.最后,当你正确的写好了makefile.foo和预编译好了所有的其它库(MPI,FFT,包库等)之后,你只要在SRC目录下输入下面其中一个命令就可以了Make fooGmake foo不出意外,你将会得到lmp_foo的可执行文件.附加建义(1)为多平台编译LAMMPS你可以在同一个SRC目录下为多平台编译LAMMPS.每一个目标都有他自已的目标路径,Obj_name 用于存贮指定系统的目标文件.(2)清理输入make clear-all或make clean-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这三个包.可以通过如make yes-name, make no-name来参加和剔除一些包,当然你也可以用make yes-standard, make no-standard,make yes –user, make no-user, make yes-all, make no-all参加或剔除各类包.Make package可以看到多个选项.3 运行LAMMPS。
vasp与lammps学习资料2020年
LAMMPS分子动力学模拟技术与应用课程内容一、LAMMPS基础1分子动力学模拟入门理论——掌握lammps的in文件中各命令的意义1.1系综理论1.2主要算法介绍1.3积分步长的选取1.4温度和压力控制1.5周期性边界条件1.6分子动力学模拟流程二、LAMMPS入门学习2LAMMPS入门操作基础2.1Linux命令入门基础——熟练掌握LAMMPS所用的Linux命令2.2LAMMPS中一些安装包的介绍——为以后创建自己体系进行选择性安装2.3LAMMPS的linux版串行和并行及GPU版编译安装——掌握LAMMPS的编译方法,针对自己体系编译可执行文件。
2.4LAMMPS的in文件结构格式、基本语法及常用命令讲解、data文件格式。
2.5LAMMPS实例讲解。
实例操作:在linux系统编译安装自己的LAMMPS可执行程序。
三、LAMMPS进阶学习MMPS各种参数计算3.1颗粒模拟3.2可视化快照3.3弹性常数模拟3.4计算热导率3.5计算粘度3.6计算均方位移3.7计算径向分布函数3.8计算扩散系数3.9计算能量数据3.10Lammps常见错误及解决途径实例操作:学员结合自己的科研方向,选择运行契合自己研究方向的例子四、Lammps的建模4LAMMPS建模——掌握基本操作流程4.1掌握lattice命令建立晶体模型4.2Packmol建模语法学习及实操4.3Material Studio建模学习及实操4.4VMD建模学习及实操实例操作:把上述实操模型转换成lammps的data文件五、从examples的简单例子,到完成自己的科研课题5通过examples中的例子,理解要模拟对象的物理意义5.1运行examples\flow到建立水分子在石墨烯片层(碳纳米管)内的流动模拟5.2运行examples\shear到石墨烯力学性质模拟5.3运行examples\friction到金属/合金的摩擦模拟5.4特殊结构的模拟建模(C60系列模型)实例操作:学员探索由简单例子到自己科研课题的模拟过程六、环氧树脂在二氧化硅表面吸附建模(CVFF力场)6环氧树脂在二氧化硅表面吸附吸能的影响模拟过程6.1创建构型文件6.2建立输入脚本6.3运行能量最小化及体系的预松弛6.4压缩盒子达到指定的密度(针对不同研究体系掌握压缩方法的不同,并掌握判断方法和依据)6.5模拟步骤:包括能量最小化-NVT 平衡-NPT 平衡-对研究目标的性质进行长时间轨迹平衡-输出研究所关心的性质。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#文件结构#Initialization#Atom definition#Settings#Run a simulation#注意本程序由于默认的单位体制是LJ# 2d friction simulation#初始化dimension 2#维数boundary p s p#边界条件 boundary x y zx,y,z =porsorform, one or two lettersp is periodicf is non-periodic and fixeds is non-periodic and shrink-wrappedm is non-periodic and shrink-wrapped with a minimum values为收缩边界(自由边界),用于有限尺寸的维度,随原子移动而改变,原子不会跑出边界;f为固定边界,同样用于有限尺寸的维度,模拟时原子可能跑出边界,跑出则程序终止;p为周期边界,原子可以周期穿过盒子边界。
m为柔性边界,允许边界上的粒子有微小移动以反映内层原子的作用力施加到它们身上的情况。
atom_style atomic#atomic原子模式(用于粗粒液体,固体和金属的模拟)。
Define what style of atoms to use in a simulation 定义模拟体系中的原子属性。
用比需要的范围大的类型。
neighbor 0.3 bin#建近邻表参数(r+rc),rc为力的截断距离,缓冲距离r=0.3sigma(σ),bin表示为近邻表类型。
所有截止距离等于它的力的截断距离加上缓冲距离的原子对都被存储在列表里。
其值的选择取决于单位制。
Syntax:neighbor skin styleThis command sets parameters that affect the building of pairwise neighbor lists.skin = extra distance beyond force cutoff (distance units)style =bin or nsq or multineigh_modify delay 5#间隔5载荷步重新形成近邻表# create geometry#创建初始几何构形lattice hex 0.9#定义晶格类型(二维hex)和Lennard-Jones折算密度0.9region box block 0 50 0 22 -0.25 0.25#定义模拟盒子(区域)的大小,在空间x[0,50],y[0,22],z[-0.25,0.25]的范围内创建区域。
create_box 4 box#在上述空间内创建一个具有四种原子类型的模拟盒子(原子位置初始化)mass 1 1.0#第一种原子类型质量为1g/molmass 2 1.0#第二种原子类型质量为1g/molmass 3 1.0#第三种原子类型质量为1g/molmass 4 1.0#第四种原子类型质量为1g/mol# atom regionsregion lo-fixed block INF INF INF 1.1 INF INF#定义了一个叫lo-fixed的区域{x[-inf,+inf],y[-inf,1.1],z[-inf,+inf]}region lo-slab block INF INF INF 7 INF INFregion above-lo block INF INF INF 7 INF INF side out#side out表示与所给坐标相反的一边region hi-fixed block INF INF 20.9 INF INF INFregion hi-slab block INF INF 15 INF INF INFregion below-hi block INF INF 15 INF INF INF side outregion lo-asperity sphere 32 7 0 8#定义了一个叫lo-asperity([æˈspɛrɪti]粗糙)的球形区域,球心(32,7,0),球的半径8region hi-asperity sphere 18 15 0 8region lo-half-sphere intersect 2 lo-asperity above-lo#定义lo-asperity和above-lo两个区域的相交区域为lo-half-sphere区域region hi-half-sphere intersect 2 hi-asperity below-hi# create 2 surfaces with asperities#创建两个粗糙表面create_atoms 1 region lo-slab#在lo-slab区域里创建第1种原子create_atoms 1 region hi-slabcreate_atoms 2 region lo-half-spherecreate_atoms 3 region hi-half-sphere# LJ potentials#LJ势函数pair_style lj/cut 2.5#定义势函数是lj势,截断半径为2.5pair_coeff * * 1.0 1.0 2.5#指定lj势参数ɛσ cutoff# define groups#定义组,便于加载group lo region lo-slab#定义lo-slab区域里的原子组叫lo组group lo type 2#并不能改变原子类型,仅仅是将第2种原子定义入lo组group hi region hi-slabgroup hi type 3group lo-fixed region lo-fixedgroup hi-fixed region hi-fixedgroup boundary union lo-fixed hi-fixed#定义总边界组lo-fixed+hi-fixed= boundarygroup mobile subtract all boundary#定义可动原子组mobile=all-boundaryset group lo-fixed type 4#指定group lo-fixed为第四种原子类型set group hi-fixed type 4#指定group hi-fixed为第四种原子类型# initial velocities#设定初始速度compute new mobile temp/partial 0 1 0#定义温度的计算(可动区域内统计平均), 用户为计算取的名字new(ID),group-ID ,mobile原子组,temp/partiale(style)XYZ的对应位置0或1表示排除或包含这个方向Define a computation that calculates the temperature of a group of atoms, after excluding one or more velocity components. A compute of this style can be used by any command that computes a temperature, e.g.thermo_modify, fix temp/rescale, fix npt, etc.The temperature is calculated by the formula KE = dim/2 N k T, where KE = total kinetic energy of the groupof atoms (sum of 1/2 m v^2), dim = dimensionality of the simulation, N = number of atoms in the group, k =Boltzmann constant, and T = temperature. The calculation of KE excludes the x, y, or z dimensions if xflag,yflag, or zflag = 0. The dim parameter is adjusted to give the correct number of degrees of freedom.velocity mobile create 0.1 482748 temp new#格式:velocity group-ID style args keyword value ...mobile(group ID)按指定的温度(0.1)计算方法,初始化原子的速度。
The create style generates an ensemble of velocities using a random number generator with the specified seed as the specified temperature.create风格使用一个随机数发生器与指定的种子产生一个整体的速度作为指定的温度。
Create args = temp seedtemp = temperature value (temperature units) 0.1seed = random # seed (positive integer) 482748temp value = temperature compute ID temp newvelocity hi set 1.0 0.0 0.0 sum yes#velocity group-ID style args keyword valuehi原子组x方向的速度为1.0,set(style),set args = vx vy vzvx,vy,vz = velocity value or NULL (velocity units)any of vx,vy,vz van be a variable (see below)sum(keyword)其值为yes或者no(The sum keyword is used by all styles, except zero. The new velocities will be added to the existing ones ifsum = yes, or will replace them if sum = no).# fixes#fix指令的用途是对一组原子进行定义,可以用于更新原子的位置、速度、控制温度、加常力、施加边界条件等。