Fermi Surface
Here we will calculate Fermi surface of copper. First step is to perform self- consistent field calculation.
src/cu/pw.scf.cu.in
&control
calculation = "scf",
prefix = "cu",
pseudo_dir = "../pseudos/",
outdir = "/tmp/cu/"
/
&system
ibrav = 2,
celldm(1) = 6.678,
nat = 1,
ntyp = 1,
ecutwfc = 40,
ecutrho = 300,
occupations = "smearing",
smearing = "mp",
degauss = 0.01,
nbnd = 16
/
&electrons
conv_thr = 1e-9,
/
ATOMIC_SPECIES
Cu 63.546 Cu_ONCV_PBE-1.0.oncvpsp.upf
ATOMIC_POSITIONS alat
Cu 0.00 0.00 0.00
K_POINTS automatic
8 8 8 1 1 1
mpirun -np 4 pw.x -in pw.scf.cu.in > pw.scf.cu.out
Next we perform bands
calculation over dense uniform k-grid:
src/cu/pw.bands.cu.in
&control
calculation = "bands",
prefix = "cu",
pseudo_dir = "../pseudos/",
outdir = "/tmp/cu/"
/
&system
ibrav = 2,
celldm(1) = 6.678,
nat = 1,
ntyp = 1,
ecutwfc = 40,
ecutrho = 300,
occupations = "smearing",
smearing = "mp",
degauss = 0.01,
nbnd = 16
/
&electrons
conv_thr = 1e-9,
/
ATOMIC_SPECIES
Cu 63.546 Cu_ONCV_PBE-1.0.oncvpsp.upf
ATOMIC_POSITIONS alat
Cu 0.00 0.00 0.00
K_POINTS automatic
30 30 30 0 0 0
mpirun -np 4 pw.x -in pw.bands.cu.in > pw.bands.cu.out
Finally, we process the data with fs.x
post processing tool. Below is the
input file:
src/cu/fs.cu.in
&fermi
outdir = "/tmp/cu/"
prefix = "cu"
/
mpirun -np 4 fs.x -in fs.cu.in > fs.cu.out
We can visualize the output file cu_fs.bxsf
using xcrysdens program:
xcrysden --bxsf cu_fs.bxsf