判斷氫原子非零躍遷矩陣元的代碼
上一個(gè)代碼的補(bǔ)充(似乎發(fā)不了評(píng)論區(qū))
通過(guò)數(shù)值計(jì)算與電偶極、磁偶極、電四極算子有相同表示的算子(如x、yz、Ly(或按照化學(xué)書(shū)籍常用的寫(xiě)法 Ry)等)的矩陣元,查找非零的躍遷矩陣元。
考慮了E1、E2、M1躍遷,沒(méi)有考慮自旋等因素。
Dim?= Num^3; % 維數(shù)
dx = 2*L/(Num-1); % 格點(diǎn)間隔
NormalL = 1/(dx)^3
% 位矢算子
x1 = spdiags(reshape(X,[Dim,1]),0,Dim,Dim);
y1 = spdiags(reshape(Y,[Dim,1]),0,Dim,Dim);
z1 = spdiags(reshape(Z,[Dim,1]),0,Dim,Dim);
% 微分算子和軌道角動(dòng)量算子
e = ones(Num,1);
Dif1 = spdiags([-e 0*e e],[-1 0 1],Num,Num)/(2*dx);
I1 = speye(Num,Num);
PDx = kron(kron(I1,Dif1),I1);
PDy = kron(kron(I1,I1),Dif1);
PDz = kron(kron(Dif1,I1),I1);
Lz = -1i*(x1*PDy-y1*PDx);
Ly = -1i*(z1*PDx-x1*PDz);
Lx = -1i*(y1*PDz-z1*PDy);
% 態(tài)矢量
psi01=reshape(psi1,[Dim,1]);
psi02=reshape(psi2,[Dim,1]);
%檢驗(yàn)歸一化(波函數(shù)顯著非零的區(qū)域可能因?yàn)椤败壍腊霃健北容^大而超出邊界,造成區(qū)域內(nèi)的總概率明顯小于1)
psi01*psi01/NormalL
psi02*psi02/NormalL
% 電偶極檢驗(yàn)
psi01*x1*psi02/NormalL
psi01*y1*psi02/NormalL
psi01*z1*psi02/NormalL
% 磁偶極檢驗(yàn)
psi01*Lx*psi02/NormalL
psi01*Ly*psi02/NormalL
psi01*Lz*psi02/NormalL
% 電四極檢驗(yàn)
psi01*x1*y1*psi02/NormalL
psi01*y1*z1*psi02/NormalL
psi01*x1*z1*psi02/NormalL
psi01*x1*x1*psi02/NormalL
psi01*y1*y1*psi02/NormalL
psi01*z1*z1*psi02/NormalL
% 特別小的數(shù)(比如10^-15量級(jí))可以當(dāng)做0