Closed koji-inui closed 3 months ago
@koji-inui 電子系の配置ですが、以下の論文に詳細が記載されています。 https://www.sciencedirect.com/sdfe/reader/pii/S0010465517301200/pdf 電子系のLサイトを扱うとして、そのうちプロセス数が4^pとします(4状態のうち、0がempty, 1がアップスピン、2がダウンスピン、3が二重占有状態を表します。詳細は上記論文の3.1を参照してください)。 この時、ランク番号でpサイト分のヒルベルトスペースを表し、残りのL-pサイトを各プロセス内で扱います (こちらの詳細は上記論文の4.1を参照してください)。
プログラムの中身ですが、各プロセス内での固有ベクトルの要素と電子配置の関係は配列のlist_1
で管理しています(list_1
はsz.c
で作成しており、作成方法については、http://www.pasums.issp.u-tokyo.ac.jp/wp-content/themes/HPhi/media/develop/tips.pdf に詳しい説明があります)。
ただし、現在のHΦのバージョンではlist_1
は出力されていないため、自分で新規に作成する必要があります(次のバージョンではオプションで出力できるようにする予定です)。なお、HΦ内部でlist_1
を一緒に出力するよう変更していただいた場合には、
for idx in list_1:
idx_all = myrank*4^{L-p} + idx
とすることで、各ランクのidxから電子配置に対応するidxを得ることができます。
以上が固有ベクトルの要素と電子配置の関係の説明になりますが、 もしご不明な点がありましたら、お気軽にご連絡ください。
@k-yoshimi 丁寧に回答ありがとうございます。
プロセス毎に各状態のサブセットを持っている形なのですね。おおよそわかりました。
この部分の if文を消せば、出力出来ますでしょうか?
そうでない場合は、ちょっとこっちで中身をいじれる気がしないので、次のバージョンを待ちたいと思います。
@koji-inui 返信が遅れてしまいすみません。 output_listは昔の仕様の名残で、single processのみ対応しております。 そのため、MPIで計算する場合には、ファイル名をプロセス毎に指定するなどの改造を行う必要があります。
固有ベクトルの並び順と電子配置の関係性が中をみてもよく分からなかったので、質問させてください。 物性研 sekireiの中で投げており、バージョンは3.3.0です。
stan.in
の条件に加えて、
に設定し、固有ベクトルを出力し、
https://github.com/issp-center-dev/HPhi/blob/3d16c63714f533c82302761853e9b15dd1446904/src/CalcByLanczos.c#L222-L228 これをみて、
のような形で、固有ベクトルを取得しております。
ただ、 各myrank毎に出力される固有ベクトルの要素と、対応する電子配置がわからないのですが、教えてもらえますでしょうか? 各電子の格子番号,スピン に対して、出力される固有ベクトルはどのような対応関係になっていますでしょうか? ソースコードの該当箇所を示してもらえるだけでもありがたいです。