|
现在仅有的式子就是X'=TX; 这里X'是新坐标,X是原坐标,其实T就是坐标旋转矩阵。回到最初的问题,我想用找到一个计算方式 看一下Gaussian是如何实现坐标变换的,也就是说在不同坐标系下相同的物理量比如说电偶极矩,或是电偶极矩导数以及polarizability 和polarizability derivative是如何变换的。我们可以用输入文件计算出比如说HF分子,F在坐标原点,H分子在 (0., 0., 0.92223200)上面电偶极矩导数以及polarizability 和polarizability derivative大小,然后计算一下H分子在(0. , 0.3 , 0.8720733121842452)时上面的几个量,最后比较一下。现在我们只是对坐标进行了旋转,但发现物理量变化很大,关键问题是他们的变化原因是什么,我们能不能通过坐标变换的方法将另外的物理量得到。
hf.gjf (H((0. , 0.3 , 0.8720733121842452)))
%mem=60MB
%nproc=1
# opt=(calcall,tight) freq=raman rb3lyp/6-311++g(d,p) nosymm
Title Card Required
0 1
F 0 0. 0. 0.
H 0 0. 0.3 0.8720733121842452
——————————————————————————
hf1.gjf (H(0., 0., 0.92223200))
%mem=60MB
%nproc=1
# opt=(calcall,tight) freq=raman rb3lyp/6-311++g(d,p) nosymm
Title Card Required
0 1
F 0 0. 0. 0.
H 0 0. 0. 0.92223200
经过这两种计算Gaussian09尾部输出的量
hf.gjf Dipole=0.,0.2536332,0.7372883 u'
hf1.gjf Dipole=0.,0.,0.7796945 u
这两个Dipole是完全可以通过 u'=T.u得到且误差很小。
但下面的 DipoleDeriv实现起来较困难。
du'/dX'=du'/du.du/dX.dX/dX'=T.du/dX.T^-1
如果这么算的话求出的hf.gjf的DipoleDeriv与hf1.gjf的DipoleDeriv前五位有效数字是一致的。
下面的问题就是polarizability所涉及的alpha了
\alpha’= T.\alpha.T^(-1)
这样求出的alpha’也挺好.
但是d\alpha’/dX’就不知道如何下手了?,\alpha’是3x3矩阵,x‘是3x1矩阵他的结果是3x9矩阵,PolarDeriv输出了一部分东西。如果用
d\alpha’/dX’= T.d\alpha/dX.T^(-1)
这个是不成立的因为前半部分T.(d\alpha/dx)是3x9矩阵,无法和后面的T^(-1)相乘。
|
|