Skip to content

okihane/CommonNeighborAnalysis-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CommonNeighborAnalysis-Python

CommonNeighborAnalysis core algorithm written in python

1. 使用方法:

  1. 准备一个data文件,不需要太大,几百个原子就够了。从data文件里面找一个原子,最好从盒子的中心处取,待会要查找这个原子的邻居等参数,记录一下原子在data文件第几行。
  2. 主程序1.1.py,需要在choose函数修改几个参数,第一个是要读取的data文件名第二个是邻居个数,一般是12或者14,对应到程序里填13或者15(因为我程序写的不是太完美,需要把邻居数+1才能正常运行,实际还是按照12或14个邻居计算的),第三个参数是cline,就是要计算的原子在data文件的第几行,需要手动减去1,因为python读取的时候第一行的下标是0。还有一个参数是type,因为choose函数定义了好几种类型,type需要指定其中一种。
  3. 运行python 1.1.py

下面运行是通过该脚本的输出来获取的识别参数的是示例:

  1. 下图是一个fcc原子的识别结果,输出的内容有三行,分别代表i,j,k三个数,每一行有12个数,就是邻居的个数,每一个邻居原子的(i,j,k)三个参数都是(4,2,1)

image

  1. 这个是我用到的A15结构中Nb原子的输出结果,用到了14个邻居原子,可以看到他有2个邻居原子的(i,j,k)是(6,6,6),有12个邻居原子的(i,j,k)是(5,5,5).

image 注:这个程序只是用来测试cna所需要的(i,j,k)三个参数,最终是要借助ovito识别,后面还需要去修改ovito的源码,cna的adaptive部分,加几个判断条件。

2. ovito源码的修改:

目录:src\ovito\particles\modifier\analysis\cna

.h文件(头文件)里修改一处

image

.cpp文件里再修改几处,这里需要根据自己的情况进行修改。

image image image

3. 结果展示:

原版

image 修改版

image

引用:

Zhu, B., Xiao, G., Yang, L., Liu, L., & Qiao, L. Insights on grain boundary effects on crack formation and propagation in Nb3Sn coatings at low temperature and high strain rates: A molecular dynamics simulation study[J]. Superconductor Science and Technology, 2023. http://iopscience.iop.org/article/10.1088/1361-6668/ad06c5

About

CommonNeighborAnalysis core algorithm written in python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages