hbar = 1, m = 1/2 すなわち 2m / hbar^2 = 1 の単位系(変更したければシュレディンガー方程式の**項、 つまりstep関数の中でphiの2階微分の前の係数を変更してください)で 任意のポテンシャル下の1次元量子力学系を解けます。 c++14をサポートするg++及びgnuplotの動くコマンドライン上で ./1dim-qm-sim-execute.sh と入力すれば実行でき、コンパイルからgif画像(outputフォルダ内にデモあり)の出力まで一通りやってくれます。 デフォルトでは#DEFINE MODEの部分を書き換えることで 箱型ポテンシャル、調和振動子、自由粒子のシミュレーションが出来ますが、 さらに別のポテンシャルを試したければvInitを変更してください。 調和振動子を出力する際はgnuplotのスクリプトも専用のもの (gif_plot_for_harm_osci.gp)に切り替えることをオススメします。 古典系と量子系の違い(散乱によるphase shiftなど)が見えるはずです。 デフォルトの初期条件は位置x0、**量p0の規格化されたガウス波束ですが、 これを変えたければphiInitを変更すればよいはずです。 細い注意として、デフォルトではprintVandPhiはint_tが10変化するごとに呼び出されますが、 これでは出力ファイル ./output/output.dat のサイズが数百MB程度になり gnuplotに読ませるのに多少時間がかかるかもしれません。 解決策としてint_tは例えば30ごととかにして、代わりに.gpファイルのdo文の中のindex (output.datのうち実際に画像出力に使う部分をここで指定しています) の係数の3を除くなど、各自で工夫してください