WIEN2k よくある質問
 Q1:WIEN2kの技術情報・サポートはどこで入手できますか?
 Q2:ポテンシャルを可視化することができますか?
 Q3: XCrySDenを用いてバンド分散図用のk点メッシュを作成する方法は?
 Q4: 波動関数を可視化することができますか?
 Q5: CIF(Crystallographic Information File)形式のファイルを取り込めますか?
 Q6: Local DOSを足し合わせてもTotal DOSにならないのですが、理由は何でしょうか?
 Q7: フェルミ面を可視化することができますか?

Q1:WIEN2kの技術情報・サポートはどこで入手できますか?

開発元(ウィーン工科大)により、メーリングリストが運営されています。デベロッパを含め、活発な情報交換が行われており、また過去の情報をウェブブラウザから検索することもできます。詳しくは、WIEN2k-Mailing Listをご覧ください。(2008/02/27)

Q2: ポテンシャルを可視化することができますか?

はい、可能です。まず、テキストエディタで case.in0 のNR2VをR2Vに書き換えます。その後、lapw0を実行し、各ポテンシャルをファイルに書き出します。

  $ x lapw0

次のコマンドにより、 lapw5.def ファイルを生成します。

  $ x lapw5 -d

生成された lapw5.def ファイルの該当箇所(9行目、11行目)をデフォルトの価電子密度(case.clmval)から書き換えます。

  価電子密度 case.clmval(デフォルト)
  クーロンポテンシャル case.vcoul
  交換相関ポテンシャル case.r2v
  全ポテンシャル case.vtotal
  ※全電子密度(case.clmsum)の場合、 case.in5 において VAL を TOT に変更

lapw5.defの例(case.vtotal)

  5 ,'case.in5', 'old', 'formatted',0
  6 ,'case.output5', 'unknown','formatted',0
  8 ,'case.struct', 'old', 'formatted',0
  9 ,'case.vtotal', 'old', 'formatted',0
  10,'case.tmp', 'unknown','unformatted',0
  11,'case.vtotaldn', 'unknown','formatted',0
  12,'case.sigma', 'unknown','formatted',0
  20,'case.rho_onedim','unknown','formatted',0
  21,'case.rho', 'unknown','formatted',0

変更後、次のコマンドを実行し、case.in5で指定した面の値を取得します。$ lapw5 lapw5.defcase.in5 の例

  1 1 1 2 # プロット中心 (1/2,1/2,1/2)
  3 0 1 2 # X端座標 (3/2,0/1/2)
  0 3 1 2 # Y端座標 (0,3/2,1/2)
  3 3 3 # 描画対象とする原子配置の数
  100 100 # グリッド数 (100 x 100 行列)
  RHO NO # RHO/DIFF/OVER、ADD/SUB/NO(またはブランク)
  ATU VAL DEBU # ATU/ANG、VAL/TOT、DEBU/NODEBUG
  NONORTHO # ORTHO/NONORTH

case.rhoファイルが生成されるので、rhoplotを使用し可視化します。

  $ rhoplot
  #####################################
  # #
  # RHOPLOT #
  # #
  #####################################
  3D- or Contour-plot ? (3/c)3
  .4972776316139147
  Wait until graph appears. Then press RETURN to continue
  contour for surfaces are drawn in 21 levels on grid base
  as linear segments
  21 incremental levels starting at 0, step 0.1, end 2
  contour line types are varied & labeled with format '%8.3g'
  Do you want to set ranges? (y/N)y
  zmin = (0.0) -30
  zmax = (2.0) 10
  delta z = (0.1) 1
  Wait until graph appears. Then press RETURN to continue
  contour for surfaces are drawn in 41 levels on grid base
  as linear segments
  41 incremental levels starting at -30, step 1, end 10
  contour line types are varied & labeled with format '%8.3g'
  Do you want to set ranges? (y/N)
  Do you want a hardcopy? (y/N)

以下、出力例です。

(2008/08/29)

Q3: XCrySDenを用いてバンド分散図用のk点メッシュを作成する方法は?

基本的な操作は、次のとおりです。

1. xcrysdenを起動します。

 

