Autoopt (for ORCA)
如果opt遇到虚频则调用orca_pltvib向虚频方向调整结构,然后继续opt,直到没有虚频
也可以使用ORCA的Compound Methods实现,见手册9.47 (ORCA 5.0.3) 我试了半天一直报错
食用方法: 更改orca_path
,将opt,freq任务的ORCA输入文件命名为1.inp
如果遇到虚频将会创建2.inp继续优化
封面为直线$D_{ih}$ F3$^{+}$在B3LYP/def2-TZVP下优化
1.inp $\to$ 2.inp $\to$ 3.inp
$D_{ih} \to C_{ih} \to C_{2v}$
可视化使用VSCode插件Protein Viewer (mol*的VSCode版)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| n=2
orca_path=/home/usu171/downloads/orca_5_0_4
i=1 while true do
$orca_path/orca $i.inp |tee $i.out
a=$(grep "\*\*\*imaginary mode\*\*\*" $i.out | head -1 | awk '{sub(/:/, "");print $1}') if [ -n "$a" ]; then $orca_path/orca_pltvib $i.hess $a
xyzfilename=$i.hess.v00$a.xyz
number=$(awk '{print $1}' $xyzfilename | head -1)
startline=$((3 + ( $n - 1 )*( $number + 2 ))) endline=$((startline + number - 1))
sed -n "${startline},${endline-1}p" $xyzfilename | awk '{print $1,$2,$3,$4}' > temp.txt
j=$((i+1)) cp $i.inp $j.inp
new_startline=$(grep -nE '\*\s+xyz' $i.inp | head -1 | awk -F : '{print $1}') new_endline=$((new_startline + number)) new_startline=$((new_startline + 1))
sed -i -e "${new_startline}r temp.txt" -e "${new_startline},${new_endline}d" $j.inp
rm temp.txt i=$((i+1)) else break fi
done
|
F3$^{+}$输入文件
1 2 3 4 5 6 7 8
| ! B3LYP D3 def2-TZVP def2/J RIJCOSX opt freq tightSCF noautostart miniprint nopop %maxcore 1000 %pal nprocs 8 end * xyz 1 1 F 1.4 0 0 F 0 0 0 F -1.4 0 0 *
|