Windows での FDMNES の実行#
インストールとデモデータの計算#
操作#
FDMNES Web サイト の Download から fdmnes_Windows_64 を選択してダウンロードする.
fdmnes_Win64_2022_06_15.zip (頻繁に更新されるため,日付は異なる) の中の fdmnes_Win64 フォルダをデスクトップに展開する.
コマンドプロンプトを起動し,
cd C:\Users\Asakura\Desktop\fdmnes_Win64
などと入力して,フォルダに移動.fdmnes_win64.exe
と入力して,fdmnes を実行.
FDMNES program, Revision 15th of June 2022
Date = 10 07 2022
Time = 21 h 42 mn 33 s
などの文字列が表示され,計算結果が出力されていれば実行はできている.
あまり古くない PC であれば,数秒程度で計算は終了するはずである.(手元の環境だと 8 秒程度)
結果の確認#
操作#
Sim\Test_stand\
にある Cu から始まる計算結果のファイルのうち,Cu_conv.txt
を開くと, Energy と <xanes> の列が現れる.FDMNES には GUI は無いので,このデータを Excel で開いてプロットしてみる.

FDMNES に含まれるテスト用入力ファイルによる Cu K-edge の計算例#
このようにプロットされていれば正しく計算ができている.
デモデータの説明#
多くの理論計算プログラムと同じく,計算内容を指示した入力ファイルを元にいくつかの出力ファイルが得られる.
操作#
fdmfile.txt
を開くと以下のようになっている.
! General indata file for FDMNES
! with indata files examples
1
Sim/Test_stand/in/Cu_inp.txt
Sim/Test_stand/in/Ba2ZnUO6_inp.txt
Sim/Test_stand/in/Ca3Co2O6_inp.txt
Sim/Test_stand/in/Cr_inp.txt
Sim/Test_stand/in/Cr_conv_inp.txt
(以下略)
fdmfile.txt
には一度の計算で実行したい入力ファイルの一覧を書き込むことになる.最初は多数のデモ用の入力ファイルが記載されている. ! から始まる行は無視される.最初の行は,4行目の 1 である.これは次の行から始まる入力ファイルについて,1つ目の入力ファイルだけを計算することに対応している.よって, Sim/Test_stand/in/Ba2ZnUO6_inp.txt
以下の行は今回は無視されたことになる.
次に,今回計算された入力ファイルである Cu_inp.txt をメモ帳で開くと以下の通りである.
! Fdmnes indata file
! Calculation for the copper K-edge in copper cfc
! Finite difference method calculation with convolution
Filout
Sim/Test_stand/Cu
Range ! Energy range of calculation (eV)
-1. 0.2 5. 0.5 20. 1. 50. ! first energy, step, intermediary energy, step ..., last energy
Radius ! Radius of the cluster where final state calculation is performed
3.0 ! For a good calculation, this radius must be increased up to 6 or 7 Angstroems
Crystal ! Periodic material description (unit cell)
3.61 3.61 3.61 90. 90. 90. ! a, b, c, (Angstroem) alpha, beta, gamma (degree)
29 0.0 0.0 0.0 ! Z, x, y, z (unit cell unit)
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5
! Convolution keyword : broadening with a width increasing versus energy as an arctangent
Convolution
End
やはり, ! から始まる行は無視される(コメント)行である.
多数のコメントで説明されているので,FEFF を使った XANES シミュレーションや他の理論計算プログラム利用経験があれば,内容はおおよそ想像できるであろう.以下に各行の意味を簡単に説明する.なお,FDMNES のマニュアルは丁寧に書かれているため,マニュアルを読むことを勧める.この文章はあくまで補助のために書かれている.
- Filout
次の行に来るパス(フォルダとファイル名)が結果ファイルの元の名前になる.今回は,
Sim/Test_stand/Cu
なのでSim/Test_stand/Cu.txt
やSim/Test_stand/Cu_conv.txt
などのファイルが出力された.- Range
Energy range of calculation (eV) とあるとおり,具体的に計算したいエネルギー点を指定する.例えば,
-1. 0.2 5. 0.5 20. 1. 50.
とあるので, -1 eV から 0.2 eV 刻みで 5 eV まで, 5 eV から 0.5 eV 刻みで 20 eV まで, 20 eV から 1.0 eV 刻みで 50 eV まで計算される.- Radius
Radius of the cluster where final state calculation is performed とあるとおり,理論計算を行うクラスターのサイズを決めている.今回は 3.0 であるが,これも For a good calculation, this radius must be increased up to 6 or 7 Angstroems とコメントにあるとおり,通常,もう少し大きな数にした方が実験データに近くなっていく.
- Crystal
結晶構造における格子定数と各原子位置を示す.以下の書式を見れば理解できるであろう.
Crystal ! Periodic material description (unit cell)
3.61 3.61 3.61 90. 90. 90. ! a, b, c, (Angstroem) alpha, beta, gamma (degree)
29 0.0 0.0 0.0 ! Z, x, y, z (unit cell unit)
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5
- Convolution
これはキーワードでとりあえず書けばよいと思ってよい.
- End
入力ファイルの終わりをしめす.
大きなクラスターによる計算#
さて,
! For a good calculation, this radius must be increased up to 6 or 7 Angstroems
とのことなので,実際に Sim
にある Cu_inp.txt をメモ帳などのテキストエディタで開いて,
! Fdmnes indata file
! Calculation for the copper K-edge in copper cfc
! Finite difference method calculation with convolution
Filout
Sim/Test_stand/Cu
Range ! Energy range of calculation (eV)
-1. 0.2 5. 0.5 20. 1. 50. ! first energy, step, intermediary energy, step ..., last energy
Radius ! Radius of the cluster where final state calculation is performed
7.0 ! For a good calculation, this radius must be increased up to 6 or 7 Angstroems
Crystal ! Periodic material description (unit cell)
3.61 3.61 3.61 90. 90. 90. ! a, b, c, (Angstroem) alpha, beta, gamma (degree)
29 0.0 0.0 0.0 ! Z, x, y, z (unit cell unit)
29 0.5 0.5 0.0
29 0.5 0.0 0.5
29 0.0 0.5 0.5
! Convolution keyword : broadening with a width increasing versus energy as an arctangent
Convolution
End
のように,Radius を 3.0 から 7.0 に変更し,もう一度コマンドプロンプトから fdmnes_win64.exe
を実行してみると,計算には 2, 3 分程度かかったはずである.
今回は,Cu 金属というとても簡単なモデルについて計算したため,計算時間はほとんどかからなかった.しかし,3.0 の時にかかった時間を 10 秒,7.0 の時にかかった時間を 120 秒とすると,12倍の計算時間がかかったことになる.仮に非常に小さなサイズでも1時間かかる計算であれば,十分なサイズで計算するには12時間かかることになり,少なくとも PC で計算するにはかなり時間がかかる.
最近の PC に搭載されている CPU は複数のコアからなる.ここまで Windows 上で実行したプログラムは並列化されているバージョンではない.並列化されているバージョンも配布されているが,Windows ではなく,Linux 上でしか使えない.但し,Windows 10 以上であれば,Windows 上で Linux 環境を利用できる WSL (Windows Subsystem for Linux) が容易に利用できる.以下では,WSL をつかって,並列化された FDMNES をインストールおよび実行する方法について説明する.
並列化された FDMNES のインストール (Windows)#
手順#
操作#
Windows 10 用 Windows Subsystem for Linux のインストール ガイド にしたがって,Debian GNU/Linux をインストールする.途中で再起動を求められたら再起動すること.
Windows キーを押しながら,X キーを押し,Windows PowerShell(管理者用)を起動する.
wsl --install -d Debian
と入力して実行(Enter キーを押す)Debian GNU/Linux (以下,単に Debian)を起動する.(再起動後に自動的に起動するはず)
注釈
Linux の経験がない場合は,WSL でデフォルトに設定されている Ubuntu を選択 (wsl --install
とだけ実行) してもよい.Debian と Ubuntu はよく似ているので利用には全く問題がない.以下で Ubuntu と読み替えて進めること.
注釈
すでに Windows 11 に移行している人が多いかもしれない.WSL の利用は同じだと思われるので適宜読み替えて試してみてください.

