lammps笔记-入门

news2025/1/16 7:50:31

1 输入文件

输入脚本文件(命令文件?)要包含五个部分:

# 1) Initialization

# 2) System definition

# 3) Simulation settings

# 4) Visualization

# 5) Run

这五个部分不一定全都需要,也不一定完全按如下顺序。例如3和4可以翻过来,另外还可以多次重复。

1.1 初始化

# 1) Initialization

units lj

dimension 2

atom_style atomic

pair_style lj/cut 2.5

boundary p p p

第一句采用lj归一化单位;第二句表示二维模型;第三句表示采用原子质点模型;第四句表示原子间作用力模型为LJ,截断值2.5;最后一行表示xyz三个方向采用周期性边界条件。

(二维模型三个周期性边界?It may seems strange to define the boundary conditions along the third dimension for a 2D simulation, but it is a LAMMPS requirement.)

cutoff是什么。

1.2 系统定义

region myreg block -30 30 -30 30 -0.5 0.5

create_box 2 myreg

create_atoms 1 random 1500 341341 myreg

create_atoms 2 random 100 127569 myreg

第一行构建模拟区域(几何模型),称为myreg。模拟区域为block,长方体,xyz范围如上。

第二行定义模拟盒子(?),其中含有两种原子。

第三行定义第一种原子随机布置,有1500个,341341是随机数种子。后续可以更改,以便进行不同的仿真。

第四行定义第二种原子,有100个。

1.3 仿真设置

# 3) Simulation settings

mass 1 1

mass 2 1

pair_coeff 1 1 1.0 1.0

pair_coeff 2 2 0.5 3.0

头两行定义原子质量,均为1。

后两行定义原子的作用势参数:势阱和势能为0的距离。注意,lammps用几何平均计算不同种类原子的相互作用参数,即:

$$\epsilon_{ij} = \sqrt{\epsilon_{ii} \epsilon_{jj}}
\space
\space
\sigma_{ij} = \sqrt{\sigma_{ii} \sigma_{jj}}$$

这只是一种权益之计,不过它不影响仿真结果。

也可以采用pair_coeff 1 2明确指定相互作用参数。

1.4 可视化和运行

# 4) Visualization

thermo 10

# 5) Run

minimize 1.0e-4 1.0e-6 1000 10000

可视化时,thermo 表示输出热力学信息,如温度和能量等,10表示每10步输出一次。minimize表示进行能量最小化,约束条件是两次迭代之间的能量差值小于1e-4,两个原子之间的力的最大值小于1e-6,迭代次数大于1000次,力和能量计算次数超过10000次。

运行后输出结果如下

Step Temp E_pair E_mol TotEng Press

0 0 5.8997404e+14 0 5.8997404e+14 1.5732641e+15

10 0 56275037 0 56275037 1.5007118e+08

20 0 17731.329 0 17731.329 47458.738

30 0 350.68529 0 350.68529 972.14134

40 0 13.745948 0 13.745948 48.748312

50 0 0.5033657 0 0.5033657 8.3398718

60 0 -1.4427524 0 -1.4427524 1.1131474

70 0 -1.7136665 0 -1.7136665 -0.038162464

80 0 -1.7516642 0 -1.7516642 -0.15686171

81 0 -1.7518285 0 -1.7518285 -0.15730928

在步长零时,能量很高,得到1e+14量级。可能是因为粒子位置随机产生,有重叠,导致斥力大,能量高。随着计算进行,能量迅速减小。

lammps输出还有

Minimization stats: Stopping criterion = energy tolerance

说明满足了迭代中能量的条件。

lammps还会输出

WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization

这是因为lammps认为构建粒子邻居列表比默认更为频繁,所以输出了warning。可忽略。

2 动力学模拟

# PART B - MOLECULAR DYNAMICS #

4) Visualization

thermo 1000

variable kinetic_energy equal ke

variable potential_energy equal pe

variable pressure equal press

fix myat1 all ave/time 10 1 10 v_kinetic_energy v_potential_energy v_pressure file energy.dat

# 5) Run

fix mynve all nve

fix mylgv all langevin 1.0 1.0 0.1 1530917

fix myefn all enforce2d

timestep 0.005

run 10000

在前面写好的命令后面加上如上面命令。因为lammps执行命令顺序从上到下,所以这些命令是在能量最小化之后执行的。后面的thermo命令执行时,热力学信息输出改为1000步输出一次。

然后用variable命令定义了三个变量Kinetic_energy、potential energy, and the pressure,输出文件为energy.dat。

下面run部分,要求所有原子按照nve系综更新位置和速度。第二句采用郎之万热浴控温,温度为1,阻尼系数(?)为0.1,随机数种子1530917。然后enforce2D要求二维模拟。最后设置时间步长和模拟步数。

模拟输出

可以看到温度很快升到1。

此外,还输出了如下信息

可以看出,998个dangerous邻居列表。这说明两次计算邻居列表中原子移动的距离过大。在模拟设置部分需要增加如下命令:

neigh_modify every 1 delay 5 check yes

