VASP(Fe-Al)
2025年7月12日
バージョン1.4.2でEA-vcはVASPに対応.
ここで利用しているファイルはCrySPY_utility/examples/vasp_Fe-Al_EA-vcからダウンロードできる. このチュートリアルでは,VASPを用いてジョブスケジューラーを備えた計算機クラスタで行うことを想定している. 対象となるシステムは2元系のFe-Alで,強磁性を仮定した計算を行う.
事前計算
EA-vcではcryspy.in
でend_point
として,各元素単体の1原子当たりのエネルギーを基準として用いるため,事前に計算する必要がある.
exampleファイルの中に二つのディレクトリがあるはず.
Al-fcc
├── POSCAR
├── INCAR
├── POTCAR_dummy
└── job_cryspy
Fe-bcc
├── POSCAR
├── INCAR
├── POTCAR_dummy
└── job_cryspy
結晶構造データ(POSCAR
)とその構造最適化を行いエネルギーを求めるインプットファイル(INCAR
)およびジョブスクリプト(job_cryspy
)があるので適宜使用する計算機の環境に合わせて編集すること.
また,POTCARファイルは配布できないので各自で準備すること.
INCAR
ファイルでは,最終的に使用するカットオフなどの値を単体の計算でも利用しなければならないので注意すること.
ジョブを実行する(ジョブサブミットのコマンドは適宜読み替えること).
cd Al_fcc
qsub job_cryspy
cd ../Fe_bcc
qsub job_cryspy
cd ..
計算が終わったら1原子あたりのエネルギーを計算しておく. 今回はBCCやFCCなので,ユニットセルは1原子で構成されており,全エネルギーの値をそのまま使えばよい. 通常はユニットセルの原子数でセルあたりのエネルギーを割って計算する.
cryspy.in
cryspy.in
の例.
[basic]
algo = EA-vc
calc_code = VASP
nstage = 2
njob = 10
jobcmd = qsub
jobfile = job_cryspy
[structure]
atype = Fe Al
ll_nat = 0 0
ul_nat = 8 8
[VASP]
kppvol = 40 120
vasp_MAGMOM = 4.0 0.0
[EA]
n_pop = 20
n_crsov = 5
n_perm = 2
n_strain = 2
n_rand = 2
n_add = 3
n_elim = 3
n_subs = 3
target = random
n_elite = 2
n_fittest = 10
slct_func = TNM
t_size = 2
maxgen_ea = 0
end_point = -8.24249611 -3.74226843
[option]
algo = EA-vc
を使用.jobcmd
は計算機環境に合わせて変更すること.- [structure]セクションでは,
ll_nat
で各元素の原子数の最小値,ul_nat
で最大値を指定. n_pop
=n_crsov
+n_perm
+n_strain
+n_rand
+n_add
+n_elim
+n_subs
end_point
には事前計算しておいた,FeおよびAlにおける各単体の1原子当たりのエネルギー(eV/atom)を入力.atype
の順番.- [EA]セクションのパラメータについては,入力ファイル > [EA] sectionおよび探索アルゴリズム > 組成可変型進化的アルゴリズム(EA-vc)を見ること.
- 自動的にプロットされる凸包グラフのパラメータはチュートリアル > 組成可変型進化的アルゴリズム(EA-VC) > 解析と可視化も参考にすること.
for VASP
[VASP]セクションのvasp_MAGMOM
にはatype
に対応する元素のMAGMOM
の値を入れる.
CrySPYは./work/xxx/INCAR
(xxxは構造ID)にINCARをコピーする際に,n*vasp_MAGMOM
(nは原子数)を追記する.
例えば, atype = (‘Fe’, ‘Al’),nat = (5, 3),vasp_MAGMOM = (4.0 0.0)の場合,下記のように追記する.
MAGMOM = 5*4.0 3*0.0
このチュートリアルでは使用していないが,他にもINCARのLDAUL,LDAUUおよびLDAUJに対応している.cryspy.in
ではvasp_
をつけて下記のように使う.
[VASP]
kppvol = 40 120
vasp_MAGMOM = 4.0 0.0
vasp_LDAUL = 2 -1
vasp_LDAUU = 4.0 0.0
vasp_LDAUJ = 0.0 0.0
nat = (5, 0)のように2元系から単体に次元が落ちる場合,CrySPYは./work/xxx/INCAR
に下記のように追記する.
原子数がゼロの元素に関しては何もしない.
MAGMOM = 5*4.0
LDAUL = 2
LDAUU = 4.0
LDAUJ = 0.0
calc_in/
POTCAR
EA-vcでは各元素に対応するPOTCARファイルをそれぞれ準備する. ファイル名は
POTCAR_Fe
POTCAR_Al
のように末尾にatype
に書いた元素名をつける.
CrySPYは計算する構造の原子数に合わせて,./work/xxx/POTCAR
を準備する.
つまり,nat = (5, 0)のようにFeだけから構成される構造の場合はPOTCAR_Fe
,
nat = (4, 4)のようにFe-Al系の場合はPOTCAR_Fe
とPOTCAR_Al
を繋げてPOTCAR
にする.
job_cryspy
#!/bin/sh
#$ -cwd
#$ -V -S /bin/bash
####$ -V -S /bin/zsh
#$ -N FeAl_CrySPY_ID
#$ -pe smp 32
# ---------- vasp
VASPROOT=/usr/local/vasp/vasp.6.4.2/bin
mpirun -np $NSLOTS $VASPROOT/vasp_std
INCAR
1_INCAR
SYSTEM = FeAl
Algo = Fast
####LREAL = Auto
ENCUT = 348
ISMEAR = 1
SIGMA = 0.1
NSW = 40
IBRION = 2
ISIF = 2
ISPIN = 2
######MAGMOM = # cryspy append MAGMOM in work/xx/INCAR
EDIFF = 1e-6
EDIFFG = -0.01
KPAR = 4
LWAVE = .FALSE.
LCHARG = .FALSE.
2_INCAR
SYSTEM = FeAl
Algo = Fast
####LREAL = Auto
ENCUT = 348
ISMEAR = 1
SIGMA = 0.1
NSW = 200
IBRION = 2
ISIF = 3
ISPIN = 2
######MAGMOM = # cryspy append MAGMOM in work/xx/INCAR
EDIFF = 1e-6
EDIFFG = -0.01
KPAR = 4
LWAVE = .FALSE.
LCHARG = .FALSE.