讓體系(躍遷)偶極矩平行于某個笛卡爾軸的方法
后記:此文用VMD的做法已經沒有意義了,用Multiwfn來實現方便得多!仔細看《Multiwfn中非常實用的幾何操作和坐標變換功能介紹》(http://www.shanxitv.org/610)中的介紹,特別是2.6節的例子。
讓體系(躍遷)偶極矩平行于某個笛卡爾軸的方法
文/Sobereva@北京科音 2019-Aug-24
1 前言
有時需要讓分子的偶極矩、躍遷偶極矩(或者其它什么矢量)平行于某個笛卡爾坐標軸,這等價于令分子進行旋轉。這有一些實際用途,例如:
(1)在《使用Multiwfn分析Gaussian的極化率、超極化率的輸出》(http://www.shanxitv.org/231)里提到了第一超極化率(beta)順著體系偶極矩的分量是可以通過EFISHG實驗來確定的,這個量也是經常被討論的。beta可以基于不同電場下計算的極化率(alpha)通過有限差分方法來計算。讓體系偶極矩平行于某個笛卡爾坐標軸之后,beta在偶極矩方向的分量就可以通過在相應笛卡爾軸方向上加不同電場時得到的alpha來計算了。
(2)在《使用Multiwfn計算(超)極化率密度》(http://www.shanxitv.org/305)中提到beta可以通過超極化率密度的方式考察空間不同位置對beta的貢獻,這需要對不同電場下產生的電子密度做有限差分計算。如果先讓偶極矩方向順著某個笛卡爾軸,那么在計算偶極矩方向的超極化率密度時,加電場時寫起來就省事多了(比如Gaussian里只需要用諸如field=z+50這種關鍵詞而不需要用field=read讀取外電場矢量)。
(3)在《使用Multiwfn繪制躍遷密度矩陣和電荷轉移矩陣考察電子激發特征》(http://www.shanxitv.org/436)中,筆者介紹了如何利用躍遷電偶極矩密度以及躍遷電偶極矩矩陣對決定兩個電子態之間的概率大小的躍遷電偶極矩的本質進行討論,而在Multiwfn里只能對躍遷偶極矩的X、Y、Z分量進行相應的考察。顯然對大多數體系,躍遷電偶極矩不是恰好平行于某個笛卡爾軸的,此時就得先讓躍遷電偶極矩平行于某個笛卡爾軸,之后才能用Multiwfn對其內在特征進行分析。
2 方法
讓體系的某個矢量順著笛卡爾軸最簡單的做法是借助VMD提供的命令。VMD可以在http://www.ks.uiuc.edu/Research/vmd/免費下載。
將體系的結構文件(如.pdb、.xyz、.mol2)載入VMD后,如果這個體系的某個矢量是(-1.8916 0.7861 0.0),輸入以下命令就可以令這個矢量沖著X軸的正方向。
set sel [atomselect top all]
$sel move [transvecinv "-1.8916 0.7861 0"]
如果要沖著Z軸正方向,接著輸入
$sel move [transaxis y -90]
如果要沖著Y軸正方向,則在$sel move [transvecinv...那條命令運行后輸入
$sel move [transaxis z 90]
3 例子
例如,使用Gaussian計算甲胺輸出的偶極矩信息是
X= -1.2918 Y= 0.4031 Z= 0.0000 Tot= 1.3532
若想讓偶極矩沖著Z軸正方向,就把輸出文件載入GaussView,保存為pdb格式,再載入VMD,然后在VMD的命令行窗口將以下內容粘進去運行
set sel [atomselect top all]
$sel move [transvecinv "-1.2918 0.4031 0"]
$sel move [transaxis y -90]
之后用VMD的File - Save coordinates,將當前結構保存為.xyz格式文件,然后把里面的坐標拷到gjf文件里,用原先級別再做一次單點計算任務,并且同時寫上nosymm關鍵詞避免分子朝向被自動旋轉到標準朝向(詳見《談談Gaussian中的對稱性與nosymm關鍵詞的使用》http://www.shanxitv.org/297)。從如下輸出的偶極矩信息可見,確實此時偶極矩已經完全沖著Z方向了
X= 0.0000 Y= -0.0007 Z= 1.3532 Tot= 1.3532
由上也可看到Y分量不精確為0,這是因為pdb格式保存的坐標只保留小數點后三位。如果先用GaussView保存成gjf格式,再手動修改成.xyz格式并載入VMD,則可以令坐標保持高精度。
順帶一提,如果你是希望讓某個鍵平行于笛卡爾坐標軸,參看《讓指定化學鍵平行于笛卡爾坐標軸的方法》(http://www.shanxitv.org/177)。