计算化学公社

标题: 分享一段通过Multiwfn将目录下cif转为POSCAR的小代码 [打印本页]

作者
Author:
zmjsce    时间: 2022-9-22 18:58
标题: 分享一段通过Multiwfn将目录下cif转为POSCAR的小代码
本帖最后由 zmjsce 于 2022-9-22 19:01 编辑

以前一直用VESTA转格式,最近发现Multiwfn可以很方便的将CIF转为POSCAR,基于这个功能写了一点内容与各位老师同学分享。

ls l grep *cif > cif2POSCAR_new

echo '100
2
27
POSCAR
0
q' >> cif2POSCAR_new

Multiwfn < cif2POSCAR_new

rm cif2POSCAR_new


作者
Author:
zmjsce    时间: 2022-9-22 19:05
希望大家可以分享一下自己提高文件处理效率的代码或者工具~
作者
Author:
七尺贱    时间: 2022-9-22 19:46
  1. #Convert geometry (final, input orientation) in all Gaussian .out files in current folder to .gjf file by Multiwfn
  2. #!/bin/bash
  3. icc=0
  4. nfile=`ls *.mol|wc -l`
  5. for inf in *.mol
  6. do
  7. ((icc++))
  8. echo Converting ${inf} to ${inf//mol/gjf} ... \($icc of $nfile\)
  9. Multiwfn ${inf} << EOF > /dev/null
  10. 100
  11. 2
  12. 10
  13. ${inf//mol/gjf}
  14. 0
  15. q
  16. EOF
  17. mv ${inf//mol/gjf} /home/hipeson/Multiwfn_3.8_dev_bin_Linux/parallel/gjf
  18. done
  19. #将mol转换为gjf
复制代码

作者
Author:
七尺贱    时间: 2022-9-22 19:47
本帖最后由 七尺贱 于 2022-9-22 19:49 编辑

也可以自己根据卢老师写的脚本再自行修改,然后可以利用这个小脚本修改关键词,方便Gaussian计算。Multiwfn转换成gjf之后默认的只有B3LYP/6-31G*,如果一个一个改也挺麻烦的。第一行和第二行命令就是在当前的gjf文件的第一行,第二行中添加核数和计算使用的内存
第三行命令是将B3LYP/6-31G*替换为我计算所需要的命令:opt  M062X/6-31g(d) empiricaldispersion=gd3 。大家可自行更换,
  1. #!/bin/bash
  2. sed -i '1i %nprocshared=30' *.gjf
  3. sed -i '2i %mem=20GB' *.gjf
  4. sed -i "s/B3LYP\/6-31G\*/opt m062x\/6-31g(d) empiricaldispersion=gd3/g" `grep 'B3LYP/6-31G*' -l *|grep .gjf`
复制代码


作者
Author:
sobereva    时间: 2022-9-22 23:29
七尺贱 发表于 2022-9-22 19:47
也可以自己根据卢老师写的脚本再自行修改,然后可以利用这个小脚本修改关键词,方便Gaussian计算。Multiwfn ...

关于“Multiwfn转换成gjf之后默认的只有B3LYP/6-31G*”,可以自己在当前目录下放一个template.gjf模板文件,产生的gjf文件会套用里面的坐标以外的部分,下文说了
一键把所有gjf文件转成xyz文件、把所有Gaussian输出文件转成gjf文件的脚本
http://sobereva.com/530http://bbs.keinsci.com/thread-16161-1-1.html
作者
Author:
七尺贱    时间: 2022-9-23 11:27
sobereva 发表于 2022-9-22 23:29
关于“Multiwfn转换成gjf之后默认的只有B3LYP/6-31G*”,可以自己在当前目录下放一个template.gjf模板文 ...

这样啊,我之前看的时候还是没有的,学到了
作者
Author:
zmjsce    时间: 2023-1-9 00:55
本帖最后由 zmjsce 于 2023-1-9 00:57 编辑

最近写了一小段cif文件转为CP2K所需坐标文件coord.inc的小代码~该工具需已安装vaspkit以及Multiwfn

#/bin/bash
#cat fix.sh

ls | grep *cif > cif2POSCAR_new
#Creat cif2POSCAR_new based on the cif filename
echo '100
2
27
POSCAR
0
q' >> cif2POSCAR_new

Multiwfn < cif2POSCAR_new

rm cif2POSCAR_new

(echo 4; echo 411; echo 1)|vaspkit

cp POSCAR_REV POSCAR

rm POSCAR_REV

echo 'POSCAR
cp2k
POSCAR.inp
0
q' >>POSCAR2inp
Multiwfn < POSCAR2inp

rm POSCAR2inp

###############################################
####inp2COORD.inc#################
grep -rn COORD POSCAR.inp > temp

head -n 1 temp > temp1
tail -n 1 temp > temp2

cat temp1 | tr -cd "[0-9]" >temp3
cat temp2 | tr -cd "[0-9]" >temp4

a=$(cat temp3)
b=$(cat temp4)
c=$(($a+1))
d=$(($b-1))

sed -n ''"$c"','"$d"'p' POSCAR.inp > COORD.inc
rm temp temp1 temp2 temp3 temp4






欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3