We need 2 files

Fe-bands.cell

! Fe.cell
%BLOCK LATTICE_CART
-1.433199999999999 1.433200000000001 1.433200000000001
1.433200000000001 -1.433200000000000 1.433200000000000
1.433200000000000 1.433200000000000 -1.433200000000000
%ENDBLOCK LATTICE_CART

%BLOCK POSITIONS_FRAC
Fe 0.0000000000000000 0.0000000000000000 0.0000000000000000
%ENDBLOCK POSITIONS_FRAC

symmetry_generate

! Kpoint grid for the Groundstate (SCF) calculation
kpoint_mp_grid 8 8 8

! kpoint path through the Brillouin Zone for the Bandstructure
%BLOCK spectral_KPOINT_PATH
0.0 0.0 0.0 !G
0.5 0.5 0.5 !H
0.5 0.0 0.0 !N
0.0 0.0 0.0 !G
0.75 0.25 -0.25 !P
0.5 0.0 0.0 !N
%ENDBLOCK spectral_KPOINT_PATH

Fe-bands.param

! Fe.param
task spectral ! The TASK keyword instructs CASTEP what to do
spectral_task bandstructure !
xc_functional LDA ! Which exchange-correlation functional to use.
cut_off_energy 500 eV !
grid_scale 2.0 !
opt_strategy speed ! Choose algorithms for best speed
spin 1 ! Set the spin in the original cell to 1.
spin_polarised true ! Run a spin polarised calculation
spectral_nbands 6 ! number of bands to compute during the BS run

In the param file we set spin_polarised true in order to allow the up and down spin electrons to take different configurations. It is important to start the calculation with an initial spin density using e.g. spin: 1. The value of the initial spin should not affect the final answer - a non-zero value is just needed to break the symmetry between the spin channels. 

Note

There are 2 ways to use the pseudopotentials:

- Using an external pseudopotential with extention .usp

- Using an internal pseudopotential created by the code during the execution according to type mentioned  in the param file which we will do it in this tutorial.


Execution

For serial calculation

/Fe-bands$ castep.serial Fe-bands

For parallel calculation

/Fe-bands$ mpirun -np 4 castep.mpi Fe-bands

 

At the end of the calculation the net spin of the unit cell is reported in the castep file e.g. 

---------------------------------------------------------------

Atomic Populations (Mulliken)
-----------------------------
Species Ion Spin s p d f Total Charge(e) Spin(hbar/2)
==============================================================================================
Fe 1 up: 0.326 0.278 4.472 0.000 5.076 0.000 2.153
1 dn: 0.346 0.390 2.187 0.000 2.924
==============================================================================================

 

Integrated Spin Density     =     2.153     hbar/2   

 

Plotting

/Fe-bands$ dispersion.pl -xg -bs -mono -symmetry bcc Fe-bands.bands

You might find the -mono option to dispersion.pl to be useful - it colours the bands by spin channel.

We will get the following picture

 

 

Note

The band structure has similarities with that of Copper - and other 3d elements - with flat 3d bands and dispersive s bands. We colour code the bands according to their spin chactacter (red=up, blue=down). We can see that there is an almost constant exchange splitting of 1.5eV between the up and down 3d bands. The splitting between the s-like bands is much smaller. More up states lie below the fermi energy than down states - hence the net spin of the unit cell.

 

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

https://www-users.york.ac.uk/~mijp1/teaching/grad_FPMM/practical_classes/Practical_2.pdf