这样lammps就能够更频繁的构建邻居列表。

现在结果就正确了。

3 轨迹可视化

如果我们需要把轨迹可视化,需要定时输出dump原子的位置。在visualization一段加上如下命令:

dump mydmp all atom 1000 dump.lammpstrj

再次运行lammps。输出的文件为dump.lammpstrj,可用vmd或ovito可视化。

4 改进

比如,我们首先创建一个region,然后在其基础上创建一个box。再另外创建两个region,其中分别创建类型1和类型2的原子。

# 2) System definition

region mybox block -30 30 -30 30 -0.5 0.5

create_box 2 mybox

region mycylin cylinder z 0 0 15 INF INF side in

region mycylou cylinder z 0 0 15 INF INF side out

create_atoms 1 random 1000 341341 mycylou

create_atoms 2 random 150 127569 mycylin

side in和side out分别表示在圆柱内和圆柱外。

# 3) Simulation settings

mass 1 1

mass 2 1

pair_coeff 1 1 1.0 1.0

pair_coeff 2 2 0.5 3.0

neigh_modify every 1 delay 5 check yes

# 4) Visualization

thermo 10

dump mydmp all atom 10 dump.min.lammpstrj

# 5) Run

minimize 1.0e-4 1.0e-6 1000 10000

write_data minimized_coordinate.data

最后一行表示lammps将最终结果输出至minimized_coordinate.data文件。这个文件保存了能量最小化的状态,可以在以后重新模拟时使用。

更进一步,如果只想保留圆柱内类型2的原子和圆柱外类型1的原子,我们可以通过如下命令删除不符合条件的原子

region mycylin cylinder z 0 0 15 INF INF side in

region mycylou cylinder z 0 0 15 INF INF side out

group mytype1 type 1

group mytype2 type 2

group incyl region mycylin

group oucyl region mycylou

group type1in intersect mytype1 incyl

group type2ou intersect mytype2 oucyl

delete_atoms group type1in

delete_atoms group type2ou

运行时,可以发现lammps输出了相关的信息

为了输出相关信息,可以采用如下命令

variable Ntype1in equal count(mytype1,mycylin)

variable Ntype1ou equal count(mytype1,mycylou)

variable Ntype2in equal count(mytype2,mycylin)

variable Ntype2ou equal count(mytype2,mycylou)

fix myat1 all ave/time 1000 10 10000 v_Ntype1in v_Ntype1ou file population1vstime.dat

fix myat2 all ave/time 1000 10 10000 v_Ntype2in v_Ntype2ou file population2vstime.dat

compute coor12 type1 coord/atom cutoff 2.0 group type2

compute sumcoor12 all reduce ave c_coor12

fix myat3 all ave/time 1000 10 10000 c_sumcoor12 file coordinationnumber12.dat

这里定义了相关的变量,然后进行计算。fix ave/times求相关变量的平均,每10000步计算一次,10个步长的平均。后面是计算类型1和类型2原子间的配位数。

# 5) Run

velocity all create 1.0 4928459 mom yes rot yes dist gaussian

fix mynve all nve

fix mylgv all langevin 1.0 1.0 0.1 1530917 zero yes

fix myefn all enforce2d

timestep 0.005

run 3000000

write_data data.mixed.lammps

这里,velocity create为每个原子施加初始速度。初始速度选取满足温度=1,随机产生,分布为高斯分布;mom yes 和rot yes表示该系统没有线动量和角动量(好奇怪的写法)。郎之万热浴中zero yes表示总的随机力为0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html在线商城购物网站制作——基于HTML+CSS+JavaScript鲜花礼品电商网站

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

目标检测算法——图像分割数据集汇总 2(附下载链接)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f384;&#x1f384;近期&#xff0c;小海带在空闲之余&#xff0c;收集整理了一批图像分割数据集供大家参考。 整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01;&am…

为什么 React 中使用控制反转不会触发重新渲染

控制反转&#xff0c;是面向对象编程中的一种设计原则&#xff0c;可以用来减低计算机代码之间的耦合度。 控制反转的应用 首先来看一段常见的 React 代码 import { useState } from "react"const Father () > {const [count, setCount] useState(0);console.…

目标检测的中的指标的含义及其实现

目录 一、Precision和Recall 二、IoU (Intersection over Union) 三、top5、top1 四、Average Precision 五、COCO数据集的评价指标 1、Average Precision (AP) 2、Evaluation Code 3、Analysis Code 一、Precision和Recall Precision是查准率、精确率的意思。预测为正…

基于储能电站服务的冷热电多微网系统双层优化配置附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

QT 系统学习 day04 事件 HTTP网络请求, 音乐播放器,上位机串口通行

1.HTTP 网络 1.头文件 &#xff1a; 网络 /***** HTTP 网络相关模块 *****/ #include <QNetworkAccessManager> /** 网络访问类 **/ #include <QNetworkRequest> /** 网络请求数据类 **/ #include <QNetworkReply> /** 网络结果…

Spring学习:五、AOP 面向切面编程、Spring与Mybatis整合

