QE(Fe-Al)
2025 July 18
EA-vc became compatible with QE in version 1.4.2.
The files used here can be downloaded from CrySPY_utility/examples/qe_Fe-Al_EA-vc. This tutorial assumes calculations are performed on a computer cluster with a job scheduler using QE. The target system is a binary Fe-Al alloy, and calculations are performed assuming ferromagnetism.
Pre-calculation
In EA-vc, the per-atom energies of each elemental phase must be used as the reference in the end_point
setting of cryspy.in
, so they need to be calculated beforehand.
There should be two directories inside the example.
Al-fcc
├── pwscf.in
└── job_cryspy
Fe-bcc
├── pwscf.in
└── job_cryspy
Input files (pwscf.in
) and job scripts (job_cryspy
) are provided, so edit them as needed to match your computing environment.
In the pwscf.in
file, be sure to use the same cutoff and other values for the single-element calculations as you will use in the final calculations.
Run the jobs (replace the job submission command as appropriate for your environment).
cd Al_fcc
qsub job_cryspy
cd ../Fe_bcc
qsub job_cryspy
cd ..
After the calculations are finished, convert the energy per atom to eV units. In this case, since BCC and FCC unit cells each contain one atom, you can use the total energy value directly. Normally, divide the total energy by the number of atoms in the unit cell to obtain the per-atom energy.
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]
- Use
algo = EA-vc
. - Change
jobcmd
according to your computing environment. - In the [structure] section, use
ll_nat
to specify the minimum number of atoms for each element, andul_nat
for the maximum. n_pop
=n_crsov
+n_perm
+n_strain
+n_rand
+n_add
+n_elim
+n_subs
- In the
end_point
, enter the per-atom energies (in eV/atom) of each pure element—Cu and Au. Use the values obtained from the pre-calculations, and make sure the order follows that ofatype
. - For the parameters in the [EA] section, refer to CrySPY > Input file > [EA] Section and CrySPY > Search algorithms > Variable-composition evolutionary algorithm (EA-vc).
- Refer also to CrySPY > Tutorial > Variable-composition evolutionary algorithm (EA-VC) > Analysis and Visualization for the parameters of the automatically generated convex hull plot.
for QE
Unlike VASP, support for variable-composition in QE is straightforward.
For binary system searches, always prepare binary system inputs in ./calc_in
, and for ternary systems, always prepare ternary system inputs.
However, only nat
needs to be changed, so CrySPY automatically rewrites it.
When preparing, write nat
with any appropriate number as shown below:
nat = 1
In ./work/xxx/
, CrySPY automatically rewrites lines that start with nat
(excluding leading whitespace) to:
nat = (actual number of atoms)
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