実習(2)FDMNESによる
XANESシミュレ
ーション
2023版

株式会社ダイセル

小出明広(公益財団法人)

高輝度光科学研究センター 中田謙吾

講習の流れFDMNESの紹介
FDMNESのインストール
インストール後の設定
PowerShellの起動方法
PowerShellの使い方
Cu-foil の試し計算
FDMNESの基本的な流れ
入力ファイルの解説 -基礎入力ファイルの解説 -構造情報の作成入力ファイルの解説 -クラスター半径出力ファイルの解説 -フェルミレベル出力ファイルの解説 -ConvolutionCu2Oの計算(クラスター半径の違い等)
Cu2OのLDOS計算、出力ファイルの解説 -LDOSBaTiO3 の計算(Pm3-mとR3m)
FeO6の計算（パラメータフィット）

時間があれば Appendix の解説

インストールと操作

基本的な計算と解説

FDMNES
Cu-foil のお試し計算
とにかく動かしてみる

0) PowerShell を開く(A) 検索を開く+S(B) PowerShell と入力(C) PowerShellを選択して起動

(C)

(B)
(A)

1) 計算用ディレクトリに移動する
スペース

cd ¥calC: などのドライブ指定は同じドライブ内移動ならば省略できる

カレントディレクトリが C:¥cal に移動したのが確認できる

1) Cu-foil の計算用ディレクトリを作成する
スペース

mkdir Cu

2) Cu-foil の計算用ディレクトリに移動する
スペース

cd Cu

4) Cu の計算用入力ファイルをコピーする
スペース

スペース

cp ¥fdmnes¥Sim¥Test_stand¥in¥Cu_inp.txt inp.txt
cp ¥fdmnes¥fdmfile.txt .
スペース

ドット

PowerShell の場合は Linux のシェルなどと異なりコピー先がカレントの場合の . (ドット) は省略できる（ただし、変な癖を付けない用に . (ドット)は付ける習慣にする)5) コピーされたファイルを確認する
ls

2つファイルがコピーされているのを確認する

合計2つのファイルを編集する

inp.txt
fdmfile.txt

旧版ではさらに- spacegroup.txt- xsect.datが必要だが 2017.10.17 版以降なくてもOK6) fdmfile.txt を編集する

start .¥fdmfile.txt
スペース

ドット

編集するファイルパスを誤解なく記述するためにファイル名の先頭に .¥ を付ける (これを付けな
いとパスの通ったところにある fdmfile.txt が選択される環境が場合によってはある)

windows 上で .txt に登録してあるエディターが立ち上がる(何も登録してなければ、デフォルトでは「メモ帳」が立ち上がる)6) fdmfile.txt を編集する・ファイル名が長くて入力がめんどくさいとき
・誤解なく確実に目的のファイルを選択したいとき
TAB キーを活用するスペース

start fdmと入力後 TAB キーを押す

TAB キー

カレントディレクトリに fdm から始まるファイルが複数存在しないときは、全自動で .¥ を含めたファイル名が補完される6) fdmfile.txt を編集する.txt にメモ帳が割り当てられているときはメモ帳が立ち上がる

スペース

start ファイル名
ファイル名をダブルクリックしたのと同じ動作をする

6) fdmfile.txt を編集する

Sim/Test_stand/in/Cu_inp.txt↓
inp.txt7) 編集した fdmfile.txt を名前を付けた保存する

保存する場所を明確にするために「名前を付けて保存」で保存する

7) 編集した fdmfile.txt を名前を付けた保存する
fdmfile.txt の名前のままで保存する

保存場所を確認する

この場所が違うときは異なる場所の
fdmfile.txt を編集している可能性があります。

7) 編集した fdmfile.txt を名前を付けた保存する
保存場所を確認する

上書きします8) 編集を終えた fdmfile.txt を閉じます9) 念のため、編集したファイルをもう一度開いてみます
fdmfile.txt を編集後、ファイルを閉じた状態↑キーを押す直前に入力したコマンドが画面に出てくる↑キーで履歴をたどれる
リターンキー(Enterキー) を押す

もう一度開く
(内容確認)

10) inp.txt ファイルを編集する

start .¥inp.txt

編集後は上書き保存

Sim/Test_stand/Cu
↓
Cu

修正前

修正後

11) 計算を実行する fdmnes_win64.exe

プログラムを実行する
32bit 版 windows の人は
fdmnes_win32.exe を実行してください
Mac の人は fdmnes_mac を実行
Linux の人は fdmnes_linux64 を実行最後にこの画面が出てくる

計算終了12) 計算後に出来たファイルを確認

計算の結果出来た３つのファイル (日付と時間確認）
計算後に出来たものか？

計算ログ
ファイルサイズは
fdmnes のバージョン(いつダウンロー
ドしたか？) によってによって異なります

スナップショットは FDMNES の 2015/12/16 バージョンの結果

13) ログファイルの確認スペース

start .¥Cu_bav.txt

Cu_bav.txt ファイルの中身を見る

ファイルの一番最後を見る

計算時間
Have a beautiful day !

FCC Cu クラスター半径R=3.0 (FDM計算) conventional cell

約10秒

2.6 GHz Intel Core i5( VMware on Mac )AMD E-450 1.65GHz

約50秒

今回の実習で一回の計算で一番重い計算は
BaTiO3 R3m (セルは cubic にする)
2.6 GHz Intel Core i5( VMware on Mac )約16秒

AMD E-450 1.65GHz

約60秒

もし、
BaTiO3 R3m (文字通りロンボのままで計算したら AMD だと 16分)

14) 計算結果をプロットする

Cu.txtCu_bav.txt
Cu_conv.txt
inp.txt
fdmfile.txt

計算結果(生)計算ログ

計算結果

14) 計算結果をプロットする( Cu_conv.txt の編集 )スペース

start .¥Cu_conv.txt14) 計算結果をプロットする( Cu_conv.txt の編集 )GNUPLOT でプロットするために1行目をコメントアウトする

名前を付けて上書き保存

15) 計算結果をプロットする( GNUPLOT の立ち上げ )wgnuplot16) wgnuplot 上でプロットコマンドの入力
スペース

plot ‘Cu_conv.txt’

シングルクオート(ダブルクオートでもよい)16) wgnuplot 上でプロットコマンドの入力

TAB 補完について
plot ‘Cuまで入力

TABキーを押す(一回目)
Cu から始まるファイル名の候補1

TABキーを押す(二回目)
Cu から始まるファイル名の候補2

TABキーを押す(三回目)
Cu から始まるファイル名の候補3

plot ‘Cu_conv.txt’

XANES の計算結果が表示される

XANESスペクトルの結果が以前バージョンと比べるとシフト
2016.06.02 版からエネルギーの軸がE - EF として設定されている
ゼロエネルギー = フェルミエネルギー

EF = 02018.11.30版

2016.06以前
EF = -6.93eV

横軸 E = E - EF

横軸 E16) wgnuplot 上でプロットコマンドの入力
スペース

スペース

スペース

plot ‘Cu_conv.txt’ w lwith line の略17) GNUPLOT の結果を画像ファイルとして保存
gnulot 上でスペース

set terminal png

出力形式を png にする

set output ‘Cu.png’

出力ファイル名を Cu.png にする

plot ‘Cu_conv.txt’ w lplot し直す(replot コマンドでもよい)qgunplot を閉じる

注意) プロットは画面に表示されない
画面に表示される代わりにファイルに出力される

17) GNUPLOT の結果を画像ファイルとして保存
ls

画面に表示される代わりに出力されたファイル18) Cu.png ファイルの表示
スペース

start Cu.png

start Cu.png

拡張子 *.png に割り当てられているビューアが起動(windows7/10/11 だとフォトビューアー)FDMNES 計算の基本的な流れ

計算に必要なファイル (基本となる入力ファイル)

fdmfile.txt

入力ファイルの名前を指定(複数の入力ファイルの連続実行が可能)

inp.txt

入力ファイル(構造、吸収端、クラスター半径、、、)

fdmfile.txt

入力ファイル名を inp.txt とする
今回の実習ではこのファ
イルはもう編集しません

第一原理計算(MD計算、構造緩和計算)の結果
CIF, PDB 構造情報
自分で作成したモデル構造
,,,,

構造の情報

計算の詳細
inp.txt

電子状態計算 (FDM or多重散乱理論)

XANESスペクトルの計算
Cu.txtXANESスペクトルの畳み込み（broadening)

Cu_conv.txt

XANESスペクトル基本入力ファイルの解説-基本編-

fdmfile.txt
入力ファイルの指定
連続して複数の入力ファイルで計算を実行できる例) ! General indata file for FDMNES! with indata files examples !: コメントアウト（後述）!が行頭にあると、その行は読まない
読み込む
入力ファイルの数

2
Sim/Test_stand/in/Cu_inp.txt
Sim/Test_stand/in/VO6_inp.txt

入力ファイルのパス

注意) あまりこの機能は使わない方が健全（複数のファイルを別のディレクトリで出力するのオススメしない）
入力と出力は同じディレクトリ内で完結するべき(同じところに置くべき)連続処理をさせたいときは、スクリプト(windowsならばバッチ)を書く

inp.txt
FiloutCu
Range-1. 0.2 5. 0.5 20. 1. 50.
Radius3.0
Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5
ConvolutionEnd

出力ファイルのベースとなる名前(パス込み)
計算するエネルギー範囲
クラスター半径計算する構造

畳み込み(broadening)inp.txt
FiloutCu

Filout を Cu としたとき

出力ファイルのヘッダ部分が Cu になるinp.txt
スペースで区切る

計算するエネルギー範囲
ステップ
下限

上限

Range
-1. 0.2 5. 0.5 20. 1. 50.
下限

ステップ

上限

下限

上限
ステップ

いくらでも追加できる。

-20. 2. -10. 1. -1. 0.2 5. 0.5 20. 1. 50.
等もOK。

入力パラメーターは複数のタグとそにれ関連付けられたパラメータで定義される
Tag
Parameter
基本ルール
コメントアウト記号は ! (半角)
タグと関連づけられたパラメータの間ににコメントは付けられない大文字と小文字は区別しない
タブは使えない
行頭のスペースは無視される
タグは全部の文字の入力が必要(省略不可)注意) (値が必須のタグの場合)
タグと値の間にはコメントは付けられない
Fileout! Fe2O3
Sim/Test_stand/Fe2O3
Fileout
Sim/Test_stand/Fe2O3! Fe2O3