7. AOP 面向切面编程 7.1 AOP概述 ​ AOP英文名为Aspect Oriented Programming&#xff0c;意为面向切面编程&#xff0c;通过预编译方式和运行期间动态代理实现程序功能统一维护的一种技术。AOP是OOP的延续&#xff0c;是Spring框架中的一个重要内容&#xff0c;利用AOP可以…

C++不知算法系列之排序从玩转冒泡算法开始

1. 前言 所谓排序&#xff0c;指把数据群体按个体数据的特征按从大到小或从小到大的顺序存放。 排序在应用开发中很常见&#xff0c;如对商品按价格、人气、购买数量等排序&#xff0c;便于使用者快速找到数据。 常见的排序算法分为两大类&#xff1a; 比较类&#xff1a;通…

springboot奖助学金评审系统的设计与实现毕业设计源码031035

奖助学金评审系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用…

③【Maven】创建Maven工程,解读核心配置。

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 创建Maven工程&#xff0c;解读核心配置。一、…

React render 的原理和触发时机

一、原理 在类组件和函数组件中&#xff0c;render函数的形式是不同的。 在类组件中render函数指的就是render方法&#xff1b;而在函数组件中&#xff0c;指的就是整个函数组件。 class Foo extends React.Component {render() { //类组件中return <h1> Foo </h1&…

CANoe的安装及打开

1. 安装 CANoe分为软件和硬件。硬件是一个盒子,可以连接真实ECU进行剩余仿真测试 软件需要安装使用,可以在Vector官方网站上下载软件包:https://www.vector.com/cn/zh/products/products-a-z/software/canoe/#c4327 我们以CANoe 15版本为例,下载后是压缩包 解压后,双击运…

结构(structure)创建——直接赋值法与使用struct函数创建法。

一些不同类型的数据组合成一个整体&#xff0c;虽然各个属性分别具有不同的数据类型&#xff0c;但是它们之间是密切相关的&#xff0c;结构&#xff08;(Structure&#xff09;类型就是包含一组记录的数据类型。结构类型的变量多种多样&#xff0c;可以是一维数组、二维数组或…

全面梳理Spring Boot框架的日志体系结构

文章目录1. Java 日志概览1.1 总体概览1.2 日志级别1.3 综合对比1.4 最佳实践2. Spring Boot 日志实现2.1 Spring Boot 日志配置2.2 Logback 配置2.3 Log4j 配置之前录过一个视频和大家分享 Spring Boot 日志问题&#xff0c;但是总感觉差点意思&#xff0c;因此松哥打算再通过…

第十八章 SPFA算法以及负环问题(利用dijkstra推导出该算法,超级详细!!)

第十八章 SPFA算法以及负环问题一、dijkstra算法的弊端二、dijkstra算法的优化1、SPFA算法&#xff08;1&#xff09;算法思路&#xff1a;&#xff08;2&#xff09;算法模板&#xff1a;问题&#xff1a;模板&#xff1a;逐行分析&#xff1a;三、SFPA解决负环问题&#xff1…

uni-clould常用笔记

一&#xff0c;云函数 定义&#xff1a; // hellocf云函数index.js入口文件代码 use strict; exports.main async (event, context) > {//event为客户端上传的参数let c event.a event.breturn {sum: c} // 通过return返回结果给客户端 }调用&#xff1a; // 客户端调…

【Linux】su 和 sudo 命令

su 命令 su 命令作用&#xff1a;在已登录的会话中切换到另外一个用户。 1、su root 切换超级用户root角色&#xff0c;但不切换用户环境。需要输入root角色的密码。 2、su - root 切换root角色&#xff0c;并切换用户环境。 sudo 命令 sudo 命令作用&#xff1a;暂时切…

【树莓派不吃灰】命令篇⑩ 记录Linux常用命令

目录1. 命令格式1.1 mount2. 文件处理命令2.1 ls2.2 mkdir2.3 cd2.4 pwd2.5 rmdir2.6 cp2.7 mv2.8 rm2.9 touch2.10 cat、tac2.11 more、less、head、tail2.12 ln3. 权限管理命令3.1 chmod3.2 chown3.3 chgrp3.4 umask4. 文件搜索命令4.1 find4.2 locate4.3 which4.4 whereis4.…

进阶 - Git的标签管理

本篇文章&#xff0c;是基于我自用Windows&#xff08;Win10&#xff09;系统当做示例演示 本地仓库在&#xff1a;E:\test_git_rep 远程仓库是&#xff1a;gitgithub.com:lili40342/test_git_rep.git 描述测试环境的目的&#xff0c;是更好的解释测试过程&#xff0c;以免对你…

elasticsearch-8.5.2快速入门和kibana-8.5.2的使用

一、 安装 官方安装Elasticsearch&#xff0c;和ES可视化工具kibana。安装下载过程略。 二、 启动Elasticsearch。 windows系统&#xff0c;直接进入到如图目录&#xff0c;然后启动elasticsearch.bat&#xff0c;这个就是ES服务。 启动后&#xff0c;我们可以访问https://…