lammps输出RDF(径向分布函数)详解及示例教程
原创 一直陪着你的 LAMMPS交流站 2021-10-18 11:40
收录于话题#lammps案例16个内容
大家好,小编最近的课题需要输出RDF(径向分布函数),小编就去lammps官网及网络查找了如何用lammps输出RDF,小编就把自己学到的用法在这里跟大家分享,也算是小编学习过程中的一个笔记。
本教程也是小编现学现卖,不足之处请各位指出,希望能给读者提供一定的帮助,读者可结合实际需求,同时希望专业前辈提出不足,小编会和大家共同学习。
01
RDF介绍
1.径向分布函数概念
在统计力学中,多粒子系统(原子、分子、胶体……中, 径向分布函数(又称对关联函数)描述粒子密度作为距参考原子的距离的函数如何变化。
如果给定粒子当做原点,体系平均粒子数密度为 ρ=N/V,则距原点为r处的局部时间平均的密度为 ρ*g(r) 。这是对均匀的各向同性系统的简化定义。
简言之,这是对于距参考粒子距离为r处找到粒子的相对概率的测量,参考态是理想气体。一般的算法是计算在距参考原子 r 到 r+dr 这样的壳层里有多少粒子。
RDF的定义的定义式如下:
式中,V为系统的个数,N为系统中的粒子数,n(r)为纳米粒子半径dr处厚度下的原子数。
2.径向分布函数意义
径向分布函数通常用g(r,r')来表示。对于 |r-r'| 比较小的情况,g(r,r') 主要表征的是原子的堆积状况及各个键之间的距离。对于长程的性质,由于对于给定的距离找到原子的几率基本上相同,所以g(r,r')随着|r-r'|的增大而变得平缓,最后趋向于恒值。通常定义 g(r,r')时,归一化的条件为 |r-r'| 趋向于无穷大时,g(r,r') 趋向于一。通常,对于晶体,由于其有序的结构,径向分布函数有长程的峰,而对于非晶物质(amorphous matter),则径向分布函数一般只有短程的峰。
径向分布函数通常被用来描述原子有序性及描述电子的相关性(指的就是给定一个电子,其他电子在此电子周围出现的几率),也就是在RDF图中,峰所在位置就是电子出现概率大的位置。
02
官网用法
我们在lammps官网可以看到输出RDF的具体语法
compute ID group-ID rdf Nbin itype1 jtype1 itype2 jtype2 ... keyword/value ...
fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...
举例:
compute 1 all rdf 100
compute 1 all rdf 100 1 1
compute 1 all rdf 100 * 3 cutoff 5.0
compute 1 fluid rdf 500 1 1 1 2 2 1 2 2
compute 1 fluid rdf 500 1*3 2 5 *10 cutoff 3.
在compute rdf命令中,Nbin为统计量(样本量),数越多可能曲线会越光滑(一般200-500);itype1是径向分布函数的中心原子, jtype1是被统计的原子。
在fix ave/time命令中,Nfreq必须是Nevery的整数倍,
Nevery
必须是非零。用compute rdf命令时,value1、value2 ... 为c_ID[1],c_ID[2],c_ID[3],输出结果按列依次为序号,c_ID[1]为group到原点的距离,即x轴,c_ID[2]为g( r ),c_ID[3]为coor( r ),即 g( r )的积分,也就是输出的数据以c_ID[1]为横轴,以c_ID[2]或c_ID[3]为纵轴,就可以得到某一时刻的RDF曲线。
例如以下命令可用于输出每1000步的rdf值,在截断半径范围内,距离被分成200段:
compute rdf all rdf 200 2 6 #rdf
fix rdf all ave/time 1000 1 1000 c_rd1[1] c_rd1[2] c_rd1[3] file data.rdf mode vector
03
代码示例
本文将之前做的一个案例CuNi合金熔化模拟过程的1550K-2500K升温过程的RDF输出,添加的代码为:
compute rdf all rdf 200
fix saverdf all ave/time 100 100 10000 c_rdf[1] c_rdf[2] file data.rdf mode vector
完整in文件如下:
#lammps交流站案例
units metal
boundary p p patom_style atomicread_data melting.in.datlattice fcc 3.65
region box block -30 30 -5 5 -5 5
#create_box 1 box
#create_atoms mass 1 64.55
mass 2 58.69 pair_style eam/alloy
pair_coeff * * CuNi.lammps.eam Cu Niregion 1 block INF -0.01 -6 6 -6 6
group left region 1
region 2 block -0.01 INF -6 6 -6 6
group right region 2timestep 0.002
velocity all create 1550.0 4928459 dist gaussian
fix 1 all npt temp 1550 1550 0.1 iso 0 0 0.2dump melt all atom 10000 dump.dat
#dump melt all custom 1000 dump.atom.slow tag type xu yu zu vx vy vz sxx syy szz
restart 50000 restart.*thermo 100
run 4000#thermo_style custom step temp etotal pe press vol pxx pyy pzz pyz pxz pxyunfix 1
fix 1 right npt temp 1550 2500 0.1 x 0 0 0.2
#1.输出rdf
compute rdf all rdf 200
fix saverdf all ave/time 100 100 10000 c_rdf[1] c_rdf[2] file data.rdf mode vector
run 2000unfix 1
fix 1 right npt temp 2500 1550 0.1 x 0 0 0.2run 44000unfix 1
fix 1 all nph iso 0.0 0.0 0.2
run 500000
最后,用记事本打开生成的data.rdf文件,用里面的数c_rdf[1]及 c_rdf[2]绘图,就可以得到如下的RDF曲线。
注意
1.文中所需的data文件及势文件已上传至QQ群-lammps交流站。
更多案例请关注lammps交流站
LAMMPS交流站
lammps输出RDF(径向分布函数)详解及示例教程相关推荐
- lammps输出MSD(均方根位移)详解及示例教程
[lammps第十五讲]lammps输出MSD(均方根位移)详解及示例教程 原创 一直陪着你的 LAMMPS交流站 2021-10-23 11:45 收录于话题 #lammps21个内容 #lammp ...
- Java 10 var关键字详解和示例教程
\ 关键要点 \\ Java 10引入了一个闪亮的新功能:局部变量类型推断.对于局部变量,现在可以使用特殊的保留类型名称"var"代替实际类型.\\t 提供这个特性是为了增强Jav ...
- linux输出文件没有找到,Linux环境下标准输入、输出、错误信息详解
Linux环境下标准输入.输出.错误信息详解 下面我们介绍在Linux环境下标准输入.输出.错误设备.标准输入设备代号为0, 用来显示输入信息,标准输出设备代号为1,用来显示正常信息,标准错误设备代号 ...
- 31.进程管理之进程概览,及ps命令详解,ps -ef,ps aux,ps -le,ps -l输出详解和示例
本小章讲解进程管理中的进程概览和作用,及ps命令详解,ps -ef,ps aux,ps -le,ps -l的输出详解和示例 文章目录 进程概览 什么是进程和程序 进程管理的作用 进程启动方式 僵尸进程 ...
- Java基础【之】输出一个菱形(详解)
Java基础[之]输出一个菱形(详解) 代码示例 <目录:Java渐进式学习> <目录:Java设计模式> <目录:从零手写Tomcat> 代码示例 public ...
- 运动控制器PSO位置同步输出(二):PSO模式详解
本节我们主要去讲解一下多种PSO模式原理和使用的讲解,用户可根据实际需求灵活选择触发模式. 一.硬件说明 硬件选型的首要要求是支持PSO功能,再分析PSO的应用场合和轴数等选择具体的型号.本例以ZMC ...
- java注解 源码_详解Java注解教程及自定义注解
详解Java注解教程及自定义注解 更新时间:2016-02-26 11:47:06 作者:佚名 我要评论(0) Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个 ...
- MySQL隔离级别--未提交读,提交读,可重复读,序列化--详解(有示例)
原文网址:MySQL隔离级别--未提交读,提交读,可重复读,序列化--详解(有示例)_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL的事务隔离级别的含义,并用示例说明各个 ...
- yolov5——detect.py代码【注释、详解、使用教程】
yolov5--detect.py代码[注释.详解.使用教程] yolov5--detect.py代码[注释.详解.使用教程] 1. 函数parse_opt() 2. 函数main() 3. 函数ru ...
最新文章
- 个人前端学习路线图与github优秀前端开发者的路线图推荐
- java 反射调用静态方法
- AI 时代,如何布局算力基础设施
- web系统 手机app 能访问吗?_苹果手机能下载什么好用的桌面便签?有什么好的便签app推荐吗...
- python获取字典长度_Python基础-字典
- 关于udelay(); mdelay(); ndelay(); msleep();
- VS2010 C++ 创建COM组件
- 浅析多线程中的各种锁
- access的papersize命令_巡检命令及查看参数
- Hadoop HIVE 聚合查询
- Vue遍历对象,数组,v-if、v-if-else、v-else
- java integer源码_Integer包装类源码分析
- css颜色跟背景总结(内含实例及截图)
- 海南大学考研经验分享之(考研数学)
- 苹果电脑计算机找不到打印机,Mac_Mac怎么连接打印机?苹果电脑Mac打印机设置教程 ,Mac怎么连接打印机?Mac打印机 - phpStudy...
- 轻松斩断信息安全黑手!就这?
- findIndex()
- 将yyyyMMdd转成yyyy-MM-dd格式和yyyy-MM-dd格式转成yyyyMMdd
- 面试官问了我7个问题,场面一度很尴尬
- Bootstrap的工具提示(Tooltip)
热门文章
- gurobi和matlab
- 设置白名单:让tesseract-OCR只识别指定内容
- 我家云刷android系统教程,我家云刷机教程——小白详细版
- fiddler--抓包--之数据分析和查看(inspectors)
- Flutter 动画学习
- SAS Programming for R Users, Part 2 R语言的SAS编程教程,第2部分 Lynda课程中文字幕
- 软考电子证书什么时候可以查询?
- matlab contourf函数,matlab-colormap-contourf函数
- 如何保存和恢复微信、QQ的电脑聊天记录
- windows常用端口号,以及服务对应的端口号