pymatgenでpotcarを設定する方法
参考サイト
実行環境
- windows10 home
- python3.6.5
- pymatgen: 2018.6.11
potcarフォルダをpymatgenに登録する
pymatgenは必要なPOTCARなどの外部ファイルデータをyaml形式としてそのパスを書き込み、それを読み込むことで取得する。
当然何もしなければ登録してくれないので、以下の手順で設定しなければいけない。
-
potcarの入っているフォルダを探す
-
potcarの名前を書きかえたものをコピーとして作成する。名前は以下のもののみ許されている(上記参考サイトの中盤より)
例えば実際にpotcarを生成するときはimport pymatgen.io.vasp.inputs as pgi potcar = pgi.Potcar(symbols=['Pb','Mn','O'], functional = 'PBE')
とするが、この時にPBEと指定した場合pymatgenは”POT_GGA_PAW_PBE”というフォルダを探す。しかしこの名前になっていないことが多いので、
potPAW_PBE
を
POT_GGA_PAW_PBE
にリネームする。他のPOTCARフォルダに関しても同様。
-
pymatgenのインストール方法のPOTCAR Setupに書いてあるように以下のコードを実行する
pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
ここでEXTRACTED_VASP_POTCARはPOTCARがあるフォルダで、MYPSPは適当に変換後のフォルダの場所を指定する。作ってなくても場所だけ指定すれば勝手に作ってくれる。
私の例
pmg config -p /VASP/POTCAR/POT_GGA_PAW_PBE /VASP/new_POTCAR
-
3の実行後に
pmg config --add PMG_VASP_PSP_DIR <MY_PSP>
みたいなのをしろと言われるので、それをコピーして実行する。これでPOTCARの場所が記録された。
-
pymatgenのデフォルト関数はPBEになっている。これを変更したい場合は
pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_52
のように登録する。
-
pymatgenをインポートし、以下を実行できれば成功
import pymatgen.io.vasp.inputs as pgi potcar = pgi.Potcar(symbols=['Pb','Mn','O'])