ダメな場合がある

問題なし

入力ファイルの改行コードは LF でも LF+CR でも OK
出力は windows のときはそれにあわせて LF+CR になるタグやパラメーターの間には空行を開けなくてもOK
FiloutCu
Range-10. 0.2 0. 0.5 10. 1. 40.
Radius3.0

コメント
スペースの入れ方は自由
FiloutCu
Range-10. 0.2 0. 0.5 10. 1. 40.

Radius3.0

Filout ! comment
Cu
Range ! 日本語でもOK-10. 0.2 0. 0.5 10. 1. 40.
Radius3.0

FDMNES基本入力ファイルの解説-構造情報の作成-

Crystal
3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5 内部座標
29 0.0 0.5 0.5

FCC Cua, b, c , α, β, γ

原子番号1) コンベンショナルなセルで書ける

a, b, c , α, β, γ
Cu4

Cu3

2) 内部座標はセル内での相対座標
Cu1

Cu2

空間群を使った記述も可能

FCC Cu

空間群の指定225, Fm-3m
Spgroup
Fm-3m
Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0

セルはコンベンショナルに記述

4a サイト0,0,0空間群を使って記述

P1 で記述Spgroup
Fm-3m

Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5

Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0

同じ構造
FCC Cu

記述方法が異なるだけ同じ構造なので同じXANESスペクトルが描ける
計算するときには内部的に自動で対称性を探す

空間群を使って記述
Spgroup
Fm-3m
Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0

Total time 10.8 s CPU

P1 で記述Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5

Total time 10.7 s CPU

計算するときには内部的に自動で対称性を探す

内部的に作られるクラスター構造が同じ

基本入力ファイルの解説-クラスター半径-Filout
Cu

FDMNES ではクラスター計算が行われている

Range-1. 0.2 5. 0.5 20. 1. 50.
Radius3.0

クラスター半径

Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5
Convolution
End

構造情報

構造情報 (Crystal,Molecule)

吸収原子を中心にしてクラスター半径内の原子でクラスターを作る

1) 構造情報から周期的に配置される結晶を作る

バルクの計算では十分な大きさのクラス
ターが必要
R=5.0Å

2)クラスター半径を指定

吸収原子(ホールが空く)吸収原子を中心とした半径(クラスター半径のイメージ図)

R=3.0Å

55原子

R=5.0ÅFCC Cu141原子

少なくともR=6Å以上で無いと二つのピーク構造が出てこない

クラスター半径を変えた計算

FCC CuFDM

分子系の記述は？

Crystal のとき

FDMNES は単位胞を周期的に配置する

SpgroupFd-3m:1
Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.0 0.0 0.0

単位胞

Molecule のとき
Molecule
2.16 2.16 2.16 90. 90. 90.
26 0.0 0.0 0.0
8 1.0 0.0 0.0
8 -1.0 0.0 0.0
8 0.0 1.0 0.0
8 0.0 -1.0 0.0
8 0.0 0.0 1.0
8 0.0 0.0 -1.0

Diamond

孤立して配置される

FeO6

Spgroup
Fd-3m:1
Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.0 0.0 0.0
6.0 0.75 0.25 0.75

for FDMNES

mesh parameter
unit-cell
unit-cell を単位とした
内部座標

分子系の入力はxyz(Cartesian)ではなくDirectで行う
Molecule
2.16 2.16 2.16 90. 90. 90.
26 0.0 0.0 0.0
8 1.0 0.0 0.0
8 -1.0 0.0 0.0
8 0.0 1.0 0.0
8 0.0 -1.0 0.0
8 0.0 0.0 1.0
8 0.0 0.0 -1.0

mesh parameter
unit-cell
箱を作る必要unit-cell を単位とした
内部座標

FDMNES での分子の構造作成は
実質的には分子を含んだ単位胞の作成となる(ただし、非周期)(注意)
通常の分子系の構造情報はcartesian で書かれている

PDB形式や xyz 形式などの cell の情報を持たない
ファイルフォーマットを元にするときには注意が必要
cell の情報をとして用意する
FDM計算には mesh parameter が必要
mesh parameter

VESTA での分子系の記述
VESTA で PDB などの分子系の構造情報を読んだとき
output する方法
×) 直接 POSCAR などの周期系の形式で output する〇) 一度 cif 形式に export する。
cif への output は分子の大きさが考慮されて自動で分子を含む単位胞が作られる

単位胞情報を持った後ならば周期系の形式へ出力が自由に出来る

VESTA では…

1) [File]-[Export Data…] で cif を選び保存する

2) 保存した cif を開く

3) 再度 [File]-[Export Data…] で好きな形式に output する

Crystal Maker では[Transform]-[Molecule to Crystal] を選択lattice parameter を設定

分子の情報に箱（unit-cell）加わる

lattice alattice blattice cαβγdata_FeO6_audit_creation_method'generated by CrystalMaker 9.2.9'_cell_length_a20.0000(0)_cell_length_b
20.0000(0)_cell_length_c
20.0000(0)

20Åの箱

Fe1
O2
O3
O4
O5
O6
O7

Fe 1.0000
O 1.0000
O 1.0000
O 1.0000
O 1.0000
O 1.0000
O 1.0000

0.50000.60290.39710.50000.50000.50000.50000.50000.50000.50000.60290.39710.50000.50000.50000.50000.50000.50000.50000.60290.3971

data_FeO6_audit_creation_method'generated by CrystalMaker 9.2.9'_cell_length_a6.1710(0)_cell_length_b6.1710(0)_cell_length_c6.1710(0)
Fe1
O2
O3
O4
O5
O6
O7

Fe 1.0000
O 1.0000
O 1.0000
O 1.0000
O 1.0000
O 1.0000
O 1.0000

0.50000.83340.16660.50000.50000.50000.50000.50000.50000.50000.83340.16660.50000.50000.50000.50000.50000.50000.50000.83340.16666Åの箱クラスター半径と単位胞の関係
単位胞の取り方A)

B)
単位胞の取り方

クラスター半径
1)
2)
3)
4)

クラスター半径それぞれの分子は、箱の中には収まっている
クラスター半径を
A と B の二つの構造の作り方でFDM計算の結果が異なる
A と B どちらの構造の取り方でも Green 関数計算だと結果は同じ※クラスター半径は単位胞内に収まる必要はなく、半径が大きければ大きいほど精度は上がり、そして計算時間が掛かる。

計算領域によってポテンシャルの扱いが異なる

球体ポテンシャル

FDMによるフルポテンシャル

クラスター半径外のポテンシャル
Neumann and Bessel 関数

3つの領域

クラスター半径Appendix

空間群の入力の際の注意
および
cif での入力の話

空間群にチョイスがある場合は注意

例) ダイアモンド型構造

Fd-3m
(227)

格子点を原子位置に一致

格子点を反転中心にとる

Non-Symmorphic Space Group

Symmorphic Space Group

チョイス1+部分的並進操作

チョイス2

International Tables for Crystallography (2006) から227, Fd-3m choice 1

Non-Symmorphic Space Group

8a サイト227, Fd-3m choice 2

0,0,0

Symmorphic Space Group

1/8,1/8,1/8

8a サイトspacegroup.txt (FDMNES)
Schoenflies Hermann-MauguinHall*227:1 Oh^7
Fd-3m:1x,y,z-x+1/4,-y+1/4,-z+1/4..

F 4d 2 3 -1d*227:2 Oh^7x,y,z-y,x+1/4,z+1/4..

-F 4vw 2vw 3

Fd-3m:2

3/4, 1/4, 3/4

7/8, 3/8, 3/8

Diamond
SpgroupFd-3m:1

チョイス1

Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.0 0.0 0.0
6.0 0.75 0.25 0.75

SpgroupFd-3m:2

チョイス2

Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.125 0.125 0.125
6.0 0.875 0.375 0.375*) チョイスありの H-M 記号で入力

サイトの記述についての注意
SpgroupFd-3m:1

チョイス1,パターンA

Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.0 0.0 0.0
6.0 0.75 0.25 0.75

SpgroupFd-3m:1

Diamondサイトのwycoff 位置 を全部書く
0,0,08a サイト

3/4, 1/4, 3/4

チョイス1,パターンB

Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.0 0.0 0.0

サイト内の代表選手のみ記述
0,0,0

8a サイト

3/4, 1/4, 3/4

空間群は指定しておく (しなくてもよい)

Diamond

チョイス1,パターンC
SpgroupFd-3m:1

Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.0 0.0 0.0
6.0 0.0 0.5 0.5
6.0 0.5 0.5 0.0
6.0 0.5 0.0 0.5
6.0 0.75 0.25 0.75
6.0 0.25 0.25 0.25
6.0 0.25 0.75 0.75
6.0 0.75 0.75 0.25

8a サイト

サイト内の原子座標をP1で書く(8aサイトなので8つある)

空間群を使っても使わなくても、同じ構造を記述すれば良い

コードの内部ではその構造の元で、自動で空間群を探して波動関数や電荷の対称化は行われる。

cif ファイルから直接入力は出来ないの？
FDMNES には cif 入力の機能は実装さていますが、使わない方が良いです

意図していない構造で計算してしまう可能性があります
1) バグが多い（頻繁なアップデートで対処はしてくれてます)2) cif ファイルは様々なものがある
FDMNES が必要としている情報が書いてない cif もあります3) occupation が 1.0 以外の場合はモデルの選択を自分で考えなくてはいけない原則的には
1) cifファイルを読んで構造を理解すればよい
ただし、cif ファイルの中身は実はかなり複雑
2) cifが作られた論文を読めば構造情報がわかる

3) cifを VESTA や CrystalMaker で読み込ませる
自分が理解している出力形式へエクスポート
4) FDMNES に対応した構造ツールを使うcif ファイルの一番シンプルな内部構造_pd_phase_name'TiO2 Rutile'_cell_length_a4.593(2)_cell_length_b
4.593(2)_cell_length_c2.959(2)_cell_angle_alpha90_cell_angle_beta
90_cell_angle_gamma
90_symmetry_space_group_name_H-M 'P 42/m n m'_symmetry_Int_Tables_number
136_atom_site_type_symbol
Ti 1 000O
1 0.3051(7) 0.3051(7) 0
元素名
占有率