2. Fileメニューから Open WIEN2k... -> Select k-path をクリックします。

 

3. Choose WIEN2k case directory ダイアログが表示されるので、 Selction: に該当するディレクトリ(case.structを含む)を指定し、OKボタンをクリックします。

 

4. ブラベ格子が正しく認識されたことを確認し、 Close ボタンを押し、先へ進めます。
空間群毎のブリルアンゾーンやk点ラベルは、Bilbao Crystallographic Server Table of Space Group Symbolsで確認することができます。
w2web から XCrySDen を起動した場合、上の画面が最初に表示されます。

 

5. ブリルアンゾーンが表示されるので、その中の点(special points)を順次選択していきます。

 

6. 選択が終わると、 OK ボタンを押し、次に進みます。

 

7. 各k点座標を整数比で表わすための係数Mが表示されます。

8. Total number of k-points along the path に発生させるk点の数を入力します。この例では、100を指定しました。

9. 指定した経路でk点が補間され、klistが作成されます。

10. ファイル名をcase.klist_bandとして保存します。
w2webからXCrySDenを起動した場合は、一旦xcrysden.klistとして保存し、その後、メニューに従いcase.klist_bandとして複製してください。

 

11.最後に履歴が表示されます。(2008/08/29)

Q4: 波動関数を可視化することができますか?

はい、LAPW基底であれば可能です。LAPW1で求めたcase.vector[up/dn]を使用し、k点およびバンドの一組で表される波動関数をプロットすることができます。手順は、次のとおりです。

  0. データフォーマット変換プログラムのビルド
  1. case.in1[c]でLAPW基底を指定(※APW+lo未サポートのため)
  2. lapw1の実行
  3. case.in7の作成
  4. lapw7の実行
  5. gnuplut用データフォーマット変換プログラムを実行
  6. gnuplotを用いて可視化

以下、具体的な手順です。

0. まず、データフォーマット変換プログラムをビルドします。

ソースコード格納ディレクトリ
$WIENROOT/SRC_lapw7/DOC_psink/w1gpl.f ※1Dデータ用
$WIENROOT/SRC_lapw7/DOC_psink/w2gpl.f ※2Dデータ用

コンパイル例(g77使用)
 $ g77 -o w1gpl w1gpl.f
 $ g77 -o w2gpl w2gpl.f
コンパイルした各モジュールは、$WIENROOTディレクトリへコピーしてください。
 $ cp w?gpl $WIENROOT

1. case.in1[c]でLAPW基底(0)を指定します。

