忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

XNAで量子化学 球面調和関数の表示

意味不明なタイトルですが、書いてる
ぼくにもよくわからないので問題ありません。

実は7月30日までに量子化学とか言う学問を
理解しなければならなくなったのですが、
それでXNAの助けを借りようというわけです。
(念のためことわっておくと、ぼくは化学が大の苦手で、
どのくらい苦手かと言うと大学受験に生物と物理を
使ったくらいです)

ソースコードのダウンロードはこちら

量子化学とは?

量子化学
というのは、最先端の化学だそうで、
バイオテクノロジーやナノテクノロジーなんかでは
良く使うとか何とかだそうです。

では高校で習うようなフツーの化学と何が違うのかと言うと、
高校での化学は化学現象を、分子がH-Hみたいに
「結合のための手」をもっていると考えるのに対し、
量子化学は、化学現象の本質が
「原子の一番外の電子殻にある価電子」(表面軌道)
とやらであると考えるのだそうです。
(何でもこのほうが厳密にキチっと行くそうです)

例えば、
原子が化学結合をするのはお互いの価電子が作用しあうから。
分子がどんな構造になるかを決めるのは価電子の相互作用で、
分子は相互作用が最も安定になる構造になる。
物質の化学反応は分子の価電子の相互作用が重要。

果ては物質の沸点や融点、物質の色から溶解性まで
価電子が決めるのだそうです。

ともかくその価電子とやらがとても重要だと言うことです。
(たぶん進化生物学でいうなら淘汰の単位としての
遺伝子のポジションにあるのでしょう。
現代のプログラミングで言うとオブジェクトと言ったところでしょうか?)


で、決まってそういう重要な概念には(困ったことに)
いろんな表現の仕方があるものです。

例えば、この価電子というのは、表面軌道とも言われます。
価電子は原子や分子の表面を周っているからでしょうか。

さらに、それが原子の価電子である場合は、
とくに外殻原子軌道(アウター・アトミック・オービタル)と言い、
一方、それが分子の価電子である場合には、
とくに外殻分子軌道(フロンティア・オービタル)と言うそうです。

門外漢には拷問です。

球面調和関数

で、そのとてもとっても大切な価電子を扱うには、普通の理屈は通用しません。
これは量子力学の領分です。
粒子としての性質と波としての性質の両方を持つとか言うやつです。

価電子はシュレディンガー方程式という波動方程式で表されるのです。

量子力学は何がどこにあるかは確率でしかいえないとか言いますが、
この方程式に出てくる波動関数の絶対値を二乗することによって
その確率が出てくるのです。

で、その波動関数というのはある2つの関数をかけたもので表せるのですが、
そのうちの1つが、この記事のタイトルを意味不明なものにしている、
球面調和関数(スフェリカル・ハーモニクス)です。
これをXNAで表示してみることにしました。

これには複数の種類があるので一部だけをのせましょう。
(Tabキーで表示する種類を変えます)
6a2df85d.JPG5ea3e5e6.JPG
この球面調和関数なるものは、
中心からの方向(Z軸となす角度とZ軸周りの角度)の関数なので、
この関数の値を中心からの距離と言うことにして描画しました。
ただこれだと値がマイナスになっていた時困るので、
その時は色を青にしました。(プラスの時は赤)

関数の形を良く見えるようにと言うことで
アルファ・ブレンディングで半透明にしたのですが、
逆効果だったかもしれません。

せっかくなので、スペースキーを押すと
ワイヤーフレームがその上に表示されるようにしました。
これで少しは立体的な感覚がつかめるようになったと思います。
90d5369b.JPG※UpキーやLeftキーを押すとモデルが回転してさらに立体的に把握しやすくなります。

ソースコードのダウンロードはこちら

拍手[0回]

PR