Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

量子力学シミュレーション

Important

この章を読む前に

この章を読むには、以下の章を先に読んでおく必要があります。

量子力学は、原子や分子、半導体デバイスなど、微細なスケールの世界を支配する物理法則です。 その中心となるシュレーディンガー方程式は、解析的に解ける場合が非常に限られているため、数値シミュレーションが不可欠な分野です。

本章では、量子力学の基本方程式をコンピュータ上で解くための手法を学び、いくつかの代表的な量子現象をシミュレーションします。

本章の構成

  1. シュレーディンガー方程式の数値解法 連続的な波動関数を離散化し、ハミルトニアンを行列として表現する方法(差分法)を学びます。また、Rustにおける複素数の扱い方も紹介します。

  2. 1次元束縛状態 時間的に変化しない定常状態(固有状態)を求める問題を扱います。井戸型ポテンシャルなどを例に、エネルギー準位の計算を行います。

  3. 時間発展とスプリット演算子法 波動関数の時間変化を追跡するための手法(クランク・ニコルソン法、スプリット演算子法)について解説します。

  4. 散乱問題とトンネル効果 ポテンシャル障壁に対する波束の衝突をシミュレーションし、量子力学特有の現象であるトンネル効果を観測します。

作業テーマ

作業ディレクトリは ~/rust-computational-physics-work/ からの相対パスです。 ユニットテストで確認する具体的なケースは、解析解、境界条件、許容誤差の観点からAI coding agentと相談して決めます。

テーマ作業ディレクトリ構造化するコードユニットテスト演習拡張演習
Schrodinger方程式quantum-mechanics/schrodingerbuild_grid, potential, hamiltonian小さい格子でHamiltonianの対称性を確認するgrid spacingと境界条件をmetadataに保存する
1次元束縛状態quantum-mechanics/bound-statessolve_eigenstates, normalize, expectation_energy井戸型ポテンシャルの低い準位を確認する固有状態とエネルギーをCSVに出力する
時間発展quantum-mechanics/time-evolutionstep_crank_nicolson, step_split_operator, normnorm保存を許容誤差つきで確認するtime stepを変えたnorm driftを比較する
散乱問題quantum-mechanics/scatteringwave_packet, barrier, transmission_probability初期波束の規格化を確認する透過率の障壁幅依存をCSVに出力する

検証と実装の観点

量子力学の数値計算では、複素数、境界条件、規格化、単位系を明示します。 固有値や時間発展の結果は、見た目だけでなく、norm、energy、residualで確認します。

  • grid、potential、Hamiltonian、solver、出力処理を分けて実装する。
  • 固有値問題では residual、時間発展では norm保存を確認する。
  • grid spacing、time step、境界条件、初期波束、potential parameterをmetadataとして残す。
  • agentに実装を任せた場合も、複素共役、正規化、境界条件の扱いをdiffで確認する。