nano_exit

基礎的なことこそ、簡単な例が必要だと思うのです。

2019-01-01から1年間の記事一覧

マクスウェル方程式とゲージ変換

ほぼ自分用の初等的なメモWikipedia マクスウェルの方程式 - Wikipediaマクスウェル-ガウスの式 磁化保存の式だけ人の名前がついていない。 ファラデー-マクスウェルの式 アンペール-マクスウェルの式 ここから、各ポテンシャルとそれらのゲージ変換不変…

背理法をよく考えながら、Hohenberg-Kohnの第一定理を考える。

Hohenberg-Kohnの第一定理は以下の様なものである。 「外場と基底状態電子密度は一対一対応する。」 これは、背理法で証明されることがほとんどだろう。しかし、背理法そのものについて学ぶことは、あまりない気がしたので、ここでまとめる。「命題」を、「…

pythonでの計算時間の測定とその出力

自分用のメモ import time time_start = time.time() # # calculation contents # time_end = time.time() delta = time_end - time_start second = delta % 60 minuite = ( delta % 3600 ) // 60 hour = delta // 3600 print( " {:>.1f} s".format( delta )…

Windows 10にWSLでUbuntuを入れたらOpenMPIで警告が出た時の話

OpenMPIをインストールした後、mpirunで実行ファイルを走らせると、以下のような警告文が出た。 WARNING: Linux kernel CMA support was requested via the btl_vader_single_copy_mechanism MCA variable, but CMA support is not available due to restric…

二準位系での自己エネルギー

自己エネルギーがずっとわかったようでわからなかったので、二準位系で求めて見た。ハミルトニアンを次のように定義する。 次に、射影演算子を次のように定義する。 これによって、ハミルトニアンを(機械的に)対角項と非対角項に分けることが出来る。 もし…

mpi4pyをOpenMPIでインストールした時の話

WSLで入れたUbuntuでpythonの環境が整いつつあったので、mpi4pyをpipで入れようとしたら、上手く行かなかった。 どうもインストールの際に内部でmpiccでコンパイルするときにコケていて、エラーの内容は-lmpeやら-llmpeやらが無いということだった。しかし、…

Windows 10にWSLでUbuntuを入れてもpython (matplotlib)で図が表示されなかった時の話

pyenvを使って、pythonおよびモジュールを管理出来るようになった。 koideforest.hatenadiary.comそこで、matplotlibでとりあえず図が出るか確認したところ、 from matplotlib import pyplot as plt plt.plot( range(2), range(2) ) plt.show() 何も出ず、う…

Windows10にWSLでUbuntuを入れてもpyenvが使えなかった時の話

前前回、前回と、Windows 10上でUbuntuを動かす上で、Proxyの設定が重要であることを学んで来た。 koideforest.hatenadiary.com koideforest.hatenadiary.comgit cloneが使えるところまで来たため、pyenvをインストールしたところ、pyenv installがコケてし…

Windows 10にWSLでUbuntuを入れてもgit cloneが使えなかった時の話

前回、Windows 10でaptを使えるようにしました。 koideforest.hatenadiary.comそれで次にgit cloneでpyenvを入れようとしたら fatal: unable to access 'https://github.com/pyenv/pyenv.git/': gnutls_handshake() failed: The TLS connection was non-prop…

Windows10にWSLでUbuntuを入れてもaptが使えなかった時の話

新しくWindows PCを用意して、WSL経由でUbuntuをインストールしたが、aptが使えなくて困っていた。以下のサイトを参考にした。 WSL(Windows Subsystem for Linux)のProxy設定方法 | 組込みエンジニアの思うところ Windowsでプロキシのユーザとパスワードを…

高速フーリエ変換する時の端点の話。

高速フーリエ変換ことFFT(ファイナルファンタジータクティクスではありません)は、結局は離散フーリエ変換な訳で、ある範囲のデータが無限に周期的に繰り返しているとしてフーリエ変換してくれます。 この時に、端の点のどこで周期性を課すのか、ややこし…

FFTWで3次元高速フーリエ変換してみた。

