In this tutorial we will calculate the Band Structure of the antiferromagnetic Iron Oxide feO using PBE and PBE+U methods. We need 2 input files .cell and .param.


PBE Method

FeO-pbe.cell

! FeO.cell
%BLOCK LATTICE_CART
1.768531594289456 0.000000000000001 5.002162732258922
-0.884265797144728 1.531593288050063 5.002162732258921
-0.884265797144728 -1.531593288050063 5.002162732258922
%ENDBLOCK LATTICE_CART

%BLOCK POSITIONS_FRAC
O 0.75 0.750 -1.250
O -0.75 -0.750 1.250
Fe 0.00 0.000 -0.000 spin=-4.0
Fe 1.50 -0.500 -0.500 spin=4.0
%ENDBLOCK POSITIONS_FRAC

kpoints_mp_grid: 6 6 6

symmetry_generate

%block spectral_kpoint_path
0.500 0.500 0.000
0.000 0.000 0.000
0.500 0.500 0.500
0.000 0.500 0.000
0.000 0.000 0.000
%endblock spectral_kpoint_path

 

FeO-pbe.param

task            spectral      ! The TASK keyword instructs CASTEP what to do
spectral_task bandstructure !
xc_functional PBE ! Which exchange-correlation functional to use.
cut_off_energy 600 eV !
opt_strategy speed ! Choose algorithms for best speed
nextra_bands : 17
spin_polarised true ! Run a spin polarised calculation

 

Execution

For serial calculation

/FeO-pbe-bands$ castep.serial FeO-pbe

For parallel calculation

/FeO--pbe-bands$ mpirun -np 4 castep.mpi FeO-pbe

 Plotting

/FeO-pbe-bands$ dispersion.pl -sym fcc -xg FeO-pbe

 A PBE calculation incorrectly finds FeO to be a metal.

 

PBE+U Method

FeO-pbe-u.cell

! FeO-u.cell
%BLOCK LATTICE_CART
1.768531594289456 0.000000000000001 5.002162732258922
-0.884265797144728 1.531593288050063 5.002162732258921
-0.884265797144728 -1.531593288050063 5.002162732258922
%ENDBLOCK LATTICE_CART

%BLOCK POSITIONS_FRAC
O 0.75 0.750 -1.250
O -0.75 -0.750 1.250
Fe 0.00 0.000 -0.000 spin=-4.0
Fe 1.50 -0.500 -0.500 spin=4.0
%ENDBLOCK POSITIONS_FRAC

kpoints_mp_grid: 6 6 6

symmetry_generate

%block spectral_kpoint_path
0.500 0.500 0.000
0.000 0.000 0.000
0.500 0.500 0.500
0.000 0.500 0.000
0.000 0.000 0.000
%endblock spectral_kpoint_path

%block hubbard_u
Fe 1 d: 2.5
Fe 2 d: 2.5
%endblock hubbard_u

For the param file we need only to make copy with the new name as follows:

cp FeO-pbe.param FeO-pbe-u.param

 

 

Execution

For serial calculation

/FeO-pbe-u-bands$ castep.serial FeO-pbe-u

For parallel calculation

/FeO--pbe-u-bands$ mpirun -np 4 castep.mpi FeO-pbe-u

 Plotting

/FeO-pbe-u-bands$ dispersion.pl -sym fcc -xg FeO-pbe-u

 


Note

Adding a Hubbard U term to the calculation opens the band gap and FeO is (correctly) predicted to be an antiferromangetic insulator.

 

Reference:  https://castep-docs.github.io/castep-docs/tutorials/Bands_and_DOS/magnetic/

 https://www.castep.org/features/capabilities/hamiltonian