Biso 0.42 Ti
Biso 0.60 O

x,y,z！！！簡単そうだ！！！

TiO2 Rutile

cell parameter

space groupcif ファイル中でのチョイスの記述は？
(Hall記号が併記してないcifがある)

Diamond

Diamond型 C (227,Fd-3m)_cell_length_a3.56700_cell_length_b
3.56700_cell_length_c
3.56700_cell_angle_alpha90_cell_angle_beta
90_cell_angle_gamma
90_symmetry_space_group_name_H-M'F d -3 m'_symmetry_Int_Tables_number
227

実は 素のHermann-Mauguin記号なのでチョイスが判らんチョイス1

よく見ると対称操作が異なるloop__symmetry_equiv_pos_as_xyz'x, y, z''-x, -y+1/2, z+1/2''-x+1/2, y+1/2, -z''x+1/2, -y, -z+1/2''z, x, y''z+1/2, -x, -y+1/2''-z, -x+1/2, y+1/2''-z+1/2, x+1/2, -y''y, z, x'

Diamond

チョイス2

loop_
_symmetry_equiv_pos_as_xyz'x, y, z''-x, -y, -z''-x+3/4, -y+1/4, z+1/2''x+1/4, y+3/4, -z+1/2''-x+1/4, y+1/2, -z+3/4''x+3/4, -y+1/2, z+1/4''x+1/2, -y+3/4, -z+1/4''-x+1/2, y+1/4, z+3/4''z, x, y'+部分的並進操作(Non-Symmorphic Space Group)

原理的にはチョイスが見極められるのだが・・・
手動でチョイスを並進操作を見極めるのがしんどい一番？簡単な方法としては

Diamond

VESTA or CrystalMaker で対称性を P1 に落とすこと

VESTA

Diamond

Remove symmetry

VESTA

対称性ありDiamondFd-3m:1 の元での 8aサイト

対称性なし

Remove symmetry

P1 にすると 8つのサイト

VESTA

注意) VESTA

Fd-3m:1

8aサイト

VESTA はサイトの代表選手以外を書いても正しく描画するFd-3m:1

Remove symmetry

P1

Diamond

もし 8aサイトの代表選手以外も記述してしまったら

重複してしまう
同じ座標を登録VESTAVESTA や CrystalMaker でサイトを記述するときは基本、サイトの代表選手のみ記述した方がその後に誤解が少ないRemove symmetry

Diamond後にcif ファイルにエクスポートする_cell_length_a3.56700_cell_length_b
3.56700_cell_length_c
3.56700_cell_angle_alpha90_cell_angle_beta
90_cell_angle_gamma
90_symmetry_space_group_name_H-M_symmetry_Int_Tables_number
1

'P 1'

Diamond
loop__symmetry_equiv_pos_as_xyz'x, y, z’

恒等操作のみP1での内部座標をゲット！

省略_atom_site_type_symbol
C
1.0 0.000000 0.000000
C
1.0 0.000000 0.500000
C
1.0 0.500000 0.500000
C
1.0 0.500000 0.000000
C
1.0 0.750000 0.250000
C
1.0 0.250000 0.250000
C
1.0 0.250000 0.750000
C
1.0 0.750000 0.750000

元素記号

x,y,z

0.000000
0.500000
0.000000
0.500000
0.750000
0.250000
0.750000
0.250000

Biso 1.000000 C
Biso 1.000000 C
Biso 1.000000 C
Biso 1.000000 C
Biso 1.000000 C
Biso 1.000000 C
Biso 1.000000 C
Biso 1.000000 C

FDMNESを
P1の内部座標で記述

Diamond

空間群にチョイスを含んだ cif ファイルは対称性を除いて P1 にして構造を作るのが間違いない(オススメ)
Crystal3.567 3.567 3.567 90. 90. 90.
6.0 0.0 0.0 0.0
6.0 0.0 0.5 0.5
6.0 0.5 0.5 0.0
6.0 0.5 0.0 0.5
6.0 0.75 0.25 0.75
6.0 0.25 0.25 0.25
6.0 0.25 0.75 0.75
6.0 0.75 0.75 0.25

計算したい構造をうまく記述する

構造変換 or 構造作成

助けてくれるツールたち(FDMNESには未対応)

わりと万能な構造変換機能があるツール
Python Framework

Atomic Simulation Environment
cif2cell

http://sourceforge.net/projects/cif2cell/

C-Tools

http://sourceforge.net/projects/c-tools/

Xtaledit

http://pmt.sakura.ne.jp/wiki/index.php?title=XtalEdit

https://wiki.fysik.dtu.dk/ase/(FDMNES対応)

Python Framework+Tools(構造以外にもFDMNESの各機能にもほぼ対応)

Structure Analysis Environment (仮)(K.NAKADA/JASRI)—> RMC_POT, FDMNES, 国産コードにも対応—> 一部機能がしょぼいので ASEと組み合わせるのが吉pyFDMNES

Python Framework

http://www.desy.de/2011summerstudents/2013/reports/weigel.pdf.gz
https://github.com/tinaw/pyFDMNES

Winmostar (商用)https://winmostar.com/jp/

モデリングソフト

pyFDMNES の使用例

cif には space group の情報が必要

1) numpy, PyCifRW が必要
2) setup.cfg を編集(fdmnes_path)3) python setup.py install

sim.P = Paramters()

import fdmnes
import os# BaTiO3_Pm3-m
sim = fdmnes.fdmnes(“2100863.cif")
Sim.P.Absorber = (‘2’)
sim.P.Range = (-15, 0.5, 50)
sim.P.radius = 4.0
sim.P.Rpotmax = 8.50
sim.P.Green = True
sim.P.cartesian = False
sim.WriteInputFile("inp.txt", overwrite=True)

inp.txt 作成までの例

import fdmnes
import matplotlib.pyplot as plt

sim = fdmnes.fdmnes("2100863.cif")
sim.P.Absorber = ('2')
sim.P.Range = (-5, 0.5, 50)
sim.P.radius = 4.0
sim.P.Green = True
sim.P.cartesian = False
sim.WriteInputFile("inp.txt", overwrite=True)
sim.Run(wait=True)
sim.Status()
data = sim.get_XANES()
plt.plot (data[:,0], data[:,1], label="Green")sim.DoConvolution(overwrite=True)
sim.Status()
data_conv = sim.get_XANES(conv=True)
plt.plot (data_conv[:,0], data_conv[:,1], label="convoluted")
plt.title("XANES with Convolution")
plt.xlabel("Energy")
plt.ylabel("Absorption Cross Section")
plt.legend(loc = 1)
plt.show()pyFDMNES の使用例

計算してプロット

基本出力ファイルの解説-Phtonenergy を軸とする-

計算ログ(Cu_bav.txt)の中から Edge Energy を取り出す
スペース

スペース

スペース

cat .¥Cu_bav.txt | Select-String E_edge
Cu_bav.txt ファイル中の E_edge という文字がある行を検索

2016.06.02 版から≅ Fermi Level
エネルギーの軸が EF0 = E - EF として設定されている

Phtonenergy を軸とするには EF0 + Edge Energy
Edge エネルギーはFDMの計算ではない。内部テーブル。

一行目に 8979 を加える

横軸を Photon Energy 表示する
コロン

1) wgnuplot

スペース2) plot ‘Cu_conv.txt’ u ($1+8979):2 w l≅E_edge

横軸が PhotonEnergy になる

3) plot が終わったらGNUPLOTを閉じる

Filout
Cu

計算結果そのものを Phtonenergy で書き出す

Range-1. 0.2 5. 0.5 20. 1. 50.
Energpho

Radius3.0

Energpho タグを追加して計算していると初めから Photonenergy で出力

Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5
Convolution
End

(例)

Cu (Phtonenergy)計算準備

スペース

(1)
(2)
(3)
(4)
(5)
(6)

計算のホームへ移動
cd ¥calCu_energypho 作業ディレクトリ作成
mkdir Cu_energpho
Cu_energypho 作業ディレクトリへ移動
cd Cu_energpho
cp ..¥Cu¥fdmfile.txt .
cp ..¥Cu¥inp.txt .
start inp.txt (入力ファイル編集) 計算に必要なファイルをコピー準備したファイルを確認

ls

スペース

Cu_conv.txt の編集

start .¥Cu_conv.txt
コメントアウト(最初の1行)

スペクトルのプロット
1) wgnuplot
2) plot ‘Cu_conv.txt’ w l

基本出力ファイルの解説-Convolution-

Broadening をする前のスペクトルをプロットするスペース

start .¥Cu.txt

Cu.txt を編集する
最初の2行をコメントアウトする

名前を付けて上書き保存Broadening をする前のスペクトルをプロットする
1) wgnuplot
スペース2) plot ‘Cu.txt’ w l

Cu.txt をプロットする

Broadening をする前の
XANESスペクトルスペース

カンマ で区切ることにより複数のデータをプロット

3) plot ‘Cu.txt’ w l , ‘Cu_conv.txt’ w l
Cu.txt: ブロードニングする前のXANESスペクトル

Cu_conv.txt:
core-hole の life time などを考慮してLorentzian でブロードニングしたスペクトル4) plot が終わったらGNUPLOTを閉じる

Lorentzian-convolution (畳み込み)
ブロードニングする前のスペクトルブロードニング後

Lorentzian 型

arctangent 型

O. Bunau, Y. Joly, J. Phys.: Cond. Mat. 21, 345501 (2009)arctangent 型

Γmax

傾き= Γmax/ELarg

Γmax

終状態の最大値

Γhole

ホールの幅

ELarg

arctangent の幅

Ecentarctangent の中心

Efermi

Fermi Level

