Post

Study note:使用VMD和Multiwfn绘制图像

Study note:使用VMD和Multiwfn绘制图像

Multiwfn分析功能十分强大,但没有内置渲染功能,且分子不能拖动总觉得差点意思。不过Sobereva老师写了不少结合VMD绘制高质量图像的方法,很大程度弥补了这一缺陷。本文以hole-electron分析为例,记录高度脚本化的Multiwfn+VMD绘制电子-空穴图像的方法。

1. Multiwfn处理

进行空穴分析的命令是:

1
Multiwfn name.fchk < ~/scrpts/wfntxts/hole.txt > output.log

也可以使用脚本wfn.py:

1
py wfn -t ~/scrpts/wfntxts/hole.txt

脚本启动后,选择fchk文件。运行结束后,会在运行目录下输出hole.cubelectron.cub。 如果想要一次性绘制第一、第二、第三激发态的图像,可以使用hole123.txt:

1
py wfn -t ~/scrpts/wfntxts/hole123.txt

此时运行目录下输出的文件为hole_00001.cubhole_00002.cubhole_00003.cubelectron_00001.cubelectron_00002.cubelectron_00003.cub

2. VMD可视化

参考在VMD里将cube文件瞬间绘制成效果极佳的等值面图的方法,首先将showcub.vmd复制到VMD目录下,输入

1
source showcub.vmd

然后将hole.cub和electron.cub复制到VMD文件夹内,输入

1
2
cub2 electron hole
cub2iso 0.001

即可可视化电子与空穴。但若是要绘制三个激发态的图像,手动输入hole_00001等文件名仍觉繁琐,因此写了新的tcl脚本:

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
proc hole {suffix {filename "hole_electron"}} {
    # 检查输入的 suffix 是否为空或为 "r"
    if {$suffix eq ""} {
        # 默认情况下运行 cub2 electron hole 0.001
        puts "Running: cub2 electron hole 0.001"
        
        # 执行 cub2 命令
        cub2 electron hole 0.001
    } elseif {$suffix eq "r"} {
        # 如果 suffix 为 "r",运行渲染命令,将 .tga 添加到 filename 中
        set output_file "${filename}.tga"
        
        puts "Running: render TachyonInternal $output_file"
        
        # 执行渲染命令
        render TachyonInternal $output_file
    } else {
        # 如果提供了其他的 suffix,在文件名中加入该后缀
        set electron_file "electron_0000$suffix"
        set hole_file "hole_0000$suffix"
        
        puts "Running: cub2 $electron_file $hole_file 0.001"
        
        # 执行带有后缀的 cub2 命令
        cub2 $electron_file $hole_file 0.001
    }
}

将该脚本保存为hole.tcl,输入source hole.tcl,即可使用hole命令。hole命令可以不带参数启动,此时读取的是hole.cub和electron.cub。若运行时提供参数,如hole 1,则读取hole_00001.cubelectron_00001.cub

3. 渲染

可以使用命令进行渲染:

1
render TachyonInternal hole_electron.tga

只要将output_image.tga替换为输出文件名即可。hole命令也定义了渲染模式,输入hole r触发,默认文件名为hole_electron.tga。如果提供第二个参数,则使用第二个参数作为文件名,如hole r pyronine会将文件保存为pyronine.tga。

This post is licensed under CC BY 4.0 by the author.