2021年12月2日木曜日

保存近似 PhysRev, G.Baym 1391(1962)の式(35)についてです。完全化積分性 d^2 \Sigma/dG(1,2)dG(3,4)=d^2 \Sigma/dG(3,4)dG(1,2)

Physical Reviwe, Baym (1962)の(35)式についてです。

これは微分形式の可積分性の話である。

単純化して言えば、「二階偏微分は微分順序の交換が可能である。
その逆も言えて、もし微分形式の係数が交換可能であれば完全微分になる」
という話である
( f_i(x_1,x_2,x_3...,x_N) i=1,2,3,...Nに対して
  \frac{\partical f_i}{\parical x_j}=\frac{\partical f_j}{\parical i}
  ならば、母関数Fが存在して f_i= \frac{\partical F}{\parical x_i} となるという話)。

そうだとするともし、Baym論文のように保存近似の意味を
Uという外部摂動に対してGが変化し\Sigmaも変化する。
ルジャンドル変換でUのかわりにGを変数と見て汎関数としての\Sigm[G]を考える。
この摂動下で保存則を満たす場合(=エネルギーなどの時間的変化量が表面積分で書けること=カレントが定義できる)の\Sigma[G]の満たすべき条件とは?

という問題設定で考えるなら、
「上記の意味で保存則を満たす\Sigma[G]はGについて可積分である。
 すなわち、なんらかの(系の対称性をもつ)\Psi[G]が存在し、その汎関数微分として\Sigma[G]は与えられる。」
という結論になる

-----------------------
外場をいれたルジャンドル変換から、
Omega[G]=TrlmG + Tr G0^-1G +Psi[G]
において微分項は二項目のみに入っている。
\Delta Omega を変形して、部分積分(ガウスの定理)でバルク項+表面項にわける  。
バルク項は、オイラーラグランジュ方程式から消える。これが保存則となる。

-----------------------
Gammaを作る。
1.あらかじめPsi[G]の構築にGammaを仕込んでおく
2.Psi[G]から出発してGammaを構成する?

-----------------------
Ward恒等式は自己エネルギーと上述のGammaの関係式。


Baym and Kadanoff showed that we can satisfy conservation laws for any functional <math>\Phi\left[G\right]</math>, thanks to the Noether's theorem. This is followed by the fact that the equation of motion of <math>G</math> responding to one-body external fields apparently satisfies the space- and time- translational symmetry as long as the equation of motion is given with the derivative of <math>\Phi\left[G\right]</math> <ref name=baym61/>. Note that reverse is also true. Based on the diagramatic analysis, what Baym found is that  
<math>\frac{\delta \Sigma(1,\left[G\right])}{\delta G(2)}=\frac{\delta \Sigma(2,\left[G\right])}{\delta G(1)}</math>
is needed to satisfy the conservation low. This is nothing but the completely-integrable condition, implying the existence
of <math>\Phi\left[G\right]</math> such that <math>\Sigma\left[G\right]=\frac{\delta \Phi\left[G\right]}{\delta G}</math>
(recall the case of the completely-integrable condition for simple two variable function <math>f(x,y)</math>).

2021年10月7日木曜日

分配関数、密度汎関数、などの複素解析性

磁性体の分配関数はZ(\beta,B)と書ける。このZ(\beta,B)は磁場Bの解析関数である。

これから作った自由エネルギーはB=0で特異点を持ちうる。ルジャンドル変換で作った汎関数F(\beta,M)は磁気モーメントMの解析関数となるがconvexではない。convexなものを作るにはその凸包(convex hull)を取る必要がある。

密度汎関数法。まずLDAで求められる密度汎関数について考えてみる。これは密度の解析関数となっている。そのconvex hullをとったものが「Levyの拘束付き探索法」に対応している。

いずれにせよ、解析関数、解析的方法で漸近的に真の解にせまっていくしかないのだろう。