O. Bunau, Y. Joly, J. Phys.: Cond. Mat. 21, 345501 (2009Appendix

Convolution について

Lorentzian-convolution (畳み込み)
ブロードニングする前のスペクトルブロードニング後

Lorentzian 型

arctangent 型

O. Bunau, Y. Joly, J. Phys.: Cond. Mat. 21, 345501 (2009arctangent 型

Γmax

傾き= Γmax/ELarg

Γmax

終状態の最大値

Γhole

ホールの幅

ELarg

arctangent の幅

Ecentarctangent の中心

Efermi

Fermi Level

O. Bunau, Y. Joly, J. Phys.: Cond. Mat. 21, 345501 (2009convolution (畳み込み)
FiloutCu
Range-10. 0.2 0. 0.5 10. 1. 40.
Radius3.0
Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5

Convolution
End

出力

Cu.txtCu_bav.txt
Cu_conv.txt
inp.txt
fdmfile.txt
spacegroup.txt
xsect.dat

core-hole の life time などを考慮
convolution 畳み込みをする

アークタンジェント型のLorentzian でブロードニン
グしたスペクトルを出力する

計算後に convolution パラメーターを変えて再convolution する現在の Convolution パラメーターを確認
スペース

スペース

1) Select-String Gamma_ *.txt

Gamma_max = 15.00
Ecent = 30.00
Elarg = 30.00
Gamma_hole = 1.55
Efermi = -6.93 eV(Gamma 値を検索)

デフォルトでは固定値(元素毎に規定値が用いられている)(計算値: convolution スタート)

Cu ディレクトリのしたに ReConvolution ディレクトリを作ってconvolutin 用の計算をする準備をする
スペース

tree /F ¥cal
ディレクトリやファイルのツリー表示

スペース

tree /F
カレントディレクトリ以下をツリー表
示 (/F を付けるとファイルも表示)

計算結果をコピー
スペー
ス

スペー
ス

tree /F 指定ディレクトリ
指定ディレクトリ以下をツリー表示(/F を付けるとファイルも表示)

計算後に convolution パラメーターを変えて再convolution するスペース1) cd ¥cal¥Cu2) mkdir ReConvolution3) cd ReConvolution4) cp ..¥Cu.txt .
5) cp ..¥fdmfile.txt .
6) cp ..¥spacegroup.txt .
7) cp ..¥xsect.dat .
8) cp ..¥inp.txt .

Cu の計算結果があるディレクトリへ
再convolution 用のディレクトリ作成

Cu の計算結果をコピーする計算に必要な基本ファイルのコピー
入力ファイルのひな形をコピー

Convolution 用の入力ファイルの編集と設定
スペース

start .¥inp.txt

inp.txt の編集

inp.txt

Calculation
Cu.txtCu の計算結果を用いる
convolution に用いる計算結果

Conv_out
Cu_conv_2.txt

出力ファイル名Gamma_max
5.

Convolution
End

Gamma_max
終状態のボケ幅の最大値

入力に必要な値はこれだけです
それ以外は消してくださいGNUPLOT用にコメントアウトしていた Cu.txt を元に戻す

スペースstart .¥Cu.txt

Cu.txt の編集

コメントアウトを外す

名前を付けて上書き保存

Cu 以下の ReConvolution ディレ
クトリで作業していますls

自分が作業しているディレクトリ、編集しているファイルの確認（編集しているファイル、場所は意図しているものものですか？)再Convolution 計算します

fdmnes_wn64.exe を実行します (64bit windows)

一瞬で計算が終わります

計算後の画面再Convolution 後に出来るファイル

ls

inp.txt 中の Conv_out タグで指定したファイル
再Convolution 結果

‘Cu_conv_2.txt’ コメントアウト忘れずにスペースstart .¥Cu_conv_2.txt

Cu_conv_2.txt の編集

コメントアウト(最初の1行)

名前を付けて上書き保存

再Convolution の結果と、それ以前の結果を比較プロット
1) wgnuplot
スペース

スペース カンマ

一つ上のディレクトリ

2) plot ‘Cu_conv_2.txt’ w l, ‘..¥Cu_conv.txt’ w lΓmax=5スペクトルのボケ具合を調整することができる

3) plot が終わったらGNUPLOTを閉じるΓmax=15Γmax = 1 〜 9 変化

Γmax = 15.0 固定

Γhole = 1.55 固定

Γhole = 1 〜 5 変化

Γmax を変化(Γmax は規定値のまま)(Γhole は固定値)

Γhole を変化

後半部分のスペクトルの変化

全体的なスペクトルのボカし

実験値

実験値

R=7.0 FDM

Convolution パラメーターの実験値へのフィット

FCC Cu
green R4

E_cut（旧Efermi）を変更するとconvolution 後の結果が変わる

E_cut

convolution パラメーターを実験に合わせるよう fit する(Rファクターでミニマム)

Metric_out
Cu_fit.log
Experiment
Cu_K_Cu_foil_Si311_50ms_140625.txt.nor
Gen_shift-20. 20. 100
Parameter

自動fit

Par_ecent
0. 50. 100.

Centra energy for the arctangents

Par_elarg
0. 50. 100.

Energy width for the arctangents

Ecent

Par_efermi-10. 10. 100.

Fermi energy

Elarg
Efermi

Par_gamma_hole
0. 10. 100.

Hole widthΓhole

Par_gamma_max
0. 20. 100.

Maximum width for the final states

Γmax

化合物の計算実習-Cu2O の計算例-

Cu2Oの計算準備

スペース

(1)
(2)
(3)
(4)
(5)

cd ¥calmkdir Cu2O
cd Cu2O
cp ..¥Cu¥fdmfile.txt .
cp ..¥Cu¥inp.txt .

準備したファイルを確認

ls

計算のホームへ移動
Cu2O 作業ディレクトリ作成
Cu2O 作業ディレクトリへ移動
計算に必要なファイルをコピー

現在の状況

計算用ディレクトリ(¥cal)の下
Cu と同じ階層に Cu2O ディレクトリ

Cu2O ディレクトリの下に

fdmfile.txt
inp.txt

編集

計算には2つのファイルが必要

Cu_inp.txt をベースにして
inp.txt を編集

Energpho は消す(今後はEF0で)Absorber1

吸収原子を1番目とする

Filout
Cu2O

出力する名前をCu2Oにするスペース

start .¥inp.txt

Range-5. 0.2 5. 0.5 20. 1. 50.

Filout
Cu

Edge
K

Range
-1. 0.2 5. 0.5 20. 1. 50.

Radius
5.0

Radius3.0

Green

Crystal3.61 3.61 3.61 90. 90. 90.
29 0.0 0.0 0.0
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5

Convolution

K-edgeクラスター半径5.0
FMS(Full multiple scattering)
で計算 ( Muffin-tin 近似 )Crystal4.2676 4.2676 4.2676 90.0 90.0 90.0
29 0.00 0.00 0.00 ! Cu
29 0.50 0.50 0.00 ! Cu
29 0.50 0.00 0.50 ! Cu
29 0.00 0.50 0.50 ! Cu
8 0.25 0.25 0.25 ! O
8 0.75 0.75 0.75 ! O

Convolution

End

End

inp.txt

inp.txt

Absorber のデフォルトは一番(何も書かなければ1番を選択したことになる)

吸収原子を一番目の原子とする
Absorber
1
Crystal4.2676 4.2676 4.2676 90.0000 90.0000 90.0000
29 0.0000 0.0000 0.0000 ! Cu
29 0.5000 0.5000 0.0000 ! Cu
29 0.5000 0.0000 0.5000 ! Cu
29 0.0000 0.5000 0.5000 ! Cu
8 0.2500 0.2500 0.2500 ! O
8 0.7500 0.7500 0.7500 ! Oクラスター半径

実習では R=5.0 で計算してもらいます

R5くらいは少なくとも必要2016.01版の結果

Cu2O (R=5.0 FMS( Muffin-tin )) での計算

fdmnes_win64.exe を実行します (64bit windows)
2.6 GHz Intel Core i5( VMware on Mac ) 約15秒
計算終了後のディレクトリを見ると・・・
ls

スペース

Cu2O_conv.txt の編集

start .¥Cu2O_conv.txt
コメントアウト(最初の1行)

スペース

start .¥Cu2O.txt

Cu2O.txt の編集

コメントアウト(最初の2行)

名前を付けて上書き保存

Cu2O のXANESスペクトルのプロット
1) wgnuplot
スペース

スペースカンマ

2) plot ‘Cu2O_conv.txt’ w l, ‘Cu2O.txt’ w l3) plot が終わったらGNUPLOTを閉じる

FDMNES: FMS(Muffin-tin), R=5.0
Cu-K: Cu2O

実験値

計算値(MT近似)

基本出力ファイルの解説-スペクトルの起源-Cu2O の計算例-

XANES スペクトルの起源

εεfUnoccupied
state

遷移確率

フェルミの黄金律εFValencestate

unoccupied state
終状態

core state
始状態

ħω

ħω

εi

Core
state

Cu-p (LDOS) with hole

遷移確率

始状態
終状態

電気双極子
…
終状態の部分状態密度

部分状態密度動径積分

FDMNES (R=7.0) FDM
終状態のLDOS

終状態のLDOS

Cu-p

EF

実験値
計算値(遷移確率)
計算値 (Lorentzian Broadening)
Cu-K Cu-foil

XANES スペクトル ∝ 局所状態密度

スペース

Cu-K, Cu2O, FMS
Absorber
1

inp.txt

FiloutCu2O
Range-5. 0.2 5. 0.5 20. 1. 50.
Edge
KRadius
5.0

(1)
(2)
(3)
(4)
(5)
(6)

cd ¥calmkdir Cu2O_dos
cd Cu2O_dos
cp ..¥Cu2O¥* .
rm Cu2O*.txt
start inp.txt* アスタリスク

inp.txt の編集

Densitystate_all
Green

Crystal4.2676 4.2676 4.2676 90.0000 90.0000 90.0000
29 0.0000 0.0000 0.0000 ! Cu
29 0.5000 0.5000 0.0000 ! Cu
29 0.5000 0.0000 0.5000 ! Cu
29 0.0000 0.5000 0.5000 ! Cu
8 0.2500 0.2500 0.2500 ! O
8 0.7500 0.7500 0.7500 ! O
Convolution

End

名前を付けて上書き保存

Densitystate_all(7)ls

ファイルの確認追加

Cu2O のDOSの計算

fdmnes_wn64.exe を実行します (64bit windows)
2.6 GHz Intel Core i5( VMware on Mac ) 約27秒
計算終了後
ls

出力ファイルが追加されている

FDMNES のバージョンの違いによって挙動が違うので注意

前回2016の実習のVer
2016.01.08

今回の実習のVer
2016.06.23 〜

この変更は とても大きいのに Change.log にも書いてない！

