CommonNeighborAnalysis core algorithm written in python
- 准备一个data文件,不需要太大,几百个原子就够了。从data文件里面找一个原子,最好从盒子的中心处取,待会要查找这个原子的邻居等参数,记录一下原子在data文件第几行。
- 主程序
1.1.py
,需要在choose函数修改几个参数,第一个是要读取的data文件名,第二个是邻居个数,一般是12或者14,对应到程序里填13或者15(因为我程序写的不是太完美,需要把邻居数+1才能正常运行,实际还是按照12或14个邻居计算的),第三个参数是cline,就是要计算的原子在data文件的第几行,需要手动减去1,因为python读取的时候第一行的下标是0。还有一个参数是type,因为choose函数定义了好几种类型,type需要指定其中一种。 - 运行
python 1.1.py
下面运行是通过该脚本的输出来获取的识别参数的是示例:
- 下图是一个fcc原子的识别结果,输出的内容有三行,分别代表i,j,k三个数,每一行有12个数,就是邻居的个数,每一个邻居原子的(i,j,k)三个参数都是(4,2,1)
- 这个是我用到的A15结构中Nb原子的输出结果,用到了14个邻居原子,可以看到他有2个邻居原子的(i,j,k)是(6,6,6),有12个邻居原子的(i,j,k)是(5,5,5).
注:这个程序只是用来测试cna所需要的(i,j,k)三个参数,最终是要借助ovito识别,后面还需要去修改ovito的源码,cna的adaptive部分,加几个判断条件。
目录:src\ovito\particles\modifier\analysis\cna
.h文件(头文件)里修改一处
.cpp文件里再修改几处,这里需要根据自己的情况进行修改。
原版
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