chgcar

Ippei Kishida

Last-modified:2018/03/29 22:56:09.

1 概要

CHGCAR に対する解析、操作を行います。

2 diff

2つの CHGCAR の差電子密度を新たに CHGCAR 形式で標準出力に出力する。

chgcar diff CHGCAR.1 CHGCAR.2

CHGCAR の冒頭にある POSCAR 的な情報は、最初の引数で指定した CHGCAR のものを用いて、 2つめの CHGCAR の情報は無視する。

2つの CHGCAR が両方とも ISPIN=1 で計算されたものならば、 1つの スピン情報として引き算したものを出力する。 どちらか一方が ISPIN=2 で計算されたものならば、 ISPIN=1 で計算されたもののスピン情報を up spin と down スピン が同じデータであるものとして複製し、 ISPIN=2 の結果と同じ形式で出力する。

2.1 Augumentation Occupancy の扱い

Augumentation Occupancy については、 第一引数の CHGCAR (CHGCAR.1) のものを保持する。 このようにした理由は以下。

3 cross

ab 平面などで切った断面で電子密度の2次元データを書き出す。

chgcar cross --ab
chgcar cross --bc --layer=1
chgcar cross --ca --layer=2

–layer オプションの引数は、原点を含む平面を 0 として数えた平面の番号で、デフォルト値は 0。 ab, bc, ca 平面以外の任意の平面は今のところ対応していない。

chgcar cross --ab --gnuplot

gnuplot で3次元プロットをする場合、行最後と列最後のデータが無視される。 これに対応して、–gnuplot オプションを付けると、 各行末尾と最後の行の下に 0.0 を追加する。

ISPIN=2 で計算した CHGCAR には up, down の2つのスピン状態の電子密度が記録されている。 chgcar cross は、それぞれのスピンのデータを、 空白2行区切りで出力する。

4 analyze

CHGCAR の情報を出力します。 以下のような感じで出力されます。

% chgcar analyze CHGCAR.spin1
Fe O
2  2
charge_mesh: 2, 2, 2

spin: 1
  charge_density_meshes
    max: 80.000000, min: 1.000000
  augmentation_occupancies_meshes
    max: 8.359924, min: -0.045644

スピンが2つある場合は、

% chgcar analyze CHGCAR.spin2
Fe O
2  2
charge_mesh: 2, 2, 2

spin: 1
  charge_density_meshes
    max: 11.774747, min: 6.312682
  augmentation_occupancies_meshes
    max: 8.359924, min: -0.045644

spin: 2
  charge_density_meshes
    max: 0.937321, min: 0.105354
  augmentation_occupancies_meshes
    max: 8.359924, min: -0.456439