新: FDMNES 2016.06.23 〜

座標

Cu2O_bav.txt---- Atom_selec ———————————————————————————————————
Rsort =
4.651 Anx = 25
natome = 7, igrpt =Full_atom mode
ia
1
2
3
4
5
6
7

Z
29
8
29
29
8
29
8

it
0
2
1
1
2
1
2

igr ipr iap
1 0 1
5 2 3
2 1 4
4 1 146 2 201 1 256 2 3317, Cluster_comp = T, Cluster_mag = F

posx
0.00000
0.00000
3.01765
1.508820.00000
0.00000
3.01765

posy
0.00000
0.00000
0.00000
0.871123.484483.48448
1.74224posz igrpt PtGrName Comp
0.00000 17-3T
1.84793 16
3T
0.00000
1
1
T
2.463901
1T
0.61598
1
1
T
2.46390
1
1
T
3.07988
1
1
T

Axe Mag
T
F
T
F
F
F
F
F
F
F
F
F
F
F

中心原子から遠くなる

ia1 は Absorber なので sd0

sd2〜sd7(*) _bav.txt の情報はどこにも公開されてないので確定情報ではない

新: FDMNES 2016.06.23 〜

元になった結晶の通し番号(igr)

ia
1
2
3
4
5
6
7

Z
29
8
29
29
8
29
8

it
0
2
1
1
2
1
2

igr ipr iap
1 0 1
5 2 3
2 1 4
4 1 146 2 201 1 256 2 33posx
0.00000
0.00000
3.01765
1.508820.00000
0.00000
3.01765

posy
0.00000
0.00000
0.00000
0.871123.484483.48448
1.74224posz
0.00000
1.847930.00000
2.463900.61598
2.463903.07988sd0: Z=29 (Cu)sd2: Z=8 (O)sd3: Z=29 (Cu)sd4: Z=29 (Cu)sd5: Z=8 (O)sd6: Z=29 (Cu)sd7: Z=8 (O)クラスター原点(吸収原子）からの距離別

旧: FDMNES 〜2016.06.23

元になった結晶で対称性での分類番号(ipr)元になった結晶の通し番号(igr)---- Atom_selec
Rsort = 4.651 A
nx = 25
natome = 7, igrpt = 17, Cluster_comp = T, Cluster_mag = F
No Full_atom modeia Z it igr ipr iap posx posy posz
igrpt PtGrName Comp
1 29 0 1 0 1 0.00000 0.00000 0.00000 17 -3
T T F
2 8 2 5 2 3 0.00000 0.00000 1.84793 16 3
T T F
3 29 1 2 1 7 3.01765 0.00000 0.00000 1 1
T F F
4 29 1 2 1 12 0.00000 1.74224 2.46390 1 1
T F F
5 8 2 6 2 21 3.01765 1.74224 0.61598 1 1
T F F
6 29 1 1 1 27 3.01765 1.74224 2.46390 1 1
T F F
7 8 2 6 2 31 0.00000 3.48448 3.07988 1 1
T F F

Absorber

sd0
sd2
sd1

Cu*
O
Cu

O原子のLDOSは Cu2O_sd2.txt ファイルに記述される元構造では５番目の原子sd0: Z=29 (Cu)sd2: Z=8 (O)sd3: Z=29 (Cu)sd4: Z=29 (Cu)sd5: Z=8 (O)sd6: Z=29 (Cu)sd7: Z=8 (O)sd0 (Cu) と sd2 (O) をプロットするスペース

start .¥Cu2O_sd0.txt

Cu2O_sd0.txt の編集

コメントアウト(最初の1行)

名前を付けて上書き保存
スペース

start .¥Cu2O_sd2.txt

Cu2O_sd2.txt の編集

コメントアウト(最初の1行)

名前を付けて上書き保存

スペース

start .¥Cu2O_conv.txt

Cu2O_conv.txt の編集

コメントアウト(最初の1行)

名前を付けて上書き保存

GNUPLOT でプロットするフェルミレベルを0にする
1) wgnuplot
スペース

コロン
スペース

Cu-p軌道の指定
title を付ける

2) plot ‘Cu2O_sd0.txt’ u 1:7 w l t ‘Cu-p’

Cu2O : Cu原子p軌道(LDOS)※旧version(2018.11.30) 公式マニュアル p.38
Then one gets a new output file with the extension _sd0.txt. It contains, in column, first the
integral of the total atomic electron density, then the density and its integral of each (l,m)
followed by the sum over m, that is the density and its integral for each l. For magnetic
calculation, the expansion is split between the “up” and “down” components. By default, real
harmonics are used because they are directly the familiar px, py, pz, dxy, dxz... states. The
correspondence is the following:

1

2

3

4

5

7

6
13

13 —> p軌道

新version(2022.6.15) 公式マニュアル p.40（Densityの項目）
Then one gets a new output file with the extension _sd0.txt. (if the absorbing atom is excited) or_sd1.txt in the other case. By default they are expressed using the cubic harmonics, that is: s, px,
py, pz, dx2-y2, dz2… For magnetic calculation, the expansion is split between the “up” and “down”
components.

順番が変わっていることに注意！
旧ver.に近い表示（例えば、py,pz,px）にするには、
Harm_tessを追加する。
7 —> p軌道

complex spherical harmonics

real spherical harmonics
if m < 0
if m = 0
if m > 0

FDMNESn(1,-1)n(1,0)n(1,1)n(2,-2)n(2,-1)n(2,0)
n(2,1)n(2,2)

orbitalreal sphericalharmonics

complex spherical harmonics

n(0,0)n(2,0)sd(3z2-r2)n(2,2)n(2,-1)n(2,1)n(2,-2)d(x2-y2)

d(yz)

d(zx)

d(xy)

n(1,1)n(1,-1)pxpyn(1,0)pz

,(カンマ)後 改行せずにつなげる(1行で書く)
コロン

スペース

3) plot [] [0:4] ’Cu2O_sd0.txt’ u 1:7 w l t ‘Cu-p’,‘Cu2O_sd2.txt’ u 1:7 w l t ’O-p’,‘Cu2O_conv.txt’ u 1:($2*30) w l lw 3 t ‘XANES’(O-p), Cu-p
軌道混成由来Cu-p軌道由来

4) plot が終わったらGNUPLOTを閉じる$2*30
2列目に30を掛けた値をプロット

化合物の計算実習-BaTiO3 の計算例-

cubic, 221, Pm3-m
Absorber
1
FiloutBaTiO3Range-10. 0.2 0. 0.5 10. 1. 45.
Edge
K
Convolution
Green
Radius
4.0
Crystal4.0060 4.0060 4.0060 90.0000 90.0000 90.0000
22 0.0000 0.0000 0.0000 ! Ti
56 0.5000 0.5000 0.5000 ! Ba
8 0.5000 0.0000 0.0000 ! O
8 0.0000 0.5000 0.0000 ! O
8 0.0000 0.0000 0.5000 ! O
End

常誘電相

cif_2100863

Trigonal, 160, R3m

Absorber1

強誘電相

FiloutBaTiO3Range-10. 0.2 0. 0.5 10. 1. 45.
Edge
K

Rhombo の歪みが入っていると計算時間が爆発的に増えるので今回の実習では歪みは無くす（あとで説明)Convolution
Green
Radius
4.0
Crystal4.0036 4.0036 4.0036 89.8404 89.8400 89.8396
22 0.4880 0.4880 0.4880 ! Ti
56 0.0000 0.0000 0.0000 ! Ba
8 0.5116 0.5116 0.0195 ! O
8 0.0195 0.5116 0.5116 ! O
8 0.5116 0.0195 0.5116 ! O
End

内部座標のズレ

cif_014230

FDM (Full-potential)

FMS (Muffin-tin)
cubic, 221, Pm3-m
常誘電相

FMS

FDM

強誘電相特有のpre-edge

Trigonal, 160, R3m
強誘電相
FMS

FDM

FMS の範囲でもとりあえずは pre-edge が計算で出るので FMSで行う

計算時間 VMware on Mac
CPU: Intel Core i5-4258U 2.6G

single process (using MUMPS)

実習では

1) MT近似の FMS(green関数)を用いる
2) R=4.0Å

FDM だとR5だと 1h かかってしまう。

BaTiO3_Pm3-m----------------fdm_R3 : 5.7s
fdm_R4 : 36.4s
fdm_R5 : 49.7s
green_R3 : 4.0s
green_R4 : 25.0s
green_R5 : 57.1s
BaTiO3_R3m---------------fdm_R3 : 253.3s
fdm_R4 : 2738.3s
fdm_R5 : 4403.4s (1h13min)green_R3 :6.7s
green_R4 : 42.4s
green_R5 : 271.4s

常誘電相の計算準備
スペース

(1)
(2)
(3)
(4)
(5)
(6)

* アスタリスクcd ¥calmkdir BaTiO3_Pm3-m
cd BaTiO3_Pm3-m
cp ..¥Cu2O_dos¥* .
rm Cu*.txt
start inp.txt

Absorber1

常誘電相

FiloutBaTiO3Range-10. 0.2 0. 0.5 10. 1. 40.
Estart-13

Edge
K

convolution 後の Energy
領域をどこからスター
トするかRadius4.0

Densitystate_all
Green

Crystal4.0036 4.0036 4.0036 90.0 90.0 90.0
22 0.5 0.5 0.5 ! Ti
56 0.0 0.0 0.0 ! Ba
8 0.5 0.5 0.0 ! O
8 0.0 0.5 0.5 ! O
8 0.5 0.0 0.5 ! O
Convolution

End

議論しやすいように
強誘電相と同じセルの取り方をする
cell歪みなし
内部座標のズレなし

計算(7) fdmnes_win64.exe

2.6 GHz Intel Core i5 ( VMware on Mac ) 約86秒

計算結果作られるファイルls---- Atom_selec ------------------------------------------------------------------Rsort =3.467 Anx = 19
natome = 5, igrpt =Full_atom mode

ia
1
2
3
4
5

Z
22
8
8
8
56

it
0
3
3
3
2

igr ipr iap
1 0 1
3 3 5
5 3 6
4 3 7
2 2 15

OLD
2016.01.08

8, Cluster_comp = F, Cluster_mag = F