前回の例を元に、3次元に拡張してみた。 koideforest.hatenadiary.com program fftw3_test_3d implicit none integer, parameter :: WP = selected_real_kind( 8 ) real( WP ), parameter :: PI = 3.141592653589793 complex( WP ), parameter :: I = ( 0, 1…

FFTWをfortranで使う際の自分用のメモ

FFTWをfortranで使う。本家の説明: FFTW 3.3.8: Fortran Examples参考にしたサイト: fftwの使い方:腰も砕けよ 膝も折れよ:So-net blog FortranのFFTWの使い方 - Qiita Hiroyuki R. Takahashi Fumio KUSUHARA -Fortran90で構造解析- program fftw3_test i…

Fortranの精度変更。

Fortranの精度変更の書式が自分の知らない感じだったので、自分用にまとめる。 Fortran Best Practices — Fortran90 1.0 documentation program test_presicion implicit none integer, parameter :: dp0 = kind( 0.d0 ) integer, parameter :: dp = selecte…

Makefileの自分用のメモ

FC = gfortran FFLAGS = INCLUDE = -I/opt/local/include LIBS = -L/opt/local/lib -lbrabra PROGRAM = main.out OBJS = sub.o SRCS = $(OBJS:%.o=%.f90) .Phony: all clean all: $(PROGRAM) $(PROGRAM): $(OBJS) $(FC) $(FFLAGS) -o $@ $^ $(INCLUDE) $(LIB…

pythonで三次元プロットする時の自分用メモ

三次元プロット用のx軸、y軸の配列。 import numpy as np N = 100 x_min, x_max = -1, 1 y_min, y_max = -1, 1 x1 = np.linspace( x_min, x_max, N ) y1 = np.linspace( y_min, y_max, N ) X, Y = np.meshgrid( x1, y1 ) 三次元プロット用のz軸データ。 def …

「夢を叶えるためには、どれくらい頑張るべきか」を確率的に考察。

前回、諦める確率を考えた下で、最終的に欲しい結果が得られる確率について考察した。 koideforest.hatenadiary.com今回は、逆に「8,9割の確率で目的を達成するためには、どれくらい粘り強くあるべきか?」を考えたい。 一回の試行で欲しい事象が得られる確…

「諦める癖があると夢は叶わない」をコインとサイコロで考察。

前回、無限にコインやサイコロを投げれば、欲しい結果は必ず得られることを示した。 koideforest.hatenadiary.com今回は、途中で諦める確率を考慮した時に、どれだけ確率が減るかを試してみる。 諦める確率および続ける確率と定義する。「表が出るまでコイン…

「諦めなければ夢は叶う」をコインとサイコロで考察。

「コインを投げて表が出るまで永遠に投げ続けた時、最終的に表が得られる確率」を求める。したがって、無限にやれば、いつか必ず表が出るという結果に。今度はサイコロに問題を変えて、「1」の目が出るまで投げ続けることを考えると、 サイコロの場合でも、…

自分が自分じゃないものってNaNだ。

"NaN"とは"Not a Number"の略で、例えば「1/0」のような変な計算をしてしまった時に出力される。 このNaNの特徴として、「NaN = NaN」が「偽(False)」になる。 逆に言うと、「NaN is not NaN」が「真(True)」になる。NaNとは「自分が自分でないもの」な…

波動関数の節を数える

文字通り、波動関数の節を数える。ndarrayの中で条件を満たす要素数を数える方法。 NumPy配列ndarrayの条件を満たす要素数をカウント | note.nkmk.me import numpy as np x_min, x_max, N = 0, 3*np.pi, 100 x = np.linspace( x_min, x_max, N ) wave = np.c…

Spigot Algorithm

ネイピア数ってそういえばどうやって計算しているのかと思って調べてみたら、面白い記事を見つけた。 こつこつアルゴリズム(Spigot Algorithm)無限級数が以下のように定義されているとする。 この時、 と書けるので、 ここで、 したがって、これを次々繰り返…

光学定理(複素ポテンシャル):複素波数

前回、波数が実数のときの光学定理についてまとめた。 koideforest.hatenadiary.com今回は、より一般的な、波数が複素数のときの光学定理を考察する。波数ベクトルを次のように定義する。 方向ベクトルまで複素数にすると訳が分からなくなる。これより、確率…

光学定理(複素ポテンシャル):実波数

前回、実ポテンシャルに対する光学定理を導いた。 koideforest.hatenadiary.com今回は、複素ポテンシャルだが、波数は実数である時の光学定理を考える。 これは、無限遠方ではポテンシャルの虚部が完全に無くなっている場合に対応する。導出は前回とほぼほぼ…

光学定理(実ポテンシャル):外向波と内向波

実ポテンシャル、つまり非弾性散乱が無い時の光学定理を導く。散乱波を次のように定義する。 はそれぞれ外向波、内向波を表す。球座標に対するは 入射波に対する勾配は、 散乱波に対する勾配は、においてだけ残すと、 したがって、確率流密度は 干渉項を計算…

平面波の球面波展開における漸近形

平面波の角運動量展開(球面波展開) 球Bessel関数よりも球Hankel関数の方が、漸近形を覚え易い。 これらを使うと、 例えば、仮に平面波の複素共役を取った場合、

連続の式

連続の式を導出する。発想として、密度の時間依存性と時間依存のシュレーディンガーを方程式を結び付けることを考える。 ここで、ベクトル解析の関係式から、 したがって、 よって、連続の式は、 ポテンシャルが虚部を含む時()、確率が保存しないことがわ…

二階微分演算子の変数変換 for Numerov method

Numerov法は一階微分方程式を含まない二階微分方程式を解くのに便利な方法である。 この方法を適用するには、等間隔の変数刻み(メッシュ or グリッド)が必要である。 しかし、変化が穏やかなところでは粗いメッシュで十分だが、一方で変化が急なところでは…

存在をチェックするpythonコマンドまとめ

Path (File and/or Directory) import os path = "/test" os.path.exists( path ) # True or False path_file = "/test/test.dat" os.path.isfile( path_file ) # True or False path_dir = "/test/" os.path.isdir( path_dir ) # True or False 地味に英語…

断面積の単位:barn

たまに という単位を見かけたことがあったが、何だろうなと思ってスルーしていたので調べてみた。バーン (単位) - Wikipedia要は面積の単位でした。原子核物理の分野で、微分散乱断面積を表すのに使うそうです。 の面積だから、原子核には丁度良いらしい。 …