「自己相似型摂動理論」のひとつがくりこみ群

 摂動理論では、微少量で展開する。

 dA(= A(J) + dA(J)/dJ ×dJ

このようにdA/dJがJの関数として与えられていれば、Jで積分していくことができる。このような構造になっているには、自己相似的な摂動論(微小変化に対して、元の関数のパラメーターが少し変わるだけになる)ということになる。

自己相似の意味で「スケーリングがくりこみ群に対応する」というのは正しい。が、自己相似的な摂動論はもう少し一般的な意味を持ち得る。


自己相似型摂動理論と、スケーリング則の混同

self-consistentな解と固定点


2021年7月4日日曜日

単位を角括弧に入れるべきでない。あいまいな角括弧ルール。深刻なのは教育的問題

 物理量は 数字x単位 であるので、

L=1 m でないといけない。

ところが、歴史的な理由からか日本の教科書には角括弧でM=1[kg]などと書くことがある。理解しづらい。M=1000[g]とどう違うのか?という議論になってしまう。

角括弧の意味を正当化しようとして、ルールを決めようとするんだけど、どうにもローカルルールになってしまう。本質的な妥当性がないのでいたしかたない。あちこちで不具合が出る。ローカルルールの通用する個々の業界では困らないだろうけども。


深刻なのは教育的問題だろう

でたらめな角括弧ルールのせいで単位が理解できていない。組み立て単位がわからない。違う物理量を結びつけるのが物理定数ということがわからない。「ものを比べる」ということの意味がわからない。

例えば、物理的な次元を明瞭にしたいだけなら(多くの場合そういうことだと思える)、

長さL  (次元 m)

とでも書き、L  (次元 km)と書いても同じ意味である、とすべき。いくらかくどくてもきちんと書かないと混乱が起きる。わかってればどっちでもいい、ということではない。


2021年6月8日火曜日

matplotlibはdateオブジェクトを認識する

 MobilityReportHomework

https://colab.research.google.com/drive/1GzSjUvEivOgN0CGMFlGT7KKVRrMbNg1j?usp=sharing


#日付オブジェクトへの変換
from datetime import date
sss="2019-12-04"
print(type(sss),sss)
ddd=date.fromisoformat(sss)
print(type(ddd),ddd)


これのリストをX軸に使うことができる

2021年6月4日金曜日

emacs でコンパイル時のエラー行にジャンプ

 M-x compile

ctrl+x `

でエラー行にジャンプ


https://flex.phys.tohoku.ac.jp/texi/emacs-jp/emacs-jp_158.html

gfortan -gをつけましょう。コンパイラのトレースバック機能はだいぶと良くなってきた.

gfortran,以下のように -O2と-gが両立するようだ。コンパイラのトレースバック機能がだいぶと良くなってきた。

 mpif90  -O2  -g -fimplicit-none -ffixed-line-length-132 -DMPIK  -JOBJ.gfortran -IOBJ.gfortran -c ../wanniergw/htbplot.F -o OBJ.gfortran/htbplot.o 

2021年5月29日土曜日

assumed-size array foobar(3,*)を「大きさ引き継ぎ配列」とするのはひどい誤訳ではないのかな?

f90の形状引き継ぎfoobar(:,:)はとてもよいが、モジュールに入れたサブルーチンをuseしないと引き継ぎが保証されないようだ。呼び出し側と呼び出される側を同じファイルに入れてもコンパイラは形状一致をチェックするので、いささかの混乱がある。

どうしてもf77のライブラリを利用することになるがトップダウンでf90化していく必要はある。subroutineの引数でデータを渡すのは避けるべき。指示(入力のみ)を書くべき。module変数のprotectで出力する。use,olnyとprotectの併用でデータフローのしっかり読めるコードになる。f77コードをトップダウンで(上位レベルから)モジュール化していくのがよい。依存関係やI/Oが明瞭になる。

ある種の単純化された「数値計算向けオブジェクト指向」というものがある。

f77ルーチンにsize(foobar)でサイズを取りたいが、このときfoobar(:)でいかないといけない。ただし、(:)だとシェープチェックも入ってくるので次元合わせまで要求されてしまう。