posx
0.00000
0.00000
0.00000
2.00180
2.00180posy
0.00000
0.00000
2.001800.00000
2.00180posz
0.00000
2.001800.00000
0.00000
2.00180

igrpt PtGrName Comp
mmm
F
Ti8
6
mm
F
O
6
mm
F
6
mm
F
Ba
1
1
F

NEW
2016.06.23 〜

sd0 (Ti)
sd3 (O)Axe Mag
T
F
T
F
F
F
F
F
F
F

スペース

start .¥BaTiO3_conv.txt

BaTiO3_conv.txt の編集

コメントアウト(最初の1行)

名前を付けて
上書き保存

スペース

start .¥BaTiO3_sd0.txt(Ti)

BaTiO3_sd0.txt の編集

コメントアウト(最初の1行)

名前を付けて
上書き保存

スペース

start .¥BaTiO3_sd3.txt(O)

コメントアウト(最初の1行)BaTiO3_sd3.txt の編集

名前を付けて
上書き保存

常誘電相

GNUPLOT でプロットする
1) wgnuplot

コロン

スペース

2) plot ‘BaTiO3_conv.txt’ u 1:2 w l3) plot が終わったらGNUPLOTを閉じる

強誘電相の計算準備スペース* アスタリスク

(1)
(2)
(3)
(4)
(5)
(6)

cd ¥calmkdir BaTiO3_R3m
cd BaTiO3_R3m
cp ..¥BaTiO3_Pm3-m¥* .
rm BaTiO3*.txt
start inp.txt

Absorber1

強誘電相

FiloutBaTiO3Range-10. 0.2 0. 0.5 10. 1. 40.
Estart-13
Edge
K
Radius4.0
Densitystate_allGreencell歪みをナシ(cubic にする)

Crystal4.0036 4.0036 4.0036 90.0 90.0 90.0
22 0.4880 0.4880 0.4880 ! Ti
56 0.0000 0.0000 0.0000 ! Ba
8 0.5116 0.5116 0.0195 ! O
8 0.0195 0.5116 0.5116 ! O
8 0.5116 0.0195 0.5116 ! O
ConvolutionEnd

内部座標の歪みを入れる

計算(7) fdmnes_win64.exe

2.6 GHz Intel Core i5 ( VMware on Mac ) 約15秒

計算結果作られるファイルls---- Atom_selec -------------------------------------------------------------------Rsort =3.550 Anx = 20
natome = 7, igrpt =Full_atom mode
ia
1
2
3
4
5
6
7

Z
22
8
8
56
56
56
56

it
0
3
3
2
2
2
2

igr ipr iap
1 0 1
3 3 2
4 3 7
2 2 8
2 2 102 2 142 2 15

16, Cluster_comp = T, Cluster_mag = F

posx
0.00000
0.00000
1.437850.00000
2.830970.00000
0.00000

posy
0.00000
1.608640.830140.00000
1.63446
3.268930.00000

posz
0.00000-0.97383
1.33765-3.38401-1.07253
1.23895
3.55043

igrpt PtGrName Comp
16Ti
3
T
1O
1
T
1
1
T
16
3
T
Ba
1
1
T
1
1
T
16
3
T

Axe Mag
T
F
F
F
F
F
T
F
F
F
F
F
T
F

sd0 (Ti)
sd3 (O)スペース

start .¥BaTiO3_conv.txt

BaTiO3_conv.txt の編集

コメントアウト(最初の1行)

スペース

start .¥BaTiO3_sd0.txt(Ti)

BaTiO3_sd0.txt の編集

コメントアウト(最初の1行)

スペース

start .¥BaTiO3_sd3.txt(O)

コメントアウト(最初の1行)BaTiO3_sd3.txt の編集

GNUPLOT でプロットする
1) wgnuplot

強誘電相
コロン

スペース

2) plot ‘BaTiO3_conv.txt’ u 1:2 w l3) plot が終わったらGNUPLOTを閉じる1) cd ¥cal2) wgnuplot,(カンマ)後 改行せずにつなげる(1行で書く)
コロン
スペース

3) plot ‘BaTiO3_Pm3-m¥BaTiO3_conv.txt’ u 1:2 w l t ‘Pm3-m’,’BaTiO3_R3m¥BaTiO3_conv.txt’ u 1:2 w l t ‘R3m’

原子位置のわずかなズレがPre-edge に出てくる

R=4.0Å (FMS)

4) plot が終わったらGNUPLOTを閉じる1) cd ¥cal¥BaTiO3_Pm3-m2) wgnuplot

常誘電相(Pm3-m)
スペース,(カンマ)後 改行せずにつなげる(1行で書く)

3) plot [-5:40][:10] ’BaTiO3_sd0.txt’ u 1:7 w l t ‘Ti-p’,‘BaTiO3_sd0.txt’ u 1:14 w l t ‘Ti-d’,‘BaTiO3_sd3.txt’ u 1:7 w l t ‘O-p’,'BaTiO3_conv.txt' u 1:($2*130) w l lw 3 t ‘XANES’4) plot が終わったらGNUPLOTを閉じる

Ti-d

O-p

Ti-p にはd軌道は混成してない！
Ti-p1) cd ¥cal¥BaTiO3_R3m2) wgnuplot

強誘電相(R3m)
スペース,(カンマ)後 改行せずにつなげる(1行で書く)

3) plot [-5:45][:10] ’BaTiO3_sd0.txt’ u 1:7 w l t ‘Ti-p’,‘BaTiO3_sd0.txt’ u 1:14 w l t ‘Ti-d’,‘BaTiO3_sd3.txt’ u 1:7 w l t ‘O-p’,'BaTiO3_conv.txt' u 1:($2*130) w l lw 3 t ‘XANES’4) plot が終わったらGNUPLOTを閉じる

Ti-d

O-p

Ti-p (Pre edge の元になる軌道)
反転中心対称性の破れにより
Ti-d と O-p の反結合軌道に
Ti-p が混成する

常誘電相(Pm3-m)反転対称性がある場合

偶

偶

奇

𝐻 = 𝐻𝑑 + 𝐻𝑝 + 𝑉
𝜓 = 𝑐𝑑 𝜓𝑑 + 𝑐𝑝 𝜓𝑝𝐻ȁ𝜓⟩ = 𝐸 ȁ𝜓⟩𝐸𝑑𝜓𝑑 𝑉 𝜓𝑝
𝜓𝑝 𝑉 𝜓𝑑

𝐸𝑝

𝑐𝑑
𝐸
=
𝑐𝑝
0

0
𝐸

on-siteで Ti の p 軌道 と d 軌道は混成しない
強誘電相(R3m)反転対称性がない場合

偶

奇

奇

on-siteで Ti の p 軌道 と d 軌道は混成する

𝑐𝑑
𝑐𝑝

偶関数

s

d(x2-y2)d(3z2-r2)

d(yz)

奇関数

px

py

pz

d(zx)

d(xy)

E1E1 遷移(dipole-transition) でも対称性の破れにより
pre-edge が育つ

R=4.0Å (FMS)22 0.5000 0.5000 0.5000 ! Ti
56 0.0000 0.0000 0.0000 ! Ba
8 0.5000 0.5000 0.0000 ! O
8 0.0000 0.5000 0.5000 ! O
8 0.5000 0.0000 0.5000 ! O

Ti の内部座標を x,y,z 方向ΔだけシフトさせたときのXANES

R=4.0Å (FMS)

仮想的な歪みのXANESの計算

Absorber
1

多極子展開
デフォルトは Dipole transition

FiloutBaTiO3Range-15. 0.2 0. 0.5 10. 1. 45.

Quadrupole
Octupole
Dipmag
E1E2
E1E3
E2E2
E3E3
E1M1
M1M1
No_E1E1
No_E2E2
No_E1E2
No_E1E3(E1E2 and E2E2)(E1E3 and E3E3)(E1M1) and (M1M1)

QuadrupoleEdge
K

四極子展開を考慮した計算

Convolution

Green
Radius
5.0
Crystal4.0060 4.0060 4.0060 90.0000 90.0000 90.0000
22 0.0000 0.0000 0.0000 ! Ti
56 0.5000 0.5000 0.5000 ! Ba
8 0.5000 0.0000 0.0000 ! O
8 0.0000 0.5000 0.0000 ! O
8 0.0000 0.0000 0.5000 ! O

EndBaTiO3 常誘電相(Pm3-m)四極子転移によりd軌道が混ざる(非常に小さい)

デフォルトで E1E1 が 自動で入ってしまうので E2E2のみの計算をしたければ 必ずNo_E1E1 をする必要があ
る

双極子転移

FiloutTiO2

E2E2のみ計算

Quadrupole
No_E1E1
No_E1E2

四極子転移

Range
-10. 0.2 0. 0.5 10. 1. 40.

パラメーターの参照スペクトルへのフィット～FeO6を例題として～

Filout
FeO6_NoFit

FeO6 (Fit無し:NoFit)
(1)
(2)
(3)
(4)
(5)
(6)
(7)

cd ¥calmkdir FeO6_NoFit
cd FeO6_NoFit
cp ..¥Cu¥fdmfile.txt .
cp ¥fdmnes¥Sim¥Test_stand¥in¥FeO6* .
mv FeO6_inp.txt inp.txt
start inp.txt

(8)
(9)

