neighbor和neigh_modify(转载)
(转载:http://blog.sina.com.cn/s/blog_b48a7ac30102w4mg.html###)
以下取自:http://simulation.haotui.com/viewthread.php?tid=11368&jdfwkey=cnypw3
收集1:neighbor选取的大小对实际的计算结果影响很小,但对计算速度应该会有一定影响。
neighbor 2 bin 意思是每个原子在所取对势(即pair style)的截断半径以外,计算机还会在2 bin的额外范围每一时间步检测其原子间的相互作用力。而bin是与N/P线性变化(N原子总数,P是cup数)。总之,这个设定的大小并不是十分重要。
收集2:由于neighbor-list的计算比较耗时,多数MD代码都是在一次build之后的接下来若干步之内都使用这个neighbor-list,而不是每一步都更新。因此,在build是选取的实际截断半径是r_cut+skin,只要在若干步之内原子位移小于skin/2就是安全的(lammps可以检查这个,Dangerous builds就是指在某次build时发现此时刻原子相对上一次build时的位移超过了skin/2)。build的频率需要和skin大小结合起来使用,这样达到最佳的运行速度(不同系统需要自己试,但很显然的道理是较小的skin需要较高的更新频率)。 理论上,skin的大小对最终的结果是没有影响的,但对计算速度有。
neighbor 10 .0 bin 没必要取这么大,这样neighbors太多,内存占用增大和速度下降。甚至超出lammps预定的极限就会溢出。unit real情况下,skin一般2-3,配合使用 neigh_modify delay 5就可以了。 如果使用neigh_modify delay 3 还有很高比例的Dangerous builds,应该是你的积分步长太大,应适当减小积分步长。
以下取自:http://www.360doc.com/content/12/0106/01/8275160_177586409.shtml
收集3:用来设定计算邻位列表的频率。
Delay: never build a new list until at least N steps after the previous build 在建立一次邻位列表后,至少要经过N steps才能建立下一次的邻位列表。
Every:在delay经过之后,每经过M步建立一次邻位列表。个人感觉lammps中这点写的有点混乱。个人理解:每建立一次列表后,经过N+M才能建立下一次列表。如果N不为零,必须为M的倍数,否则没有什么意义了。这里为什么非要这种设置呢,如果设置频率的话只需要一个参数就够了啊?http://simulation.5d6d.scom/viewthread.php?tid=8245&page=1#pid52602
Check:如果值为no,则只需要满足以上两者的设定后就可以重新建立邻位列表了。如果值为yes,则只有当某个原子的位移大于皮肤半径的一半才重新建立列表。
Exclude:用来取消某些原子之间的相互作用。对于以下几种情况很重要:裂纹模拟;冰冻处理;原子被设定为刚体时;这中处理方式可以节约计算时间。这个只影响原子间非键结的相互作用。
Page and one:关于邻位列表的存储问题。
恩,仔细看了下你写的分析过程,结合原始程序,基本上明白了这两个参数的作用。其实,建立邻位列表的频率是由delay every check三个参数共同确定的。
if (ago >= delay && ago % every == 0)//这是最基本的条件
{
if (dist_check == 0) return 1;//当dist_check==0的时候,邻位列表定期更新
else return check_distance();//当dist_check!=0的时候,就是标签更新,只有当列表中某个原子的位移大于skin的一半的时候才建立
}
else return 0;
其实首先要明白,更新列表有两种方式,一种是定期更新,另外一种是标签更新。
因此,如果delay为零,则不管dist_check如何取值,只要当时间步是every的倍数就可以更新列表
如果delay不为零,every==1,并且dist_check==0,则更新列表的频率与every没有什么关系,只要距离上次更新列表的时间步达到delay就更新。
而如果delay不为零,every不为1时,手册中有要求,“如果delay不为零,他的值必须是every的倍数”。因此,如果 dist_check==0,则时间步达到delay+every,则列表就开始更新。而如果dist_check不为零,则只有当时间步为 delay+N*every(N=0,1,2……)的时候,邻位列表才更新。
结论:由于neighbor-list的计算比较耗时,多数MD代码都是在一次build之后的接下来若干步之内都使用这个neighbor-list,而不是每一步都更新。因此,在build是选取的实际截断半径是r_cut+skin,只要在若干步之内原子位移小于skin/2就是安全的(lammps可以检查这个,Dangerous builds就是指在某次build时发现此时刻原子相对上一次build时的位移超过了skin/2)。build的频率需要和skin大小结合起来使用,这样达到最佳的运行速度(不同系统需要自己试,但很显然的道理是较小的skin需要较高的更新频率)。 理论上,skin的大小对最终的结果是没有影响的,但对计算速度有。
neighbor取系统默认值即可。neigh_modify取 delay 0 every 5 check yes
neighbor和neigh_modify(转载)的更多相关文章
- in文件注意事项及详细解释(转载)
转载自:https://www.cnblogs.com/sysu/p/10817315.html 和 https://www.cnblogs.com/panscience/p/4953940.h ...
- 开始进行lammps手册的学习啦,跟着Manual一边翻译一边做吧!(转载)
转载自:http://blog.sina.com.cn/s/blog_64813e370100ngsz.html 注明:黄色部分基本上为不懂的部分,红色字体为所做注释 一.各种文件的介绍: 1 in ...
- Clayff力场(转载)
本文转载自:http://blog.sina.com.cn/s/blog_b48a7ac30102w4km.html 注意:lammps中并没有完整的clayff势函数,需要将一下三者结合使用. an ...
- 转载: scikit-learn学习之K最近邻算法(KNN)
版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...
- [转载]opencv MSER
最大稳定极值区域(MSER-Maximally Stable Extremal Regions)可以用于图像的斑点区域检测.该算法最早是由Matas等人于2002年提出,它是基于分水岭的概念. MSE ...
- 【转载】K-NN算法 学习总结
声明:作者:会心一击 出处:http://www.cnblogs.com/lijingchn/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
- 【cs231n】图像分类 k-Nearest Neighbor Classifier(K最近邻分类器)【python3实现】
[学习自CS231n课程] 转载请注明出处:http://www.cnblogs.com/GraceSkyer/p/8763616.html k-Nearest Neighbor(KNN)分类器 与其 ...
- 【cs231n】图像分类-Nearest Neighbor Classifier(最近邻分类器)【python3实现】
[学习自CS231n课程] 转载请注明出处:http://www.cnblogs.com/GraceSkyer/p/8735908.html 图像分类: 一张图像的表示:长度.宽度.通道(3个颜色通道 ...
- k-Nearest Neighbor algorithm 思想
转载 KNN--K最邻近算法思想 KNN算法的决策过程 k-Nearest Neighbor algorithm 上图中,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3, ...
随机推荐
- 友好城市dp
// // Created by Arc on 2020/4/27. //对了,这篇题解的代码是小白自己写的.有啥错误还请各位大佬多多包涵. /* * 某国有一条大河(一条大河~~~~,波浪宽~~~~ ...
- Day02_IP地址详解&进制转换&DOS基本命令与批处理
学于千峰教育开源课程 感谢 千峰教育官网 b站在线视频 IP地址详解 一.简单局域网的构成 局域网:一般称为内网 简单局域网的构成:交换机.网线.PC(其他IT终端) 交换机:用来组建内网的局域网的设 ...
- python之路第一节-pip的使用
第一次写博客,一边吃着旺仔冻痴一边学着python,爽~ 我之理解pip 首先,python封装好了大量的函数,这些函数存在各种各样的库中. 那么怎么去向我们可爱的pycharm等软件导入这些库呢,两 ...
- Linux常用命令之ls、cd、pwd、mkdir命令讲解
ls命令令是Linux最常用的命令之一,也是一条非常古老的命令.在开始学习Linux命令之前,还是想给大家一条建议: 很多同学可能刚开始学习Linux,然后就去买一些教材去学习,教材上面有可能收集了L ...
- electron 开发 - win7 运行后白屏 黑屏
解决思路: localhost:3000本地react项目确保运行无误 electron 官方demo跑一遍确认不是配置问题 切换electron版本,发现5可以6不行 google 官方issue ...
- Xcode11更改启动页设置方法
新开了个项目,发现之前的启动页怎么也调不好,后来发现配置里边少了一行,所以整理一下,我使用的xcode版本是11. 以前的时候是在这2个中间,还有一行,通过下边2项来配置,现在更改了,附上新的教程.如 ...
- ios 继承UITableViewController,更改tableview样式
// 继承UITableViewController,更改tableview样式 - (instancetype)initWithStyle:(UITableViewStyle)style { ret ...
- 云服务器远程连接mysql数据库
首先需要在云服务器上,下载安装好mysql与Navicat. mysql下载好以后,打开云端的开始,找到mysql的命令窗,进入输入自己的mysql密码,稍等片刻进入mysql数据库 进入之后输入下列 ...
- mybatis(mysql)代码生成器扩展
前些天在做我的KSF框架的时候需要用到mybatis代码生成器, 但是发现有一些东西需要调整,主要集中在以下几点: 1. 加入batchInsert 2. 加入batchUpdate 3. mysq ...
- 2020-06-25:B+树和B树有什么区别?
福哥答案2020-06-25: B树:1.叶子节点和非叶子节点都存数据.2.数据无链指针.B+树:1.只有叶子节点存数据.2.数据有链指针.B树优势:1.靠近根节点的数据,访问速度快.B+树优势:1. ...