Submit Search
Upload
SchracVisualizeによる波動関数の可視化
•
1 like
•
2,117 views
D
dc1394
Follow
SchracVisualizeによる波動関数の可視化を紹介したスライドです。
Read less
Read more
Education
Report
Share
Report
Share
1 of 21
Download now
Download to read offline
Recommended
Arに対する古典分子動力学シミュレーション
Arに対する古典分子動力学シミュレーション
dc1394
単振り子と二重振り子のコンピュータシミュレーション
単振り子と二重振り子のコンピュータシミュレーション
dc1394
水素原子に対するSchrödinger方程式の数値解法
水素原子に対するSchrödinger方程式の数値解法
dc1394
About myon
About myon
myuon
C++の黒魔術
C++の黒魔術
Daichi OBINATA
言語処理系入門1
言語処理系入門1
Kenta Hattori
言語処理系入門2
言語処理系入門2
Kenta Hattori
言語処理系入門3
言語処理系入門3
Kenta Hattori
Recommended
Arに対する古典分子動力学シミュレーション
Arに対する古典分子動力学シミュレーション
dc1394
単振り子と二重振り子のコンピュータシミュレーション
単振り子と二重振り子のコンピュータシミュレーション
dc1394
水素原子に対するSchrödinger方程式の数値解法
水素原子に対するSchrödinger方程式の数値解法
dc1394
About myon
About myon
myuon
C++の黒魔術
C++の黒魔術
Daichi OBINATA
言語処理系入門1
言語処理系入門1
Kenta Hattori
言語処理系入門2
言語処理系入門2
Kenta Hattori
言語処理系入門3
言語処理系入門3
Kenta Hattori
鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門
Hiroyoshi Komatsu
スペル修正プログラムの作り方 #pronama
スペル修正プログラムの作り方 #pronama
Hiroyoshi Komatsu
Python2と3の互換性問題に立ち向かうときにまずやること
Python2と3の互換性問題に立ち向かうときにまずやること
kiki utagawa
P2PSIP Designing Overlay Networks and Applications Based on Flexible Routing ...
P2PSIP Designing Overlay Networks and Applications Based on Flexible Routing ...
Hiroya Nagao
Pythonによる画像処理について
Pythonによる画像処理について
Yasutomo Kawanishi
Guiding neural machine translation with retrieved translation pieces
Guiding neural machine translation with retrieved translation pieces
Satoru Katsumata
機械翻訳の今昔物語
機械翻訳の今昔物語
Hiroshi Nakagawa
Python : Class
Python : Class
Seong-Hun Choe
IBMModel2
IBMModel2
Hidekazu Oiwa
C言語講習会資料(後半)
C言語講習会資料(後半)
Yuki Sako
Python : for文の解説
Python : for文の解説
Seong-Hun Choe
LT@Chainer Meetup
LT@Chainer Meetup
Shunta Saito
TensorFlow math ja 05 word2vec
TensorFlow math ja 05 word2vec
Shin Asakawa
メタプログラミングってなに?
メタプログラミングってなに?
KazukiWata
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
Kenta USAMI
2016word embbed
2016word embbed
Shin Asakawa
論文の紹介A comparative evaluation for qb h
論文の紹介A comparative evaluation for qb h
Lutfiana Ariestien
C言語講習会資料(前半)
C言語講習会資料(前半)
Yuki Sako
ICALP 2014 参加記
ICALP 2014 参加記
irrrrr
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013
Esehara Shigeo
Unityでlinqを使おう
Unityでlinqを使おう
Yuuki Takada
L-1グランプリ "D言語"
L-1グランプリ "D言語"
det coder
More Related Content
What's hot
鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門
Hiroyoshi Komatsu
スペル修正プログラムの作り方 #pronama
スペル修正プログラムの作り方 #pronama
Hiroyoshi Komatsu
Python2と3の互換性問題に立ち向かうときにまずやること
Python2と3の互換性問題に立ち向かうときにまずやること
kiki utagawa
P2PSIP Designing Overlay Networks and Applications Based on Flexible Routing ...
P2PSIP Designing Overlay Networks and Applications Based on Flexible Routing ...
Hiroya Nagao
Pythonによる画像処理について
Pythonによる画像処理について
Yasutomo Kawanishi
Guiding neural machine translation with retrieved translation pieces
Guiding neural machine translation with retrieved translation pieces
Satoru Katsumata
機械翻訳の今昔物語
機械翻訳の今昔物語
Hiroshi Nakagawa
Python : Class
Python : Class
Seong-Hun Choe
IBMModel2
IBMModel2
Hidekazu Oiwa
C言語講習会資料(後半)
C言語講習会資料(後半)
Yuki Sako
Python : for文の解説
Python : for文の解説
Seong-Hun Choe
LT@Chainer Meetup
LT@Chainer Meetup
Shunta Saito
TensorFlow math ja 05 word2vec
TensorFlow math ja 05 word2vec
Shin Asakawa
メタプログラミングってなに?
メタプログラミングってなに?
KazukiWata
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
Kenta USAMI
2016word embbed
2016word embbed
Shin Asakawa
論文の紹介A comparative evaluation for qb h
論文の紹介A comparative evaluation for qb h
Lutfiana Ariestien
C言語講習会資料(前半)
C言語講習会資料(前半)
Yuki Sako
ICALP 2014 参加記
ICALP 2014 参加記
irrrrr
What's hot
(19)
鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門
スペル修正プログラムの作り方 #pronama
スペル修正プログラムの作り方 #pronama
Python2と3の互換性問題に立ち向かうときにまずやること
Python2と3の互換性問題に立ち向かうときにまずやること
P2PSIP Designing Overlay Networks and Applications Based on Flexible Routing ...
P2PSIP Designing Overlay Networks and Applications Based on Flexible Routing ...
Pythonによる画像処理について
Pythonによる画像処理について
Guiding neural machine translation with retrieved translation pieces
Guiding neural machine translation with retrieved translation pieces
機械翻訳の今昔物語
機械翻訳の今昔物語
Python : Class
Python : Class
IBMModel2
IBMModel2
C言語講習会資料(後半)
C言語講習会資料(後半)
Python : for文の解説
Python : for文の解説
LT@Chainer Meetup
LT@Chainer Meetup
TensorFlow math ja 05 word2vec
TensorFlow math ja 05 word2vec
メタプログラミングってなに?
メタプログラミングってなに?
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
2016word embbed
2016word embbed
論文の紹介A comparative evaluation for qb h
論文の紹介A comparative evaluation for qb h
C言語講習会資料(前半)
C言語講習会資料(前半)
ICALP 2014 参加記
ICALP 2014 参加記
Similar to SchracVisualizeによる波動関数の可視化
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013
Esehara Shigeo
Unityでlinqを使おう
Unityでlinqを使おう
Yuuki Takada
L-1グランプリ "D言語"
L-1グランプリ "D言語"
det coder
Llでゆるふわプログラミングのすすめ
Llでゆるふわプログラミングのすすめ
mizcki
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
tecopark
DTrace for biginners part(2)
DTrace for biginners part(2)
Shoji Haraguchi
Community Open Day 沖縄
Community Open Day 沖縄
Yutaka Tsumori
Define and expansion of cpp macro
Define and expansion of cpp macro
digitalghost
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
gree_tech
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
Ryuichi Kubuki
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
Hiroshi Watanabe
ふるたに流プログラミング学習法
ふるたに流プログラミング学習法
Kazuma Furutani
Similar to SchracVisualizeによる波動関数の可視化
(12)
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013
Unityでlinqを使おう
Unityでlinqを使おう
L-1グランプリ "D言語"
L-1グランプリ "D言語"
Llでゆるふわプログラミングのすすめ
Llでゆるふわプログラミングのすすめ
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
DTrace for biginners part(2)
DTrace for biginners part(2)
Community Open Day 沖縄
Community Open Day 沖縄
Define and expansion of cpp macro
Define and expansion of cpp macro
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
ふるたに流プログラミング学習法
ふるたに流プログラミング学習法
More from dc1394
第一原理計算と密度汎関数理論
第一原理計算と密度汎関数理論
dc1394
C++による数値解析の並列化手法
C++による数値解析の並列化手法
dc1394
Pseudopotential of vanderbilt
Pseudopotential of vanderbilt
dc1394
MBK擬ポテンシャルの作成法
MBK擬ポテンシャルの作成法
dc1394
高精度擬ポテンシャル法の開発と表面系への応用
高精度擬ポテンシャル法の開発と表面系への応用
dc1394
Development of highly accurate pseudopotential method and its application to ...
Development of highly accurate pseudopotential method and its application to ...
dc1394
Blochの定理の証明
Blochの定理の証明
dc1394
Vanderbiltの擬ポテンシャル
Vanderbiltの擬ポテンシャル
dc1394
Troullier and Martinsの擬ポテンシャルの作成法
Troullier and Martinsの擬ポテンシャルの作成法
dc1394
有限要素によるHybrid汎関数の実装
有限要素によるHybrid汎関数の実装
dc1394
Thomas-Fermi方程式のFEMによる解法
Thomas-Fermi方程式のFEMによる解法
dc1394
A lda+u study of selected iron compounds 第二章
A lda+u study of selected iron compounds 第二章
dc1394
A lda+u study of selected iron compounds 第一章
A lda+u study of selected iron compounds 第一章
dc1394
第一原理計算と密度汎関数理論
第一原理計算と密度汎関数理論
dc1394
More from dc1394
(14)
第一原理計算と密度汎関数理論
第一原理計算と密度汎関数理論
C++による数値解析の並列化手法
C++による数値解析の並列化手法
Pseudopotential of vanderbilt
Pseudopotential of vanderbilt
MBK擬ポテンシャルの作成法
MBK擬ポテンシャルの作成法
高精度擬ポテンシャル法の開発と表面系への応用
高精度擬ポテンシャル法の開発と表面系への応用
Development of highly accurate pseudopotential method and its application to ...
Development of highly accurate pseudopotential method and its application to ...
Blochの定理の証明
Blochの定理の証明
Vanderbiltの擬ポテンシャル
Vanderbiltの擬ポテンシャル
Troullier and Martinsの擬ポテンシャルの作成法
Troullier and Martinsの擬ポテンシャルの作成法
有限要素によるHybrid汎関数の実装
有限要素によるHybrid汎関数の実装
Thomas-Fermi方程式のFEMによる解法
Thomas-Fermi方程式のFEMによる解法
A lda+u study of selected iron compounds 第二章
A lda+u study of selected iron compounds 第二章
A lda+u study of selected iron compounds 第一章
A lda+u study of selected iron compounds 第一章
第一原理計算と密度汎関数理論
第一原理計算と密度汎関数理論
Recently uploaded
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
Takayuki Itoh
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
Recently uploaded
(7)
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
SchracVisualizeによる波動関数の可視化
1.
@dc1394 SchracVisualizeによる、波動関数と電 子密度の可視化
2.
自己紹介 Twitter: @dc1394
C++, C#, F#そしてRubyが好きです(ただしプログラ マーではありません)。 量子力学の数値計算とかやってます。 最も興味のある分野 ・第一原理計算 ・密度汎関数理論(Density Functional Theory, DFT) 第一原理計算やDFTについては、よろしければ拙作 のスライドをご覧ください ( http://www.slideshare.net/dc1394/ss-26378208 )。
3.
概要 前回の復習 動径波動関数と球面調和関数
波動関数と電子密度の可視化のアルゴリズム プログラムの実演 まとめ
4.
使用するプログラム言語、ライブラリ 等 プログラム言語はC++11を使用する。 Boost
C++ Librariesを使用する。 三次元可視化のために、Microsoft DirectX 10を 使用する。 Spline補間のために、GNU Scientific Library (GSL)を使用する。 さらに、並列計算のために、Threading Building Blocks (TBB)を使用する。
5.
Schracでの計算結果 Schracでの計算結果は、以下のような数値データ である。 このデータの意味を、直接把握しようとしても、不 可能である。
6.
gnuplotによるプロット 次に、先ほどの出力結果をgnuplotでプロットして みる。 数値データよりは、意味を把握しやすくなったが、 やはりまだ味気ない。
7.
波動関数と電子密度の可視化 波動関数ψ(r,θ,φ)と電子密度ρ(r,θ,φ)を、三 次元で可視化することを考えよう。 このためには、動径波動関数Rnl(r)だけでは不十 分である。
ψ(r,θ,φ)は、Rnl(r)と、球面調和関数Ylm(θ,φ)の 積であった。従って、Ylm(θ,φ)を求める必要があ る。 ここで、Ylm(θ,φ)は、以下の偏微分方程式を満た す。
8.
球面調和関数Ylm(θ,φ) 前ページの偏微分方程式を解くと、球面調和関数 Ylm(θ,φ)として以下が得られる。 ここで、Pl mは、ルジャンドル陪関数である。
この式は複雑であるが、この関数の値は、Boost ライブラリの「spherical_harmonic」関数を用いれば、 簡単に得られる。 なお、Ylm(θ,φ)は複素関数であることに注意。
9.
波動関数と電子密度の構成 波動関数ψ(r,θ,φ)は、以下のように得られる。 電子密度ρ(r,θ,φ)は、以下のように得られる。
ここでmは磁気量子数である。 ここで動径波動関数Rnl(r)は、schracの出力ファイ ルから読み込んだ(離散的な)数値データを、 Spline補間して求める。 Spline補間には、GSLライブラリのgsl_spline関数を 用いる。
10.
波動関数と電子密度の可視化の考え 方 波動関数ψ(r,θ,φ)及び電子密度ρ(r,θ,φ)のい ずれも、三次元の変数を持つので、表示には四次 元が必要である。 四次元(の関数)は、単純にはグラフ化できない ので、可視化には工夫が必要である。
工夫としては色々な方法があるだろうが、ここでは 乱数を用いて、四次元の関数を可視化することを 考える。
11.
波動関数の可視化のアルゴリズム 波動関数の可視化の手順は、以下のようになる。 (1)
主量子数n、方位量子数l、磁気量子数mを決める。 →動径分布関数と、球面調和関数が決まる (2) 波動関数を観測する回数を決める、観測回数だ け(3)~(4)を繰り返す。 (3) 動径波動関数と球面調和関数の積を分布関数と 定義し、この分布関数に従う乱数を発生させ、 電子 の位置(x, y, z)の値を決める(ただし、球面調和関数 の実部と虚部は、別々に表示する)。 (4) 電子の位置(x, y, z)に点をプロットする。
12.
電子密度の可視化のアルゴリズム 電子密度の可視化の手順は、以下のようになる。 (1)
主量子数n、方位量子数l、磁気量子数mを決める。 →動径分布関数と、球面調和関数が決まる (2) 電子雲を観測する回数を決める、観測回数だけ (3)~(4)を繰り返す。 (3) 以下の関数を分布関数と定義し、この分布関数に 従う乱数を発生させ、 電子の位置(x, y, z)の値を決め る。 (4) 電子の位置(x, y, z)に点をプロットする。
13.
von Neumannの棄却法 「原子の波動関数と電子密度を乱数を用いて描 く」という問題は、「どうすれば分布関数に従う乱 数を発生させることができるか?」という問題に帰 着する。
任意の分布に従う乱数を発生させる方法として、 よく知られている方法に、「von Neumannの棄却 法」がある。 次ページでこれを詳しく説明する。
14.
von Neumannの棄却法 von
Neumannの棄却法の手順は以下のようにな る。 (1) 確率密度関数f(x)の変数xの変域を区間[0, x0]と する。変域内でのf(x)の最大値をMとする。 (2) 区間[0, x0]での一様乱数xiを発生させる。 (3) 区間[0, M]での一様乱数yiを発生させる。 (4) xi, yiが、f(xi) > yiを満足する場合のみ、乱数xiは与 えられたf(x)に従うものとして採用し、満足しなければ 捨てる。 (5) (2)~(4)を繰り返して乱数列を得る。
15.
SchracVisualizeの特徴 前ページの方法で得られた乱数列を用いて、波 動関数と電子密度を描画する。 SchracVisualizeでは、描画にMicrosoft
DirectX 10を用いている。 また、計算に時間がかかるので、描画スレッドと 計算スレッドを分離している。 計算スレッドはさらに、実行環境のCPUコア数に 応じた孫スレッドを生成し、それを並列計算に用 いる(TBBライブラリを用いている)。
16.
SchracVisualizeの実演
17.
H原子の波動関数とHe原子の波動関 数の比較
18.
H原子の電子密度とHe原子の電子密 度の比較
19.
ソースコードへのリンク このプログラムのソースコードは、GitHub上で公 開しています。 https://github.com/dc1394/SchracVisualize
また、バイナリも以下で公開しています。 https://github.com/dc1394/SchracVisualize/rele ases/tag/v0.2 ライセンスは修正BSDライセンスとします。
20.
まとめ 「schrac」で計算したデータを読み込み、Spline補 間することで、動径波動関数Rnl(r)を得た。 上記のRnl(r)と、球面調和関数Ylm(θ,φ)を掛け合 わせることにより、波動関数ψ(r,θ,φ)を得た。
また、 Rnl(r)と、球面調和関数Ylm(θ,φ)の実部及 び虚部の積の二乗から、電子密度ρ(r,θ,φ)を得 た。 ψ(r,θ,φ)及びρ(r,θ,φ)を、von Neumannの棄 却法による乱数を用いて、三次元的に視覚化した。
21.
参考文献 桜町 晃生『パソコンで描く水素原子―シュレー ディンガー方程式を「計算する」「プロットする」「眺 める」』I・O
BOOKS(2004)
Download now