fdmnes_win64.exe(FeO6_NoFit_conv.txtの一行目に#)(10) wgnuplot(11) plot ‘FeO6_NoFit_conv.txt’ u 1:($2*35) w l(12) replot ‘FeO6_exp.txt’ u 1:2 w l

Range-2. 0.1 2. 0.2 5. 0.5 20. 1. 50. 2. 80.
Radius3.0
GreenMolecule
2.16 2.16 2.16 90. 90. 90.
26 0.0 0.0 0.0
8 1.0 0.0 0.0
8 -1.0 0.0 0.0
8 0.0 1.0 0.0
8 0.0 -1.0 0.0
8 0.0 0.0 1.0
8 0.0 0.0 -1.0
Convolution
Estart-10.

一先ず
コメントアウト! Experiment!FeO6_exp.txt! Gen_Shift! -6. -2. 21

Minimum and maximum energy shift
between calculation and experiment andnumber of value to test

! Parameter! Par_abc! -10. 0. 3.

General contraction or expansion in %Minimum, Maximum, NumberOfValuesToTest

Maximum width for the final states! Parameter! Par_Gamma_max
max
Minimum, Maximum, NumberOfValuesToTest! 10. 15. 3

ΓFeO6 (Fit有り:Fit)
(1)
(2)
(3)
(4)
(5)
(6)
(7)

cd ¥calmkdir FeO6_Fit
cd FeO6_Fit
cp ..¥Cu¥fdmfile.txt .
cp ¥fdmnes¥Sim¥Test_stand¥in¥FeO6* .
mv FeO6_inp.txt inp.txt
start inp.txt(8)fdmnes_win64.exe

Filout
FeO6_Fit
Range-2. 0.1 2. 0.2 5. 0.5 20. 1. 50. 2. 80.
Radius3.0
GreenMolecule
2.16 2.16 2.16 90. 90. 90.
26 0.0 0.0 0.0
8 1.0 0.0 0.0
8 -1.0 0.0 0.0
8 0.0 1.0 0.0
8 0.0 -1.0 0.0
8 0.0 0.0 1.0
8 0.0 0.0 -1.0
Convolution
Estart-10.
Experiment
FeO6_exp.txt

Gen_Shift-6. -2. 21

Minimum and maximum energy shift
between calculation and experiment andnumber of value to test

Parameter
Par_abc-10. 0. 3.

General contraction or expansion in %Minimum, Maximum, NumberOfValuesToTest

Maximum width for the final states
Parameter
Par_Gamma_max
max
Minimum, Maximum, NumberOfValuesToTest
フィッティングの結果はFeO6_Fit_fit.txtに出力されている。 10. 15. 3

Γ実験スペクトルとの比較
(1)
(2)
(3)
(4)
(5)

(FeO6_Fit_conv.txtの一行目に#)wgnuplot
plot ‘FeO6_Fit_conv.txt’ u ($1-5.40):($2*35) w l t ‘Fit’
replot ‘..¥FeO6_NoFit¥FeO6_NoFit_conv.txt’ u ($1-5.40):($2*35) w l ‘NoFit’
replot ‘FeO6_exp.txt’ u 1:2 t ‘Exp’

𝑎𝑏𝑐 = −4.53915%
100 − 4.53915
𝑎, 𝑏, 𝑐 =× 2.061100
𝑎, 𝑏, 𝑐 = 2.061 …

計算スペクトルのファイルは、フィッティング後のパラメータが使用されている。

新version(2022.6.15) 公式マニュアル p.68

新version(2022.6.15) 公式マニュアル p.68

例えば、二つの原子のx座標をシフトしたいとき、Parameter
Par_dposx-10. 0. 3 1

Parameter
Par_dposx-10. 0. 3 2

3つ１番の原子のx座標を-10, -5, 0 shiftさせてパラメータフィッティングを行う
3つ2番の原子のx座標を-10, -5, 0 shiftさせてパラメータフィッティングを行う

いちいち、ParameterおよびPar_dposxのタグを付ける必要がある。

※試行パラメータ数が増えると、その分だけスペクトル計算を内部で行うため、計算に時間が掛かることに注意。

Have a beautiful day !

Appendix

計算時間

Pd85

FDM

nonSCF R6: 2時間48分
吸収原子数: 7個

基底関数の大ざっぱな特徴(FDM)(LO basis)(PW basis)

有限差分 局在基底
平面波基底================== ======== =========== ==========
メモリ消費
large
small
medium
計算速度(小規模系) slow
fast
fast
計算速度(大規模系) fastvery fast
slow
収束性
easy
complicated very easy================== ======== =========== ==========*) メモリは今回の実習では1Gも使いません

参考) 産業利用に役立つ第一原理計算コードの選び方
http://www.spring8.or.jp/ext/ja/iuss/htm/text/15file/computational_science/1st/5.nakada.pdf

1-nodeXeon E5-2667 v2 (3.3GHz)
DDR3-1866 16x16
node: 2ノード
CPU: 32core
メモリ: 512G

計算速度（だけ）比較、基本はほぼデフォルト値でテスト(基底とかカットオフとかの比較を考えるといい加減)
16coreYTiO3(k:444)

WIEN2k

867.01

Brookite(k:997)

VASP(high)

170.646478.646

PWscf

OpenMX
band

OpenMXcluster

311.524

1096.748

GPAW
PW

58.881201.735

GPAW
LCAO

642.071434.355

C60(k:111)42590.01

74.38819.267

18.64

Graphene
1x1x1(k:24241)155.584

6.148

11.63510.276327.155

H2 O
mol64223.02

8.581

6.086

Methane

5.651

5.295

4.896

56.252(1core)Nitro
Benzene59.51814.911

7.585

20.367

8.319

CP2K

Allsite モード
内容は 2015.01.05 版で検証

allsite のときは Absorber を外す

Pd6

3.7Å

2.6Å

3.7Å

(構造緩和:VASP)

Absorber の代わりに
allsite で計算する!Absorber!1
allsiteもし、Absorber1
allsitesite 1 で対称性でグルーピングされたサイトをすべて計算する
対称性が低ければ、普通一つだけになるので実質的には absorber 原子だけの計算になる
むしろ allsite のみで計算したほうがよい(時間はかかる)ipr = 1, Z = 46, natomsym =1

igr posx posy posz
sym code
1 0.50000 0.50000 0.50000
E 1
ipr = 2, Z = 46, natomsym =2

同一サイト内の結びつけらた２つの原子 igr posx posy posz
sym code(中身は同じ結果になる)
2 0.50100 0.49950 0.63220
E 1

Pd6_atom1_2.txt
Pd6_atom2_2.txt

3 0.50100 0.63220 0.49950

ipr = 3, Z = 46, natomsym =d_011 431

igr posx posy posz
sym code
4 0.50200 0.63180 0.63180
E 1

全部で5つのサイト

ipr = 4, Z = 46, natomsym =1

igr posx posy posz
sym code
5 0.59480 0.56520 0.56520
E 1

Pd6_atom1_1.txt
Pd6_atom1_2.txt
Pd6_atom2_2.txt
Pd6_atom1_3.txt
Pd6_atom1_4.txt
Pd6_atom1_5.txt

ipr = 5, Z = 46, natomsym =1

igr posx posy posz
sym code
6 0.40740 0.56660 0.56660
E 1

*_bav.txt の最後
Convolution は site1 で行っている(default absorber で convolution する)---- Convolution --------------------------------------------------------------------------------------------------------Arctangent model
Gamma_max = 15.00, Ecent = 30.00, Elarg = 30.00
Gamma_hole = 7.94, Efermi + Shift = -5.08, site 1

Pd6_1.txt
Pd6_1_sd0.txt
Pd6_1_sd2.txt
Pd6_1_sd3.txt
Pd6_1_sd4.txt..
..
Pd6_5.txt
Pd6_5_sd0.txt
Pd6_5_sd2.txt
Pd6_5_sd3.txt
Pd6_5_sd4.txt
Pd6_atom1_1.txt
Pd6_atom1_2.txt
Pd6_atom1_3.txt
Pd6_atom1_4.txt
Pd6_atom1_5.txt
Pd6_atom2_2.txt
Pd6_bav.txt
Pd6_conv.txt

default absorber 以外では
convolution されてないので注意

全体のログ
default absorber での convolution

計算後に convolution する
Pd3_1.txt
Pd3_1_sd0.txt
Pd3_1_sd2.txt
Pd3_1_sd3.txt
conv.inp
fdmfile.txt ( <—- conv.inp を読むように修正 )spacegroup.txt
xsect.dat! Main indata file for fdmnes
Calculation
Pd3_1.txt

注意) 同一ディレクトリ内だとCalculation名_conv.txt ではダメ

Conv_out! To specify an output file name
Pd3_1_conv.txt

ConvolutionEnd

Pd3_1.txt
Pd3_1_conv.txt
Pd3_1_sd0.txt
Pd3_1_sd2.txt
Pd3_1_sd3.txt
conv.inp
fdmfile.txt
spacegroup.txt
xsect.datallsite 時には

1) FDmakeConvAllsite.py を実行
conv*.inp
fdmfile.txt
作成2) fdmnes 実行
fdmfile.txt にもとづき conv*.inp の数だけ
Convolution を行う
3) FDplot_xas.py -i conv.inp -a 1 2 3 4 5-a オプションで引いた site の平均のXASをプロット&EPS化
さらに、*_0_conv.txt に平均のデーターを出力

FDplot_XAS.py -t Pd6_1 -a 1 2 3 4 5
同じ動作
FDplot_XAS.py -t Pd6_2 -a 1 2 3 4 5
INP name= read_pdb.inp
TEXT name= Pd6_1--- average modesum : Pd6_1_conv.txt
sum : Pd6_2_conv.txt
sum : Pd6_3_conv.txt
sum : Pd6_4_conv.txt
sum : Pd6_5_conv.txt

デフォルトで読み込む
read_pdb.inp
からの filout 情報のファイルが読めないとプログラムが止まるので、実際に読めるファイルの -t (生データ)
ファイルを与える
かつ 平均化モードならば

INP FILE= read_pdb.inp (.inp)
DATA FILE (filout) = Pd6 (.txt)
BAV FILE (filout) = Pd6 (_bav.txt)

指定したファイルの連番ファイルが平均されるallsite 時にサイトごとのプロット
1) 2) fdmnes 実行までは同じ

3) FDplot_xas.py -a 1or3) FDplot_xas.py -i conv*.inp
convolution に用いた conv*.inp ファイルを読み込むとその inp に対応した plot をするallsite 時にサイトごとの直接プロット

