Windows での FDMNES の実行¶
インストールとデモデータの計算¶
Windows 11 上で FDMNES をダウンロードし,とにかくデモデータについて計算を行ってみる.
操作¶
FDMNES Web サイト の Download から fdmnes_Windows_64 を選択してダウンロードする.
fdmnes_Win64_2025_07_15.zip (頻繁に更新されるため,日付は異なる) の中の fdmnes_Win64 フォルダをデスクトップに展開する.
コマンドプロンプトを起動し,
cd C:\Users\Asakura\Desktop\fdmnes_Win64
などと入力して,Enter キーを押して fdmnes のフォルダに移動.

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

PowerShell¶

PowerShell 上でデスクトップの fdmnes のフォルダに移動¶
fdmnes_win64.exe
と入力して,fdmnes を実行.

fdmnes を実行¶
FDMNES program, Revision 15th of July 2025
Date = 08 08 2025
Time = 13 h 42 mn 55 s
などの文字列が表示される.
いきなり計算を実行してみたが,計算結果が出力されていれば実行はできている.
遅くとも1分以内に計算は終了するはずである.
結果の確認¶
操作¶
fdmnes_Win64
フォルダの中のSim\Test_stand\
にある Cu から始まる計算結果のファイルのうち,Cu_conv.txt
を開くと, Energy と <xanes> の列が現れる.FDMNES には GUI は無いので,このデータを Excel で開いてプロットしてみる.

Cu の計算結果のファイル¶

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
以下の行は無視されたことになる.
次に,今回計算された入力ファイルは, Sim/Test_stand/in/Cu_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
を実行してみると,計算には 5 分程度かかったはずである.
今回は,Cu 金属というとても簡単なモデルについて計算したため,計算時間はほとんどかからなかった.仮に,3.0 の時にかかった時間を 10 秒,7.0 の時にかかった時間を 300 秒とすると,30倍の計算時間がかかったことになる.仮に非常に小さなサイズでも1時間かかる計算であれば,十分なサイズで計算するには30時間かかることになる.
ところで,最近の PC に搭載されている CPU は複数のコアからなる.ここまで Windows 上で実行したプログラムは並列化されているバージョンではない.Linux 上で実行可能な並列化バージョンも配布されている.但し,Windows 11 であれば,Windows 上で Linux 環境を利用できる WSL (Windows Subsystem for Linux) をつかって,並列化された FDMNES を実行することができる.
以下にその方法について説明する.
並列化された FDMNES のインストール (Windows)¶
手順¶
操作¶
WSL を使用して Windows に Linux をインストールする方法 にしたがって,Debian GNU/Linux (Linux の一種だと思えばよい) をインストールする.途中で再起動を求められたら再起動すること.
Windows キーを押してから,「Windows の機能の有効化または無効化」と検索して出てくる以下のツールを起動する.

Windows の機能の有効化または無効化¶
「Hyper-V」および「Linux 用 Windows サブシステム」にチェックを入れて,OK ボタンを押す.これらの機能が有効化され,再起動が促されるので,PC を再起動する.
操作¶
Windows キーを押しながら,X キーを押し,ターミナルを起動する.
wsl --install -d Debian
と入力して実行(Enter キーを押す)
注釈
Linux の経験がない場合は,WSL でデフォルトに設定されている Ubuntu を選択 (wsl --install
とだけ実行) してもよい.Debian と Ubuntu はよく似ているので利用には全く問題がない.以下で Ubuntu と読み替えて進めること.

Debian GNU/Linux のインストール¶
操作¶
Debian のインストールが完了すると,自動的に起動され,アカウントの作成画面になる.
Enter new UNIX username
に対して,英数字のユーザー名を入れる.例えば,asakura.以下,自分のユーザー名と置き換えること.Enter new UNIX password
に対して,英数字・記号のパスワードを入れる.簡単なものでよい.キーボードを打っても画面に表示されないので注意すること.表示されていなくても問題なく入力されている.Retype new UNIX password
と言われるのでもう一度入力する.

Debian でのアカウント作成¶
アカウントが作成できれば,以下のように表示されるはずである.

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