スタートメニューから PowerShell の起動#

Debian GNU/Linux のインストール#

Debian 起動直後(再起動後)#
操作#
Enter new UNIX username
に対して,英数字のユーザー名を入れる.例えば,asakura.以下,自分のユーザー名と置き換えること.Enter new UNIX password
に対して,英数字・記号のパスワードを入れる.簡単なものでよい.キーボードを打っても画面に表示されないので注意すること.表示されていなくても問題なく入力されている.Retype new UNIX password
と言われるのでもう一度入力する.

Debian でのアカウント作成#
操作#
Debian 上で,
sudo -s
と入力して,スーパーユーザー (root, Windows の管理者にあたる)になる.パスワードを聞かれるので,上で決めた自分のパスワードを入力する.apt update
と入力して終わったら,apt upgrade
と入力して,Y を入力する.いろいろと表示されるがあまり気にしなくていい.(Windows アップデートを実行しているのと同じ.)apt install unzip
と入力して終わったら,exit
と入力してもとの状態(自分のユーザ)に戻る.

unzip のインストール#
操作#
mkdir src
と入力して,src
フォルダを作る.cd src
と入力してsrc
フォルダに移る.
次に,FDMNES ダウンロードを行う.
操作#
Windows で FDMNES の Web ページを開く.

