To calculate the fermi surface of Copper, we need to use the C2X code ( to install the code C2X code click here) and the XCRYSDEN code. To install the XCRYSDEN code we proceed as follows:
$ sudo apt install xcrysden
copper.cell
%block LATTICE_CART
-1.7669227 0.0000000 1.7669227
0.0000000 1.7669227 1.7669227
-1.7669227 1.7669227 0.0000000
%endblock LATTICE_CART
%block POSITIONS_FRAC
Cu 0.000000 0.000000 0.000000
%endblock POSITIONS_FRAC
KPOINT_MP_GRID 9 9 9
KPOINT_MP_OFFSET 0 0 0
SPECTRAL_KPOINT_MP_GRID 45 45 45
SPECTRAL_KPOINT_MP_OFFSET 0 0 0
symmetry_generate
copper.param
task : spectral
spectral_task : bandstructure
spectral_nextra_bands : 0
spectral_restart : F
and for Castep version 24.1 onwards one may also add
spectral_restart : F
to save some .spec files being written.
This example will use a 9x9x9 grid for the electronic minimisation, which symmetry will reduce to 35 k-points. It then uses a 45x45x45 grid for calculating the band structure, which symmetry reduces to 2300 k-points.
Note that Castep assumes that more bands are wanted in a
bandstructure calculations. Extra unoccupied bands are not needed
for the visualisation of the Fermi surface. Castep's default is to
add 5√nbands bands, so this calculation which uses ten bands
for the electronic minimisation will default to 26 for the band
structure calculation unless bs_nextra_bands is
set. Failure to set bs_nextra_bands merely increases
the run-time and disk space required by a factor of about 2.5.
The above calculation requires about 1GB of memory, 10MB of disk space, and takes around 5 minutes on a quad core 3GHz Ivy Bridge desktop. It can be run with
Execution
For serial calculation
$ castep.serial copper
For parallel calculation
$ mpirun -np 4 castep.mpi copper
The results include a .check file which contains the
wavefunctions from just the 35 kpoints used in the electronic
minimisation, and a .bands file which contains
eigenvalues from the 2300 kpoints used in the band structure
calculation.
Either can be used as input to c2x. If run as:
$ c2x --bxsf copper.check copper.bxsf
it will use the eigenvalues from the electronic minimisation and
the symmetry operations also found in the .check file
and generate a .bxsf file with a 9x9x9 grid (729
points).
If run as:
$ c2x --bxsf copper.bands copper.bxsf
it will use the eigenvalues from the band structure calculation,
and will additionally read the .cell file. On finding
no symmetry operations explicitly listed in the .cell
file it will call spglib (if compiled with spglib support) in order
to obtain the symmetry operations required to expand the k-points
back to the 45x45x45 unreduced grid.
Finally one can run XCrysDen as:
$ xcrysden --bxsf copper.bxsf &
The bands will be listed twice, once for each spin, as Castep defaults to treating this system as spin-polarised. The bands which cross the Fermi surface are numbers 6, and 6+nbands.
Reference: https://www.c2x.org.uk/fermi/castep.html
0 Comments