最近写的一些全自动处理脚本
最近写了一个扩胞全自动的脚本,使用Fortran编写,挂上来以防哪天丢了。
第1个是一个扩胞的脚本,支持的是POSCAR格式。下载链接:GitHub - whitecrn/crystal_enlarge文件中的原子支持前111号原子自动识别(包括第111号原子);7种晶系全都支持;分数坐标和绝对坐标会自动识别。单个结构中除了不要出现112号以后的元素以外,没什么大的限制。但是,文件中不能出现原子电荷信息!!!!比如Li+、F-这种。
使用方法:需要有gnu库的支持。将文件与需要扩胞的文件放在同一目录下。使用:
1 | chmod +x crystal_enlarge |
然后再使用命令:
1 | ./crystal_enlarge (x方向扩胞倍数) (y方向扩胞倍数) (z方向扩胞倍数) (需要扩胞的POSCAR文件名) (扩胞后输出的文件名) |
举个例子:
1 | ./crystal_enlarge 2 3 4 POSCAR POSCAR-ENLARGE |
上述代码就是将POSCAR文件进行扩胞操作,在x方向上×2 , y方向上×3,z方向上×4,并且将扩胞的结果输出到POSCAR-ENLARGE里面。
经过本人测试,从material project上随意下了几个三斜和单斜的晶胞,扩胞出来的结果都没有问题,略略略略略略!!!有技术问题或者要源代码可以想办法联系我~~0.0~
哦对了,如果有需要转换以后的POSCAR格式文件转换成lammps文件的格式。可以参考我之前的一个poscar2data的文件脚本。所支持的体系也和上面的类似,不支持电荷信息,支持前111号原子的自动识别(包括111)转换。参考链接:VASP的POSCAR格式转换lammps格式脚本 | 蜡笔的blog。关于库的支持,在poscar2data这个网页里面有很详细的讲解。
下面举一些例子(随便在material project上找的结构)。和vesta软件扩出来的完全没有区别,但可以进行超大规模扩胞(windows下的vesta扩太大直接会变得很卡),以及命令行批量操作。 不过批量使用之前,最好先用vesta扩一个胞,经过对比无误后再进行大规模扩胞(手动保命)。
我扩的三斜(mp-1176991, Li6MnSb3(PO4)6):

vesta扩的三斜(mp-1176991):

我扩的单斜(mp-705035, Mo(PO3)4):

vesta扩的单斜:

我扩的六方(mp-1227397, BiPt2Pb):

vesta扩的六方:

我扩的三方(mp-1227397, CsGeCl3):

vesta扩的三方:

我扩的正交(mp-1227397, LiFe7O7F):

vesta扩的正交:
