|
|
本帖最后由 exity 于 2022-6-13 20:57 编辑
最近要做一批分子中的自旋密度的剖面图,写了个脚本,bash运行后输入3个原子编号来定义平面就可以,默认输出是pdf,经常需要改的参数都变量化了。
其他的参数在脚本上自己改就好,基本都进行了注释。
spin_dens_contourline3atoms.sh
(4.97 KB, 下载次数 Times of downloads: 5)
#!/bin/bash
#正等值线样式定义
pls="1,0" #正等值线线形
plw=8 #正等值线宽度
plc=4 #正等值线颜色
#负等值线样式定义
nls="10,30" #负等值线线形
nlw=8 #负等值线宽度
nlc=4 #负等值线颜色
ruler="0.5 0.5 0.01" #X Y COLOR BAR刻度间距
enablelabel=1 #是否启用等值线上标签0=关闭 1=启用
isovaluelabel=60 #等值线上标签高度
atomcolor=1 #原子颜色,定义见下述注释部分
bondcolor=5 #化学键颜色,定义见下述注释部分
echo pleas enter atom NUMBER for plane define...
echo You should type as \"1 2 3\" or \"1,2,3\". \"321\" is not acceptable. Quotes should ***NOT*** be included.
read atomlist
# 1 = Red 2 = Green
# 3 = Blue 4 = White
# 5 = Black 6 = Gray
# 7 = Cyan 8 = Yellow
# 9 = Orange 10 = Magenta
# 11 = Crimson 12 = Dark green
# 13 = Purple 14 = Brown
# 15 = Dark blue 16 = Pink
echo 4 >> tmp.mf #进入平面图绘制
echo 5 >> tmp.mf #绘制自旋密度
echo 1 >> tmp.mf #图形类型为带等值线的填色图
echo 200,200 >> tmp.mf #格点为200*200
echo 0 >> tmp.mf #以目标分子为基准的延展距离
echo 1 >> tmp.mf #延展距离为指定值
echo 4 >> tmp.mf #以三个原子定义一个平面
echo $atomlist >> tmp.mf #原子序号
echo 1 >> tmp.mf #修改填色图的填色范围
echo -0.01,0.10 >> tmp.mf #填色范围修改为此值
echo 4 >> tmp.mf #show atom label
echo $atomcolor >> tmp.mf #for colors
echo 8 >> tmp.mf #show bond
echo $bondcolor >> tmp.mf #for colors
echo -3 >> tmp.mf #进一步修改图形设置
echo 10 >> tmp.mf #修改出图格式
echo 7 >> tmp.mf #修改出图格式为pdf
echo 0 >> tmp.mf #返回
echo 2 >> tmp.mf #启动等值线
if (( $enablelabel == 1 )); then
echo -3 >> tmp.mf #进一步修改图形设置
echo 12 >> tmp.mf #开启等值线上的isovalue
echo $isovaluelabel >> tmp.mf #isovalue数字高度为指定值
echo 0 >> tmp.mf #返回
fi
echo 3 >> tmp.mf #进一步修改等值线设置
echo 4 >> tmp.mf #准备删除所有等值线
echo >> tmp.mf #直接回车会删除所有等值线
echo 3 >> tmp.mf #增加某条等值线
echo 0.005 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo 0.01 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo 0.02 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo 0.03 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo 0.04 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo 0.05 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo 0.10 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo -0.001 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo -0.002 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo -0.004 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo -0.01 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo -0.03 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo -0.05 >> tmp.mf #增加对应的等值线
echo 3 >> tmp.mf #增加某条等值线
echo -0.10 >> tmp.mf #增加对应的等值线
echo 11 >> tmp.mf #正等值线颜色
echo $plc >> tmp.mf #白色
echo 13 >> tmp.mf #负等值线颜色
echo $nlc >> tmp.mf #白色
echo 12 >> tmp.mf #设置正值的线形线宽
echo $pls >> tmp.mf #实线
echo $plw >> tmp.mf #线宽改为指定值
echo 14 >> tmp.mf #设置负值的线形线宽
echo $nls >> tmp.mf #虚线
echo $nlw >> tmp.mf #线宽改为指定值
echo 1 >> tmp.mf #返回
echo -8 >> tmp.mf #单位改为angstrom
echo -2 >> tmp.mf #修改xy和色卡坐标间距
echo $ruler >> tmp.mf #修改xy和色卡坐标间距为该值
echo 0 >> tmp.mf #输出图形
echo q >> tmp.mf #优雅的退出multiwfn
icc=0
nfile=`ls ./*.fchk|wc -l`
for inf in *.fchk
do
((icc++))
echo Running ${inf} ... \($icc of $nfile\)
time Multiwfn ${inf} < tmp.mf
mv dislin.pdf ${inf//.fchk}_spdens.pdf
echo ${inf} is finished
echo
done
rm tmp.mf
|
评分 Rate
-
查看全部评分 View all ratings
|