QE(Fe-Al)

2025年7月18日

バージョン1.4.2でEA-vcはQEに対応.

ここで利用しているファイルはCrySPY_utility/examples/qe_Fe-Al_EA-vcからダウンロードできる. このチュートリアルでは,QEを用いてジョブスケジューラーを備えた計算機クラスタで行うことを想定している. 対象となるシステムは2元系のFe-Alで,強磁性を仮定した計算を行う.

事前計算

EA-vcではcryspy.inend_pointとして,各元素単体の1原子当たりのエネルギーを基準として用いるため,事前に計算する必要がある. exampleファイルの中に二つのディレクトリがあるはず.

Al-fcc
├── pwscf.in
└── job_cryspy
Fe-bcc
├── pwscf.in
└── job_cryspy

インプットファイル(pwscf.in)およびジョブスクリプト(job_cryspy)があるので適宜使用する計算機の環境に合わせて編集すること.

pwscf.inファイルでは,最終的に使用するカットオフなどの値を単体の計算でも利用しなければならないので注意すること.

ジョブを実行する(ジョブサブミットのコマンドは適宜読み替えること).

cd Al_fcc
qsub job_cryspy
cd ../Fe_bcc
qsub job_cryspy
cd ..

計算が終わったら1原子あたりのエネルギーをeV単位に変換しておくこと. 今回はBCCやFCCなので,ユニットセルは1原子で構成されているが, 通常はユニットセルの原子数でセルあたりのエネルギーを割って計算する.

cryspy.in

cryspy.inの例.

[basic]
algo = EA-vc
calc_code = QE
nstage = 2
njob = 10
jobcmd = qsub
jobfile = job_cryspy

[structure]
atype =  Fe Al
ll_nat =  0  0
ul_nat =  8  8

[QE]
kppvol = 40 120
qe_infile = pwscf.in
qe_outfile = pwscf.out

[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 = 6
end_point = -3406.14117375  -91.25463006

[option]

for QE

VASPと違ってQEでは組成可変型への対応は簡単で,2元系の探索の場合は常に2元系のインプット,3元系なら常に3元系のインプットを./calc_inに準備すればよい. ただしnatだけは変更の必要があるので,CrySPYが自動で書き換える. 準備する際は下記のように何か適当な数字でnatを書いておく.

nat = 1

CrySPYは./work/xxx/において,先頭の空白を除いてnatから始まる行を

    nat = (実際の原子数)

に自動的に書き換える.

calc_in/

job_cryspy

#!/bin/sh
#$ -cwd
#$ -V -S /bin/bash
####$ -V -S /bin/zsh
#$ -N FeAl_CrySPY_ID
#$ -pe smp 32


QEROOT=/usr/local/qe/q-e-qe-7.3.1/bin
mpirun -np $NSLOTS $QEROOT/pw.x -nk 4 < pwscf.in > pwscf.out


if [ -e "CRASH" ]; then
    sed -i -e '3 s/^.*$/skip/' stat_job
    exit 1
fi

pwscf.in

1_pwscf.in

&control
calculation = 'relax'
nstep = 40
pseudo_dir = '/usr/local/qe/gbrv/all_pbe_UPF_v1.5/'
outdir='./outdir/'
/


&system
ibrav = 0
nat = 1
ntyp = 2
ecutwfc = 40
ecutrho = 200

occupations = "smearing"
smearing    = "mp"
degauss     =  0.01

nspin = 2
starting_magnetization(1) = 0.4
starting_magnetization(2) = 0.0
/


&electrons
mixing_beta = 0.4
/

&ions
/

&cell
/

ATOMIC_SPECIES
Fe -1.0 fe_pbe_v1.5.uspp.F.UPF
Al -1.0 al_pbe_v1.uspp.F.UPF

2_pwscf.in

&control
calculation = 'vc-relax'
nstep = 200
pseudo_dir = '/usr/local/qe/gbrv/all_pbe_UPF_v1.5/'
outdir='./outdir/'
/


&system
ibrav = 0
nat = 1
ntyp = 2
ecutwfc = 40
ecutrho = 200

occupations = "smearing"
smearing    = "mp"
degauss     =  0.01

nspin = 2
starting_magnetization(1) = 0.4
starting_magnetization(2) = 0.0
/


&electrons
mixing_beta = 0.4
/

&ions
/

&cell
/

ATOMIC_SPECIES
Fe -1.0 fe_pbe_v1.5.uspp.F.UPF
Al -1.0 al_pbe_v1.uspp.F.UPF