2021/11/29-12/3 東京都立大学 環境調和化学特論II
関連資料
東京工業大学 科学技術創成研究院 神谷利夫
★注意★ 以下の資料、python
プログラムは教育目的で作成したもので、
間違いやバグ、計算精度の不足、プログラムの最適化などの保証は全くありません。
自己責任でお使いください。
- pythonは、anaconda 3x を推奨します
(インストール方法はこのページ最後をご覧ください)。
その他のdistributionでは、python 3.x
を選択し、必要なモジュール (numpy, scipyなど)
をインストールしてください
- 下記の 「レベル」の★の数は、プログラムの難易度を表しています
- *.py のリンクをクリックすると、pythonプログラムのダウンロードができます。
うまくいかない場合は、リンクをマウスで右クリックし、ファイルに保存してください。
- (プログラムコード) あるいは (プログラムコード・実行結果)
をクリックすると、
web browser上でプログラムコードを表示します。
コメントが色付けされているので、プログラムを理解する場合はこちらをご覧ください。
講義資料 最終版
関連プログラム・ファイル ダウンロード
関連資料: 神谷利夫、「機能性化合物の設計」、金属
2020年10月号
848ページ以降に、周期構造の透過率スペクトルとバンド構造の関係についての説明があります
一般
結晶関係
バンド理論
- レベル★★ 三次元自由電子バンド
free_electron_band.py (プログラムコード・実行結果)
説明: 自由電子モデル (ゼロポテンシャル)
による三次元バンド構造
使用しているアルゴリズム: なし
実行方法: python free_electron_band.py
資料: pw.pdf
- レベル★★★★ Kronig-Penneyモデルによる一次元バンド計算
kronig_penney.py (プログラムコード・実行結果)
説明: Kronig-Penneyモデルによる一次元バンド構造と波動関数
使用しているアルゴリズム: 多値方程式の解法
(直接探索、セカント法)
Usage: python kronig_penney.py
Usage1: python kronig_penney.py (graph a bwidth bpot k Emin Emax nE)
Usage2: python kronig_penney.py (band a bwidth bpot nG kmin kmax nk)
Usage3: python kronig_penney.py (wf a bwidth bpot kw iLevel xwmin
xwmax nxw)
実行例1: python kronig_penney.py graph 5.4064 0.5 10.0 0.0 0.0
9.5 51
格子定数 5.4064 Å、ポテンシャル幅 0.5 Å、高さ 10.0
eVで、k = 0.0 についてのKronig-Penney方程式の
残差 Δ を E = 0.0 ~ 9.5 eV
の範囲を51分割してプロット。Δ = 0
のEが固有エネルギー。
実行例2: python kronig_penney.py band 5.4064 0.5 10.0 -0.5 0.5
21
格子定数 5.4064 Å、ポテンシャル幅 0.5 Å、高さ 10.0
eVで、k = [-0.5,0.5] の範囲を
21分割してバンド構造をプロットする。
実行例3: python kronig_penney.py wf 5.4064 0.5 10.0 0.0 0 0.0
16.2192 101
格子定数 5.4064 Å、ポテンシャル幅 0.5 Å、高さ 10.0
eVで、k = 0.0 における下から 0 番目の
準位の波動関数をプロットする。波動関数は x = 0.0
~ 16.2192 Å を 101 分割してプロットする。
資料: Kronig-Penney.pdf、Optimization.pdf
- レベル★★★ 転送行列法による透過率、波動関数の計算
transfer_matrix.py (プログラムコード・実行結果)
説明:
転送行列法による、一次元多重井戸型ポテンシャルの電子の透過率
使用しているアルゴリズム: なし
Usage1: python transfer_matrix.py (wf nz Ez0)
Usage2: python transfer_matrix.py (tr nz Ez0 Emin Emax nE)
実行例1: python transfer_matrix.py wf 201 0.1
座標 (z) を 201分割し、電子のエネルギー 0.1 eV
における波動関数の係数およびΨ(z)をプロットする。
実行例2: python transfer_matrix.py tr 201 0.1 0.01 1.0 1001
座標 (z) を 201分割し、電子のエネルギー 0.1 eV
における透過率と波動関数をプロットする。
透過率は、0.01 ~ 1.0 eV の範囲を1001分割する。
資料: TransferMatrix.pdf
関連資料: 神谷利夫、「機能性化合物の設計」、金属
2020年10月号掲載予定
848ページ以降に、周期構造の透過率スペクトルとバンド構造の関係についての説明があります
- レベル★★★ 平面波基底による一次元バンド計算
pw1d.py (プログラムコード・実行結果)
説明:
平面波基底と井戸型ポテンシャルによる一次元バンド構造
使用しているアルゴリズム: フーリエ変換 (numpy.fft.fft())、エルミート行列の対角化
(numpy.linalg.eig())
Usage: python pw1d.py mode (args)
mode: ft:
ポテンシャルのフーリエ変換を表示
band: バンド構造を表示
wf:
波動関数を表示
Usage1: python pw1d.py
(ft a na pottype bwidth bpot)
Usage2: python pw1d.py (band a na pottype bwidth bpot
nG kmin kmax nk)
Usage3: python pw1d.py (wf a na
pottype bwidth bpot nG kw iLevel xwmin xwmax nxw)
pottype: ポテンシャル型 現在は rect のみ実装
実行例1: python pw1d.py ft 5.4064 64 rect
0.5 10.0
格子定数 5.4064 Åを 64分割 (FFTを使うため、2n
である必要がある)し、フーリエ変換した係数をプロット。
ポテンシャル障壁 0.5 Å幅、高さ10.0 eV。
実行例2: python pw1d.py band 5.4064 64 rect
0.5 10.0 3 -0.5 0.5 21
格子定数 5.4064 Åを 64分割。ポテンシャル障壁 0.5
Å幅、高さ10.0 eV。
平面波基底を 3つ 用いて、k = [-0.5, 0.5] の範囲を 21
分割してバンド構造をプロット。
実行例3: python pw1d.py wf 5.4064 64 rect
0.5 10.0 3 0.0 0 0.0 16.2192 101
格子定数 5.4064 Åを 64分割。ポテンシャル障壁 0.5
Å幅、高さ10.0 eV。
平面波基底を 3つ 用いて、k = 0.0 におけるバンドの 0
番目の準位の波動関数を描く。
(注意:
準位の番号は、エネルギー準位順にはなっていない。コンソール出力で確認すること)
波動関数は 0.0 ~ 16.2192 Å の範囲を 101
分割してプロット。
資料: pw.pdf
python ノート