VASP(Fe-Al)

Last updated: October 16, 2026

EA-vc became compatible with VASP in version 1.4.2.

The files used here can be downloaded from CrySPY_utility/examples/vasp_Fe-Al_EA-vc. This tutorial assumes calculations are performed on a computer cluster with a job scheduler using VASP. 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 ref_energies (end_point in versions 1.4.3 and earlier) setting of cryspy.in, so they need to be calculated beforehand. There should be two directories inside the example.

Al-fcc
├── POSCAR
├── INCAR
├── POTCAR_dummy
└── job_cryspy
Fe-bcc
├── POSCAR
├── INCAR
├── POTCAR_dummy
└── job_cryspy

Crystal structure data (POSCAR), input files for structure optimization and energy calculation (INCAR), and job scripts (job_cryspy) are provided, so edit them as needed to match your computing environment. Also, the POTCAR files cannot be distributed, so please prepare them yourself.

In the INCAR 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, obtain the energy per atom. 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 = 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
n_elite = 2
n_fittest = 10
slct_func = TNM
t_size = 2
maxgen_ea = 0
ref_energies = -8.24249611  -3.74226843

[option]
rslt_out = always
energy_output_interval = 1
backup_interval = 1
  • Use algo = EA-vc.
  • From v1.5.0, energy_output_interval in the [option] section sets the output interval in generations for the convex-hull plot and hull-distance file. Default: 1 (every generation); 0 disables automatic output.
  • From v1.5.0, backup_interval in the [option] section sets the automatic backup interval in generations. The default is 1; 0 disables automatic backups. See Features > Backup for details.
  • Change jobcmd according to your computing environment.
  • In the [structure] section, use ll_nat to specify the minimum number of atoms for each element, and ul_nat for the maximum.
  • n_pop = n_crsov + n_perm + n_strain + n_rand + n_add + n_elim + n_subs
  • In the ref_energies (end_point in versions 1.4.3 and earlier), 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 of atype.
  • 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 VASP

In the [VASP] section, specify the MAGMOM values for each element corresponding to atype in vasp_MAGMOM. When CrySPY copies the INCAR file to ./work/xxx/INCAR (where xxx is the structure ID), it appends n*vasp_MAGMOM (n is the number of atoms).

For example, if atype = (‘Fe’, ‘Al’), nat = (5, 3), and vasp_MAGMOM = (4.0 0.0), the following will be appended.

MAGMOM = 5*4.0 3*0.0

Although not used in this tutorial, INCAR’s LDAUL, LDAUU, and LDAUJ are also supported. In cryspy.in, they are used with the vasp_ prefix as follows:

[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

If the system changes from a binary alloy to a single element, such as nat = (5, 0), CrySPY will append the following to ./work/xxx/INCAR. No action is taken for elements with an atomic number of zero.

MAGMOM = 5*4.0
LDAUL = 2
LDAUU = 4.0
LDAUJ = 0.0

calc_in/

POTCAR

In EA-vc, prepare a separate POTCAR file for each element. The file names should be:

  • POTCAR_Fe
  • POTCAR_Al

Add the element name as written in atype to the end of the file name. CrySPY prepares ./work/xxx/POTCAR according to the number of atoms in the structure. For example, if the structure consists only of Fe (nat = (5, 0)), use POTCAR_Fe. If the structure is Fe-Al (nat = (4, 4)), concatenate POTCAR_Fe and POTCAR_Al to create 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.