非相対論的な水素様原子の電子の波動関数を求めるfortranコードを書きます。
解く問題
電荷\(+Ze\)の原子核の周りに存在する、電荷\(-e\)を持つ電子が満たす時間依存しないシュレーディンガー方程式は、
\(
\displaystyle \left[-\frac{1}{2}\Delta-\frac{Z}{r}\right]\psi({\bf r})=E\psi({\bf r})
\)
です。
\(
\left. \psi({\bf r})\right|_{|{\bf r}|\to \infty}\to 0
\)
の境界条件を満たす正規直交化された解は、
\(
\begin{align}
\psi({\bf r})&=R_{n,l}(r)\cdot Y_{l,m}(\theta,\varphi)\\
&=\sqrt{\left(\frac{2}{n}\right)^3\frac{(n-l-1)!}{2n[(n+l)!]}} e^{-Zr/n} \cdot \left(2\frac{Zr}{n}\right)^l\cdot L_{n-l-1}^{(2l+1)}\left(2\frac{Zr}{n}\right)\cdot Y_{l,m}(\theta,\varphi)
\end{align}
\)
と表されます。ここで、
- \(n,l,m\) 主量子数,方位量子数,磁気量子数
- \(r,\theta,\varphi\) 動径方向,z軸方向の角度,xy平面の角度
- \(L_n^{(\alpha)}(x)\) ラゲール陪多項式[1]
- \(Y_{l,m}(\theta,\varphi)\) 球面調和関数[2]
を意味します。
動径関数\(R_{n,l}(r)\)は微分方程式
\(
\displaystyle \left[-\frac{1}{2}\left(\frac{d^2}{dr^2}+\frac{2}{r}\frac{d}{dr}\right)+\frac{l(l+1)}{2r^2}-\frac{Z}{r}\right]R_{n,l}(r)=E_n R_{n,l}(r)
\)
を満たす正規直交化された関数で、固有値は
\(
\displaystyle E_n=-\frac{1}{2n^2}
\)
です。
波動関数を出力するFortranコードはこれ。
計算結果
3次元の波動関数を表示するには3つの座標と波動関数の値の計4つが必要です。
しかし、4次元空間を分かりやすく描画する方法はありません。
そこで、ここでは\(\mathrm{Re}{\psi(x,0,z,t)}\)のように、\(y=0\)にしてグラフを描画します。
\(z\)軸周りの構造がうまく表現できませんが、良しとします。
”color”と書いてあるのは、波動関数の形がはっきり映るようにカラーバーの範囲を調整したものです。
なので、色が飽和しているところはそのカラーバーの範囲で表現することはできない領域です。
\(n=20\)まで同じような画像を作ったのですが、画像の容量が大きくなりすぎました。
なので、見たい方は以下のリンクから元ファイルをダウンロードしてください。
\(n=1\) Hatomc_n1.png(48KB)
\(n=2\) Hatomc_n2.png(223KB)
\(n=3\) Hatomc_n3.png(612KB)
\(n=4\) Hatomc_n4.png(1MB)
\(n=5\) Hatomc_n5.png(2MB)
\(n=6\) Hatomc_n6.png(3MB)
\(n=7\) Hatomc_n7.png(4MB)
\(n=8\) Hatomc_n8.png(3MB)
\(n=9\) Hatomc_n9.png(6MB)
\(n=10\) Hatomc_n10.png(6MB)
\(n=11\) Hatomc_n11.png(9MB)
\(n=12\) Hatomc_n12.png(9MB)
\(n=13\) Hatomc_n13.png(10MB)
\(n=14\) Hatomc_n14.png(14MB)
\(n=15\) Hatomc_n15.png(15MB)
\(n=16\) Hatomc_n16.png(16MB)
\(n=17\) Hatomc_n17.png(18MB)
\(n=18\) Hatomc_n18.png(19MB)
\(n=19\) Hatomc_n19.png(21MB)
\(n=20\) Hatomc_n20.png(21MB)
n=1~n=20までのファイル hatom.zip(164MB)
例えば、n=13, n=20はこんな感じです(荒くしてます)。
特殊関数に関するプログラミングは特殊関数へ。
How to plot in gnuplot?
Just for note for myself.
You need 2 files which named : multi.plt and atommulti.plt
Before ploting, you must make directory “dat” and move every data files to “dat”.
and in gnuplot, type
then, you can get figure.
multi.plt
atommulti.plt
参考
[1]ラゲール陪多項式\(L_m^{(\alpha)}(x)\)
-
定義域
\(\;\;\;\;
0 \lt x \lt \infty
\) -
微分方程式
\(\;\;\;\;
\displaystyle
\left[x\frac{d^2}{dx^2}+(\alpha+1-x)\frac{d}{dx}+n\right]L_m^{(\alpha)}(x)=0
\) -
具体例
\(\;\;\;\;
\begin{align}
& L^{(0)}_0(x)=1 \\
& L^{(0)}_1(x)=-x+1 \\
& L^{(0)}_2(x)=\frac{1}{2}(x^2-4x+2) \\
& L^{(0)}_3(x)=\frac{1}{6}(-x^3+9x^2-18x+6) \\
& L^{(1)}_0(x)=1 \\
& L^{(1)}_1(x)=-x+2 \\
& L^{(1)}_2(x)=\frac{1}{2}\left(x^2-6x+6\right) \\
& L^{(1)}_3(x)=\frac{1}{6}\left(-x^3+12x^2-36x+24\right)
\end{align}
\) -
漸化式
\(\;\;\;\;
\begin{align}
L_n^{(\alpha)}(x)&=\binom{n+\alpha}{n}a_0(x) \\
&\hspace{1em}a_{m-1}(x)=1-\frac{n-m+1}{m(\alpha+m)}\cdot x\cdot a_m(x) \\
&\hspace{5em}(m=n,n-1,n-2,\cdots,1,\;\;a_n(x)=1)
\end{align}
\)
[3]
1階微分
\(\;\;\;\;
\begin{align}
\frac{d}{dx}L_n^{(\alpha)}(x)=-L_{n-1}^{(\alpha+1)}(x)
\end{align}
\)
2階微分
\(\;\;\;\;
\begin{align}
\frac{d^2}{dx^2}L_n^{(\alpha)}(x)=L_{n-2}^{(\alpha+2)}(x)
\end{align}
\) -
直交性
\(\;\;\;\;
\displaystyle
\int_{0}^{\infty} e^{-x}x^{\alpha}L^{(\alpha)}_n(x)L^{(\alpha)}_{n’}(x) dx =\frac{\Gamma(\alpha+n+1)}{n!}\delta_{n,n’},\;\;(\alpha>-1)
\)
[2]球面調和関数\(Y_{l,m}(\theta,\varphi)\)
ルジャンドル多項式(\(P_l^m(x)\),[3])を用いて
\(
Y_{l,m}(\theta,\varphi)=(-1)^{(m+|m|)/2}\sqrt{\frac{2l+1}{4\pi}\frac{(l-|m|)!}{(l+|m|)!}}P_l^{|m|}(\cos\theta)e^{im\phi}
\)
[3]ルジャンドル陪多項式\(P_l^m(x)\)
-
定義域
\(\;\;\;\;
1 \lt x \lt -1
\) -
微分方程式
\(\;\;\;\;
\displaystyle (1-x^2)\frac{d^2}{dx^2}P_l^m(x)-2x\frac{d}{dx}P_l^m(x)+\left[l(l+1)-\frac{m^2}{1-x^2}\right]P_l^m(x)=0
\) -
具体例
\(\;\;\;\;
\begin{align}
& P_0^0(x)=1 \\
& P_{1}^{-1}(x)=\frac{1}{2}(1-x^2)^{1/2} \\
& P_{1}^{0}(x)=x \\
& P_{1}^{1}(x)=-(1-x^2)^{1/2} \\
& P_{2}^{-2}(x)=\frac{1}{8}(1-x^2) \\
& P_{2}^{-1}(x)=\frac{1}{2}x(1-x^2)^{1/2} \\
& P_{2}^{0}(x)=\frac{1}{2}(3x^2-1) \\
& P_{2}^{1}(x)=-3(1-x^2)^{1/2} \\
& P_{2}^{2}(x)=3(1-x^2)
\end{align}
\) -
漸化式
用いている式
\(\;\;\;\;
\begin{align}
& P_{|m|}^{|m|}(x)=(-1)^{|m|}(2|m|-1)!!(1-x^2)^{\frac{|m|}{2}} \\
& P_{l}^{-m}(x)=(-1)^m\frac{(l-m)!}{(l+m)!}P_l^m(x) \\
& P_{|m|}^{|m|+1}(x)=(2|m|+1)xP_{|m|}^{|m|}(x) \\
& P_{|m|}^{|m|+q}(x)=\left(\frac{2|m|-1}{q}+2\right)xP_{|m|}^{|m|+q-1}(x)-\left(\frac{2|m|-1}{q}+1\right)P_{|m|}^{|m|+q-2}(x)
\end{align}
\)[1]
1階微分
\(\;\;\;\;
\begin{align}
m=\pm 1&\; \\
&:\hspace{1em} \frac{d}{dx}P_l^m(x)=\frac{lx}{(x^2-1)}P_l^m(x)-\frac{l+m}{(x^2-1)} P_{l-1}^m(x) \\
m\ne\pm 1\; \\
&:\hspace{1em} \frac{d}{dx}P_l^m(x)=c_{2}P^{m+2}_{l-1}(x)+c_0 P^{m}_{l-1}(x)+c_{-2} P^{m-2}_{l-1}(x) \\
&\hspace{1em} c_{2}=\frac{1}{4(m+1)}\\
&\hspace{1em} c_{0}=\frac{l+m}{2}\left(1+\frac{l}{1-m^2}\right)\\
&\hspace{1em} c_{-2}=-\frac{(l+m)(l+m-1)(l+m-2)(l-m+1)}{4(m-1)}
\end{align}
\)
※\(m=\pm 1\)の時、\(x=\pm 1\)で発散します。
2階微分
\(\;\;\;\;
\begin{align}
m=\pm 1,\pm 3&\; \\
&:\hspace{1em} \frac{d^2}{dx^2}P_l^m(x)=\frac{1}{1-x^2}\left[2x\frac{dP_l^m(x)}{dx}+\frac{(l+1)(l+m)}{2l+1}\frac{dP_{l-1}^m(x)}{dx}-\frac{l(l-m+1)}{2l+1}\frac{dP_{l+1}^m(x)}{dx}\right] \\
m\ne\pm 1,\pm 3&\; \\
&:\hspace{1em} \frac{d^2}{dx^2}P_l^m(x)=c_{2}\frac{dP^{m+2}_{l-1}(x)}{dx}+c_0 \frac{dP^{m}_{l-1}(x)}{dx}+c_{-2} \frac{dP^{m-2}_{l-1}(x)}{dx}
\end{align}
\)
※\(m=\pm 1,\pm 3\)の時、\(x=\pm 1\)で発散します。 -
直交性
\(l\)に対する直交性
\(\;\;\;\;
\displaystyle
\int_{-1}^{1} P_{m}^{l}(x)P_{m}^{l’}(x) dx =\frac{2}{2l+1}\cdot \frac{(l+m)!}{(l-m)!}\delta_{l,l’}
\)
[3] Abramowitz & Stegun (1965), ISBN 978-0486612720 (Numerical Method, 22.18, Page 789)
[4] Abramowitz & Stegun (1965), ISBN 978-0486612720 (Numerical Method, 22.2, Page 774,775)