目次

feffManager : atoms / feff を使用してcif ファイルや FeFF の入力ファイルから$\chi(k)$を計算するツール

2020年4月29日、新登場!

1. 概要

Demeter の Wrapper です。
cif ファイルや FeFF の入力ファイルから atoms / feff を使用して $\chi(k)$ を計算します。 バッチ処理的に複数の cif ファイルや FeFF 入力ファイルからまとめて計算することを主な目的にしています。 cif から atoms が生成した feff.inp ファイルを編集した上で feff を走らせるような対話的な使用もできます。

大事な念押し : このツールは XAFS に関連して cif のデータを扱うツールですが、本来 XAFS の解析のスタート地点として、cif ファイルや、結晶構造に関する情報は不要です。結晶性の試料を調べるときに結晶構造の知識や cif ファイルをもって XAFS 解析を始めるのが有用な時はありますが、それが必須ではありません。蛇足ながら念のため。

2. ダウンロード

「実行ファイルのパッケージ」には、3つのフォルダ 00-CIF, 00-INP, 00-RES も含まれていますが、これらは実行時の標準的な環境の例です。config.cfg の設定次第で他の場所にあっても、別の名前であっても構いません。

3. 使用準備 : インストールと設定

3.1 インストール

  1. 上記 feffManager 本体をダウンロードして、どこかに展開して下さい。
  2. feffManager は demeter (athene / artemis を含む一群のツール。ここで実質使っているのは atoms だけです)を 利用して動きます。 まず demeter をインストールしてください。 demeter はここにあります。
    本当に新規に demeter をインストールした直後だと feffManager から demeter が正常に起動できないうようです。 対策として athena を一度起動して下さい。 これで demeter.ini ファイルが作成されて feffManager から demeter を正常に起動できるようになるようです。
  3. chi.dat ($\chi(k)$ を納めたファイル) の生成を feff に任せたかったのですが、 demeter に同梱されている feff6.exe では chi.dat の生成ができないようなので (できるのかもしれませんがわからなかったので)、別途 feff をインストールします。
    feff6 lite feff8.5 lite等から 入手して下さい。 ここで入手できる feff6l.exe または feff85L.exe だけがあれば十分です。 1)
    上記本家 web サイトからダウンロードできる feff6l のファイルが .tgz だったので zip 圧縮に直しました。feff6l zip版

3.2 設定の確認 : config.cfg の編集