以下、設定例になります(赤色文字部分)。
WFFIL (WFPRI, SUPWF)
7.00 10 4 (R-MT*K-MAX; MAX L IN WF, V-NMT
0.30 5 0 (GLOBAL E-PARAMETER WITH n OTHER CHOICES, global APW/LAPW)
0 0.30 0.000 CONT0
0 -4.35 0.005 STOP0
1 -2.58 0.010 CONT0
1 0.30 0.000 CONT0
2 0.30 0.010 CONT0
0.30 3 0 (GLOBAL E-PARAMETER WITH n OTHER CHOICES, global APW/LAPW)
0 -1.16 0.010 CONT0
0 0.30 0.000 CONT0
1 0.30 0.000 CONT0
K-VECTORS FROM UNIT:4 -9.0 2.0 24 emin/emax/nband

2. つづけて、lapw1を実行し、case.vectorファイルを生成します。

スピン分極、complex計算時は適宜オプションを追加してください。

 $ x lapw1

3. lapw7用入力ファイル case.in7 を作成します。

テンプレートは用意されておりませんので、テキストエディタ等で直接作成する必要があります。作成したファイルは、case.in7として保存してください。(※再利用する場合、$WIENROOT/SRC_templatesへコピーしておくと便利です)
(2D用入力データサンプル)
  2D ORTHO
  0 0 0 2
  3 0 0 2
  0 0 3 2
  76 76 25 25
  NO
  RE ANG LARGE
  1 0

(1D用入力データサンプル)
  1D ORTHO
  0 0 0 2
  4 4 0 2
  101 25
  NO
  IM ANG LARGE
  1 0

(case.in7の設定内容)
   次元(0D/1D/2D/3D) 平面を直角(ORTHOGONAL)/非直角(NON-ORTHOGONALまたは空白)
  平面の原点座標(X0 Y0 Z0 分母)
  平面のX端(X1 Y1 Z1 分母)
  平面のY端(X2 Y2 Z2 分母)※1Dでは不要
  グリッド数(X方向 Y方向 X増分 Y増分)※1DではY成分不要
  ポスト処理(NO/DEP)
  出力スイッチ(※1 下記参照) 単位(ANG/AU) 相対論項(LARGE/SMALL)
  波動ベクトル(case.klist参照) バンド指数 ※どちらも0とすると全ての値を採用

※1 波動関数の出力スイッチ
  "RE " リアルパート
  "IM " イマジナリパート
  "ABS" 絶対値
  "ARG" 複素平面の偏角
  "PSI" 複素数

4. つづいて、lapw7を実行します。

 $ x lapw7

正常に動作すれば、case.psinkファイル(テキストデータ)が生成されます。

5. gnuplot用データフォーマット変換プログラムを実行します。

手順 0. でビルドしたプログラムを使用し、case.psinkをgnuplot用の形式へ変換します。

1次元データの場合

$ w1gpl < case.psink > case.gpl

2次元データの場合

$ w2gpl < case.psink > case.gpl

6. gnuplot を用いて可視化します。

$ gnuplot case.gpl

実行後、画像ファイル psi.ps が生成されます。
以下は、fcc-TiN(a=4.235)を対象に上記入力ファイル(case.in7)を用いて描画したサンプルです。

(2009/1/9)

 

Q5: CIF(Crystallographic Information File)形式のファイルを取り込めますか?

はい、可能です。
w2web上で新規セッションを開始し、structgenを実行すると、 WIEN2k標準テンプレートを使用するか、cif形式またはxyzを使用するか尋ねられます。
ここで、cifファイルをアップロードし、structファイルへ変換することができます。

w2webからのインポートに失敗する場合、コマンドラインからcif2struct の直接実行をお試しください。読み込みに失敗した行の情報が出力されるので、これを修正することで問題を回避することができます。
(2009/6/26)

Q6: Local DOSを足し合わせてもTotal DOSにならないのですが、理由は何でしょう?

格子間領域(interstital region)のLocal DOSを足し合わせてみてください。TETRA用入力ファイルcase.intにおいて、原子番号を指定するところで、原子数+1の値を指定ください。原子数が2の場合は3、8の場合は9のように。 例えば、TiCの場合(セル内に2原子)、次のように指定します。

$ cat TiC.int
Title
-0.50 0.002 1.500 0.003 EMIN, DE, EMAX, Gauss-broadening(>de)
4 NUMBER OF DOS-CASES specified below
0 1 total atom, case=column in qtl-header, label
1 1 Ti tot
2 1 C tot
3 1 interstitial
(2009/10/1)

Q7: フェルミ面を可視化することができますか?

はい、XCrySDenを利用することで容易に行えます。
操作方法は、次の通りです。
まず、XCrySDenを起動し、FileメニューからOpen WIEN2k... -> Fermi Surfaceを選択します。


ダイアログが表示されるので、WIEN2kのセッションディレクトリを指定します。


以下のような、WIEN2k制御用ダイアログが表示されます。k-meshを増やす場合は、Number of k-points:の値を増やし、Generate k-meshをクリックしk-meshを更新してください。続けて、Calculate Eigenvalues [x lapw1]ボタン、Calculate Fermi energy [x lapw2 -fermi]ボタンとクリックします。計算がエラーなく終了すれば、Render Fermi Surfaceボタンをクリックします。


Fermi Energyを指定するダイアログが表示されるので、値を確認し、OKボタンをクリックします。


新たに3つのウィンドウが表示されます(Band widths, BARGraph, Select bands)。Select bandsにおいて、フェルミレベルに状態を持つバンドのチェックボックスを有効にし、Selectedボタンをクリックします。


新しいウィンドウが開かれ、フェルミ面が表示されます。

(2010/08/02)