FDMNES Download ページ#
fdmnes_Linux_64 を開く.
ダウンロードのところを右クリックして,「リンクをコピー」する.

FDMNES Download ページ#
Debian に戻り, ``wget --no-check-certificate `` (最後もスペース) と入力してから,Debian の画面で右クリックを押すと,コピーされたリンクが貼り付けられる.その後に Enter キーを入力すると,ダウンロードが始まる.
注釈
ちなみに wget --no-check-certificate
の --no-check-certificate
は SSL 証明書の厳密なチェックを行わないためのオプションである.筆者は安全性については一切保証しないが,フランスの CNRS の Web サイトなので安全性には問題がないはずである.
ダウンロードが終わったら,
mv download fdmnes.zip
と入力してファイル名を変更しておく.Windows の FDMNES の Web ページの parallel_FDMNES を開く.
ダウンロードのところを右クリックして,「リンクをコピー」する.
Debian に戻り,
wget --no-check-certificate
(最後にスペース) と入力してから,Debian の画面で右クリックを押すと,コピーされたリンクが貼り付けられる.その後に Enter キーを入力すると,ダウンロードが始まる.ダウンロードが終わったら,
mv download fdmnes.tar.gz
と入力してファイル名を変更しておく.

FDMNES Download ページ#
操作#
unzip fdmnes.zip
と入力して実行.tar zxvf fdmnes.tar.gz
と入力して実行.ls
と入力して実行すると,fdmnes_Linux fdmnes.tar.gz fdmnes.zip parallel_fdmnes
と表示されるはずである.mv parallel_fdmnes fdmnes
と入力して,並列実行版のフォルダ名をfdmnes
に変更する.mv fdmnes_Linux/* fdmnes
と入力して,単一実行版の fdmnes に入っていたファイルをfdmnes
に移動する.rmdir fdmnes_Linux
と入力して実行し,fdmnes_Linux
フォルダを削除する.
これで,単一実行版と並列実行版の FDMNES がインストールされた.
操作#
cd fdmnes
と入力してfdmnes
フォルダに移動する../mpirun_fdmnes -np 4
と入力して実行する.
ここまでの作業が正しければ,Windows 上で行ったのと同じように FDMNES での計算が実行される様子が表示されるはずである.
ここまで説明しなかったが,インストールした Debian というのは,Windows の上で動いている別の Linux という OS(オペレーティングシステム)のディストリビューションの1つである.なお,WSL で扱うファイルには Windows からも簡単にアクセスすることができる.
操作#
エクスプローラーを開いて,アドレスバーに
\\wsl$
と入力すると,Debian というのが見えているはずである.Debian → home → (自分で決めた username) → src → fdmnes と辿っていくと,Windows 上で FDMNES を使っていた時と同じファイルやフォルダ,それ以外にいくつかのファイルやフォルダが見つかるはずである.

FDMNES Download ページ#
ここまでくれば,後は Windows 上と同じように計算できるはずである.ポイントは,
ファイルは常に,
\\wsl$\Debian\home\asakura\src\fdmnes
の中のものを編集すること.基本的には,fdmfile.txt
とSim
の中だけを変更すればいいはずである.計算の実行は Debian の画面で
asakura@SODIUM:~/src/fdmnes
となっているときに,./mpirun_fdmnes -np 4
を実行すればよい.