unzip のインストール¶
操作¶
cd
と入力して,Enter キーを押す.mkdir src
と入力して,Enter キーを押して,src
フォルダを作る.cd src
と入力して,Enter キーを押して,src
フォルダに移る.

src フォルダ(ディレクトリ)の作成¶
次に,FDMNES ダウンロードを行う.
操作¶
Windows で FDMNES の Web ページを開く.

FDMNES Download ページ¶
fdmnes_Linux を開く.
fdmnes_Linux_2025_07_15.zip をダウンロードする.

FDMNES Download ページ¶
Explorer (ファイルを開くやつ) を起動し,左側の欄に Linux をクリックする.

FDMNES Download ページ¶
Debian/home/asakura/src/
の順に開いて,ダウンロードした fdmnes_Linux_2025_07_15.zip をDebian/home/asakura/src/
に移動する.
注釈
もちろん,asakura というのは各自のアカウント名に読み替えてほしい.
Windows の FDMNES の Web ページの parallel_FDMNES を開く.

FDMNES Download ページ¶
parallel_fdmnes_2025_07_15.tar.gz をダウンロードする.
ダウンロードした parallel_fdmnes_2025_07_15.tar.gz を
Debian/home/asakura/src/
に移動する.

ファイルがダウンロードおよびコピーできた状態¶
操作¶
Debian のターミナルに戻って,
unzip fdmnes_Linux_2025_07_15.zip
と入力して実行.さらに,
tar zxvf parallel_fdmnes_2025_07_15.tar.gz
と入力して実行.ls
と入力して実行すると,以下のように表示されるはずである.
fdmnes_Linux
fdmnes_Linux_2025_07_15.zip
fdmnes_Linux_2025_07_15.zip:Zone.Identifier
parallel_fdmnes
parallel_fdmnes_2025_07_15.tar.gz
parallel_fdmnes_2025_07_15.tar.gz:Zone.Identifier
mv parallel_fdmnes fdmnes
と入力して,並列実行版のフォルダ名をfdmnes
に変更する.mv fdmnes_Linux/* fdmnes
と入力して,単一実行版の fdmnes に入っていたファイルをfdmnes
に移動する.rmdir fdmnes_Linux
と入力して実行し,fdmnes_Linux
フォルダを削除する.
これで,単一実行版と並列実行版の FDMNES がインストールされた.
操作¶
cd fdmnes
と入力してfdmnes
フォルダに移動する../mpirun_fdmnes -np 12
と入力して実行する.
注釈
ここで, -np
の後の数字は,PC の論理コアの数に合わせるとよい.Ctrl キーと Shift キーを押しながら,Esc キーを押すと,タスクマネージャーが起動される.例えば,以下のように表示された時の「論理プロセッサ数」の数に合わせるのがよい.

ファイルがダウンロードできた状態¶
ここまでの作業が正しければ,Windows 上で行ったのと同じように FDMNES での計算が実行され,先ほどよりも少し早く完了したはずである.今実行したのは,先ほどの Cu metal の例でクラスターサイズも小さいので,ふつうの PC でも数十秒で完了する.
ここまで説明しなかったが,インストールした Debian というのは,Windows の上で動いている別の Linux という OS(オペレーティングシステム)のディストリビューションの1つである.なお,先ほど fdmnes の実行ファイルをコピーした時のように,WSL で扱うファイルには Windows からも簡単にアクセスすることができる.
操作¶
Debian → home → (自分で決めた username) → src → fdmnes と辿っていくと,Windows 上で FDMNES を使っていた時と同じファイルやフォルダ,それ以外にいくつかのファイルやフォルダが見つかるはずである.

ファイルがダウンロードできた状態¶
ここまでくれば,後は Windows 上と同じように計算できるはずである.ポイントは,
ファイルは常に,
Debian\home\asakura\src\fdmnes
の中のものを編集すること.基本的には,fdmfile.txt
とSim
の中だけを変更すればいいはずである.計算の実行は Debian の画面で
asakura@PEAR:~/src/fdmnes
などとなっているときに,./mpirun_fdmnes -np 12
を実行すればよい.