ほとんど変更する必要はありませんが、 DEMETER_BASE 行は確認して編集してください。また入手した feff6l.exe あるいは feff85L.exe を指定する FEFF_EXE もファイルを置いた場所に合わせて編集して下さい。

  1. コメント : config.cfg 内の各行で “#” 記号より後ろはコメントです。何が書かれていても無視されます。
  2. DEMETER_BASE の指定 : demeter をインストールすると色々なファイルがインストールされますが、その起点となるフォルダ名を指定します。 demeter のインストール時に指定したフォルダです。 zip ファイルにある config.cfg では仮に
     DEMETER_BASE "C:/DemeterBase" 

    になっていますが、 普通は

     DEMETER_BASE "C:/User/ユーザー名/AppData/Roaming/DemeterPerl" 

    になると思います (「ユーザー名」は適宜入力してください)。
    フォルダー名の区切り記号が Windows標準の “\” (“¥”記号) ではなく、“/” なのに注意してください。 config.cfg では、フォルダの区切り記号として “/” を使います。

  3. FEFF_EXE の指定 : demeter とは別に入手/インストールした feff6l.exe や feff85L.exe を置いた場所を指定して下さい 2)。 例えば C:¥Feff6ldist というフォルダに feff6l.exe を置いたとしたら、
     FEFF_EXE "C:/Feff6ldist/feff6l.exe" 

    の様に指定することになります。 実行ファイルは feff85L.exe でも構いません。 普通の feff6l.exe や feff85L.exe を使うなら FEFF_ARG は設定する必要はありません。 (コメントアウトしておくか、FEFF_ARG “” とする)

  4. feff 実行時に feffNNNN.dat, chi.dat, chipNNNN.dat を消去するかどうかの指定 : 条件を変えて計算を再実行した場合に古いデータを確実に消去するために使います。
    CLEAR_FEFF_DAT 1     # 元々あった feff*.dat を消す 1 : 消さない 0
    CLEAR_CHI_DAT 1      # 元々あった chi.dat chip*.dat を消す : 消さない 0

    消去しないと、例えば、 「元々の条件では feff0013.dat が生成されていたが、新しい条件では feff0012.dat までしか作られない」というような場合、 feff0012.dat までは新しいファイルで置き換わりますが、feff0013.dat だけは古いものが残ってしまいます。

  5. atomsが生成したfeff.inpファイルの特定行の置き換え :
    FEFF_INP [キーワード] [パラメータ]

    の様に指定すると、atoms が生成した feff.inp ファイルの中の「キーワード」で始まる行のパラメータを 指定した「パラメータ」で置き換えることができます。 各パスごとの $\chi(k)$ や $\chi(R)$ を表示したい場合、 atoms が生成する標準の feff.inp ではそのためのデータが作られないので 次の例の様に PRINT 行を編集する必要が有ります。

    FEFF_INP PRINT 0 0 0 0 0 2    # feff85L.exe 用の設定。 chipNNNN.dat を生成する
    #FEFF_INP PRINT 0 0 0 0 0 0    # feff85L.exe 用の設定。 generate chipNNNN.dat を生成しない
    #FEFF_INP PRINT 0 0 0 2        # Feff6l.exe 用の設定。 chipNNNN.dat を生成する
    #FEFF_INP PRINT 0 0 0 0        # Feff6l.exe 用の設定。 chipNNNN.dat を生成しない
  6. $\chi(k)$から$\chi(R)$への変換条件の設定 : 必要に応じて以下の 6つのパラメータを設定してください。例えば次のようになります。
    K_MIN    3.0
    K_MAX   20.0
    K_DELTA  0.05
    R_MIN    0.0
    R_MAX    8.0
    R_DELTA  0.01

    ここで、各パラメータは次のような意味を持ちます。

    パラメータ名 意味 デフォルト値
    K_MIN $k$ 空間での変換範囲の最小値 3
    K_MAX $k$ 空間での変換範囲の最大値 20
    K_DELTA $k$ 空間での刻み幅3) 0.05
    R_MIN $R$ 空間での変換範囲の最小値 0
    R_MAX $R$ 空間での変換範囲の最大値 8
    R_DELTA $R$ 空間での刻み幅 0.01
  7. MAX_PROC の指定 : feffManager が同時に起動する atoms や feff 等の外部プロセスの最大数の指定です。
    使っている PC の CPU 仮想コア数(4コアのCore-i7 なら 8, 4コアのCore-i5なら 4)より 1〜2 程度小さな数字が適当ではと予想していましたが、実際にはもっと大きな数字の方が性能が出るようです。 それぞれの環境で最適値を探ってみて下さい。
  8. 作業フォルダの確認 : zip ファイルにある config.cfg ではコメントになっています。 必要に応じてコメント記号(“#”)を外して 3つの作業フォルダの名前や場所を指定してください。 とりあえず使ってみる分には変更不要です。
    変更しない場合作業フォルダは feffManage.exe があるフォルダの中の 00-CIF, 00-INP, 00-RES という名前のフォルダになります(なければ作られます)。

config.cfg の文字コードが UTF(UTF-8) の場合、直前の行に日本語のコメントが書かれていると正常に読めないことがあるようです。 その場合には、日本語のコメントのある行と設定を書いた行の間に空白行を入れるか、文字コードを S-JIS にしてみてください。

4. 使い方と機能の概略

  1. 00-CIF フォルダ内に何か cif ファイルを置いて feffManager を起動すると、 feffManager は自動的にそのファイルを読んで atoms, feff を連続実行します。 結果は 00-RES フォルダに置かれます。
    また、00-INP フォルダ内に何か FeFF の入力ファイルがあればそれも自動的に読み込んで feff を実行し、 結果が 00-RES フォルダに置かれます。
  2. 与えられたファイルが本当に cif ファイルや FeFF の inp ファイルかどうかの判定は特に行いません。 00-CIF フォルダにある “*.cif” という名前のファイル、 00-INP フォルダにある “*.inp” という名前のファイルが全て対象になります。
  3. 00-RES フォルダ内には、cif ファイルや inp ファイルの拡張子部分( “.cif”, “.inp” )を除いた名前のフォルダが作られ、 その中に結果が置かれます。 それが cif ファイルや inp ファイルでなかった場合、単に atoms や feff が正常に実行されないだけです。
  4. 00-CIF フォルダには “*.inp” という名前のファイルを置くこともできます。 その場合は atoms の inp ファイルだとみなされて atoms, feff が連続実行されます。
  5. この様に幾つかの cif ファイル FeFF 入力ファイルを処理した時の feffManager のスクリーンショットは この様になります。
    「Atoms/FeFFプロセスリスト」の枠内のクリーム色の枠に与えられた cif ファイルや FeFF の inp ファイルの 名前が表示されます。 行内の「Atoms出力」「FeFF出力」などのチェックボックスをチェックすると、 それぞれのファイルについて Atoms, feff を実行したときの出力の記録が表示されます。
  6. 「Atoms出力」(これが feff の入力ファイルになる)を表示して適宜編集した後「feff.inp更新」ボタンを押すと、 00-RES にある feff.inp ファイルが編集されたものと置き換わります。 その後「FeFF再起動」ボタンを押すと新しい feff.inp ファイルで再計算されます。 「Atoms出力」の編集と「feff.inp更新」を使わずに直接 00-RES 内の feff.inp を編集/置き換えして 「FeFF再起動」を押しても同様に再計算されます。
  7. 事前に 00-CIF, 00-INP にファイルを準備するのではなく、 feffManager 起動後に cif ファイルや inp ファイルを指定して計算を行うこともできます。 その場合には、画面上部にある「ファイルドロップエリア」に cif ファイルや inp ファイルをドロップしてください。 ドロップしたファイルが 00-CIF や 00-INP にあった時と同様に計算が行われ 00-RES に結果が置かれます。

5. 動作しなかったら

うまく動作しない場合、「❏ atoms出力」、「❏ feff出力」などのボタンを押してみて下さい。 それぞれ atoms/feff を起動(しようと)した際のコンソール出力が表示されます。 これを見ると atoms, feff のどちらが動作していないか判断できます。

6. 今後の予定

想定していた最低限の機能を実装したので一旦完成。 すぐに作業する予定はないですが、

  1. グラフ表示の線の色、太さ、線種(実線、点線、…)を選択可能にする。
  2. 00-CIF、00-INP フォルダに *.cif や *.inp を直接置かず、その中に更にフォルダがあるような場合でも読み込んで実行するようにする。

等の変更は想定しています。

7. 履歴

  1. 2020.5.29 : プロセスリストを削除できるようになった(個々の削除/全削除共に可)。
  2. 2020.5.22 : パス毎の $\chi(k)$ や $\chi(R)$ を表示できるようになった。 更新版 exe, cfg セット (2020.5.22) 更新版
  3. 2020.5.13 : $\chi(k)$のフーリエ変換$\chi(R)$の表示。変換結果のファイル出力(chiR.dat)
  4. 2020.5.05 : 計算された $\chi(k)$ のグラフの表示(最低限)
  5. 2020.5.03 : chi.dat ($\chi(k)$を収めたファイル) の生成を feff6l 等に任せる
  6. 2020.5.01 : 多少のブラッシュアップを経た安定版
  7. 2020.4.29 : 公開
  8. 2020.4.28 : 公開準備。

当 web ページとその下のページに関するお問い合わせ等ございましたら、連絡先にご連絡をお願いします。
田渕のページのルート

1)
feffManager は demeter に同梱されている atoms で feff.inp ファイルを作りますが、これは feff6 用の feff.inp です。feff85 等違うバージョンの feff を使用する時は注意して下さい。
2)
demeter 付属の feff6 は chi.dat を作ってくれないので、$\chi(k)$、$\chi(R)$ の姿を見たいなら、demeter とは別に feff6l.exe / feff85L.exe をインストールして下さい
3)
$\chi(k)$から$\chi(R)$への変換の際には不要。将来$\chi(R)$から$\chi(q)$変換を行うことを想定して指定可能にした。