1
Pd6_1_sd4.txt Pd6_4_conv.txt Pd6_atom1_5.txt conv_1.inp
CONTCAR_Pd6
Pd6_2.txt
Pd6_4_sd0.txt Pd6_atom2_2.txt conv_2.inp
FDmakeCconvAllsite.py Pd6_2_conv.txt Pd6_4_sd2.txt Pd6_bav.txt conv_3.inp
FDplot_XAS.py
Pd6_2_sd0.txt Pd6_4_sd3.txt Pd6_conv.txt conv_4.inp
FDplot_XASs.py
Pd6_2_sd2.txt Pd6_4_sd4.txt ReadFdm.py
conv_5.inp
MY_PYTHON
Pd6_2_sd3.txt Pd6_5.txt
ReadFdmBav.py fdLDOS0_specified.py
PBS_log
Pd6_2_sd4.txt Pd6_5_conv.txt ReadFdmConv.py fdm.out
POSCAR
Pd6_2_sd5.txt Pd6_5_sd0.txt ReadFdmInp.py fdmfile.txt
POSCAR.fdmnes
Pd6_3.txt
Pd6_5_sd2.txt ReadFdmSd.py job_neptunium_fdmnes.sh
Pd6_0_conv.txt
Pd6_3_conv.txt Pd6_5_sd3.txt SAE
read_pdb.inp
Pd6_1.txt
Pd6_3_sd0.txt Pd6_5_sd4.txt SAE_myspacegroup.txt
Pd6_1_conv.txt
Pd6_3_sd2.txt Pd6_atom1_1.txt XAS.eps
xsect.dat
Pd6_1_sd0.txt
Pd6_3_sd3.txt Pd6_atom1_2.txt XAS.pdf
Pd6_1_sd2.txt
Pd6_3_sd4.txt Pd6_atom1_3.txt XAS.png
Pd6_1_sd3.txt
Pd6_4.txt
Pd6_atom1_4.txt conv.inp

元ファイル: Pd6_1.txt
Convolutionファイル: Pd6_1_conv.txt

FDplot_XAS.py -c Pd6_1 -t Pd6_1

allsite 時に *.inp (fileout)にしたがってサイトごとプロット

1
Pd6_1_sd4.txt Pd6_4_conv.txt Pd6_atom1_5.txt conv_1.inp
CONTCAR_Pd6
Pd6_2.txt
Pd6_4_sd0.txt Pd6_atom2_2.txt conv_2.inp
FDmakeCconvAllsite.py Pd6_2_conv.txt Pd6_4_sd2.txt Pd6_bav.txt conv_3.inp
FiloutFDplot_XAS.py
Pd6_2_sd0.txt Pd6_4_sd3.txt Pd6_conv.txt conv_4.inp
FDplot_XASs.py
Pd6_2_sd2.txt Pd6_4_sd4.txt ReadFdm.py
conv_5.inp
Pd19
MY_PYTHON
Pd6_2_sd3.txt Pd6_5.txt
ReadFdmBav.py fdLDOS0_specified.py
PBS_log
Pd6_2_sd4.txt Pd6_5_conv.txt ReadFdmConv.py fdm.out
Calculation
POSCAR
Pd6_2_sd5.txt Pd6_5_sd0.txt ReadFdmInp.py fdmfile.txt
POSCAR.fdmnes
Pd6_3.txt
Pd6_5_sd2.txt ReadFdmSd.py job_neptunium_fdmnes.sh Pd19_1.txt
Pd6_0_conv.txt
Pd6_3_conv.txt Pd6_5_sd3.txt SAE
read_pdb.inp
Pd6_1.txt
Pd6_3_sd0.txt Pd6_5_sd4.txt SAE_myspacegroup.txt
Conv_out
Pd6_1_conv.txt
Pd6_3_sd2.txt Pd6_atom1_1.txt XAS.eps
xsect.dat
Pd6_1_sd0.txt
Pd6_3_sd3.txt Pd6_atom1_2.txt XAS.pdf
Pd19_1_conv.txt
Pd6_1_sd2.txt
Pd6_3_sd4.txt Pd6_atom1_3.txt XAS.png
Pd6_1_sd3.txt
Pd6_4.txt
Pd6_atom1_4.txt conv.inp

Convolution

END

conv_1.inp

FDplot_XAS.py -i conv_1.inp

Pd-dimer---- Symsite ---------------------------------------------------------------------------------------------------------ipr = 1, Z = 46, natomsym =2

igr posx posy posz
sym code
1 0.50000 0.50000 0.50000
E 1
2 0.50000 0.50000 0.66460
C2_110 10

同一サイト内の結びつけらた２つの原子(中身は同じ結果になる)
Pd2_atom1.txt
Pd2_atom2.txt

スピン分極計算
2015版ノート

Atom のセクションが必須となる

3d

4s

(1)

(2)

antiferro注意)デフォルトだと fix-spin

SCF_mag_free だけだと no SCF 計算になる
ia Z ch_val ch_core ch_total ch_up-dn ch_out Charge
1 26 7.813 17.962 25.776 5.751 0.029 0.224
Number of electron in the valence orbital of the absorbing atom:
Integrated Mulliken
non excited atom = 5.751 6.000
excited atom = 6.784 7.000
妙に大きいスピンモーメントが出てくる---- Potcomp
VmoyF = -19.370 eV,

Vmoyc = -8.958 eV

Cycle 1, Fermi Energy = -4.083 eV, Cluster Energy_KS = -61.808 eV
Level val absorb = -5.133 eV

ia Z Energy_KS
1 26 -61.808

Chargeup-dn pop_orb_val(l) l Radius
0.224
3.111
6.358
2 1.36703

FDMNES without hole

スピン分極がアホみたいに大きい

VASP

absorbeur
range
edge
green
radiusrelativis
magnetism
scf
r_self
scf_mag_f
atom
crystaldensitystate_allnonexc

SCF_mag_free (スピンモーメントFree)SCF ( SCF 計算)
スピン分極が大きい (Highspin の解？)

Cycle 1, Fermi Energy = -4.091 eV, Cluster Energy_KS = -61.844 eV
Level val absorb = -5.140 eV
ia Z Energy_KS
1 26 -61.844

Chargeup-dn pop_orb_val(l) l Radius
0.224
3.119
6.359
2 1.36703....
Cycle 5, Fermi Energy = -4.694 eV, Cluster Energy_KS = -63.285 eVLevel val absorb = -5.723 eV
ia Z Energy_KS Charge
up-dn pop_orb_val(l) l Radius
1 26 -63.285
0.224
2.964
6.413
2 1.36703----- prep_next_iter ----------------------------------------------------------------------

d軌道
up(6), dn(0)Delta_energ =0.830 eV < Delta = 1.000 eV, Weight = 0.10000

スピンの初期配置にかなり敏感
Cycle 6, Fermi Energy = -5.365 eV, Cluster Energy_KS = -61.155 eV
Level val absorb = -5.955 eV
ia Z Energy_KS
1 26 -61.155

Chargeup-dn pop_orb_val(l) l Radius
0.224
2.019
6.494
2 1.36703

good!!
初期スピン配置
Atom
26 2 3 2 4.0 2.0 4 0 1.0 1.0

Crystal2.4855 2.4855 2.4855 109.4712 109.4712 109.4712
1 -0.0000 0.0000 0.0000 ! Fe

FDMNES 2015.10.15版
Linux での並列化版のビルド
およびMUMPSライブラリでの高速化について

OpenMPI + Intel Compiler + MKL

MUMPS 等の疎行列ソルバーを使ったFDMNESの高速化について2015.07.03以降のFDMNES には 彼らの仕事がマージされている
とてつもなく高速化される
ただし、ビルドがかなり煩雑になっているので注意が必要

2015.07.03以降のFDMNES には3つの外部ライブラリが必要+ さらに BLAS/BLACS/ScaLAPACKMUMPS Library: a parallel sparse direct solver

http://mumps.enseeiht.fr/

ユーザー登録が必要

SCOTCH libraryhttps://www.labri.fr/perso/pelegrin/scotch/

説明

http://gforge.inria.fr/projects/scotch/DL

METIS library
http://glaros.dtc.umn.edu/gkhome/metis/metis/download

MUMPS 5.0.1

Makefile.INTEL.PAR ベース
CC = mpicc
FC = mpif90
FL = mpif90

必要ライブラリ
OpenMPIBLAS
BLACS
ScaLAPAC

makefile.inc
makemake z

4つのライブラリが作られる

lib/libdmumps.a
lib/libmumps_common.alib/libpord.alib/libzmumps.a

scotch 6.0.4
cd srcMakefile.inc
Make.inc/Makefile.inc.i686_pc_linus2 ベース
LDFLAGS= -lz -lm -pthread -lrt

追加
make
make esmumps
METIS library

libscotch/libscotch.alibscotch/libscotcherr.aesmumps/libesmumps.a
CMake 2.8 以上が必要

make config cc=icc prefix=~/lib/metis
make~/lib/metis/lib/libmetis.amake install

.SUFFIXES: .f90
FC = mpif90
EXEC = fdmnes
FFLAGS = -c -Iincludemumps

FDMNES の Makefile
Intel Compiler, MKL and OpenMPIMUMPS

OBJ = main.o clemf0.o coabs.o convolution.o dirac.o fdm.o fprime.o general.o lecture.o mat.o metric.o ¥minim.o optic.o potential.o selec.o scf.o spgroup.o sphere.o tab_data.o tddft.o tensor.o ¥mat_solve_mumps.oall: $(EXEC)$(EXEC): $(OBJ)$(FC) -o $@ $^ -Llibmumps -ldmumps -lmumps_common -lpord -lzmumps ¥-Llibscotch -lscotch -lscotcherr ¥scotch-Llibesmumps -lesmumps ¥-L$(HOME)/lib/metis/lib -lmetis ¥metis
BLAS, LAPACK-mkl ¥-lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64-lpthreadMUMPS

BLACS, ScaLAPACK

sphere.o: sphere.f90$(FC) -O1 -c $*.f90%.o: %.f90$(FC) -O2 -o $@ $(FFLAGS) $?
[今の場合の想定しているディレクトリ構成]
includemumps -> ../mumps/include
libesmumps -> ../scotch/src/esmumps
libmumps -> ../mumps/lib
libmumpsseq -> ../mumps/libseq
libscotch -> ../scotch/src/libscotch
libscotchmetis -> ../scotch/src/libscotchmetis

FCC Cu
FDM R=3.0
FDMNES 2015.01.05
FDMNES 2015.10.06 (with MUMPS)

34.8 sCPU
7.6 sCPU
4倍〜5倍 速度向上

FDM R=4.0

FDMNES 2015.01.05
FDMNES 2015.10.06 (with MUMPS)

240.9 sCPU
18.8 sCPU
13倍 速度向上

ZrO2 表面構造
FDMNES 2015.01.05

33 h, 9 min, 56 sCPU

FDMNES 2015.10.06 (with MUMPS)
0 h, 10 min, 24 sCPU
190倍 速度向上