Band structure of 2d materials, e.g. , Graphene.
STEP 1 Optimized the lattice constant.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 &CONTROL calculation='vc-relax' prefix='graphene' restart_mode='from_scratch' outdir='./outdir' pseudo_dir = '/BIGDATA1/ac_iphy_jrsun_1/soft/QE/SSSP' forc_conv_thr=1.0d-4 etot_conv_thr=1.0d-6 / &SYSTEM ibrav = 12 , a = 2.460 , b = 2.460 , c= 20 , cosab=-0.500000, nat = 2 , ntyp = 1 , ecutwfc = 40.0 , ecutrho = 400.0 , occupations = 'smearing', degauss = 0.0001 , smearing = 'marzari-vanderbilt' / &ELECTRONS conv_thr = 1.0 d-8 , mixing_beta = 0.3 , / &IONS ion_dynamics='bfgs' / &CELL press_conv_thr = 0.5 D0 cell_dynamics = bfgs, cell_dofree = '2 Dxy' / ATOMIC_SPECIES C 12.0107 C.pbe-n-kjpaw_psl.1.0 .0 .UPF ATOMIC_POSITIONS crystal C 0.000000000 0.000000000 0.250000000 C 0.333333333 0.666666667 0.250000000 K_POINTS automatic12 12 1 0 0 0
New tags :
ibrav = 12
1 2 3 4 5 12 Monoclinic P, unique axis c celldm(2 )=b/a celldm (3 )=c/a, celldm (4 )=cos(ab) v1 =(a,0 ,0 ), v2 =(b*cos(gamma),b*sin(gamma),0 ), v3 = (0 ,0 ,c) where gamma is the angle between axis a and b.
and if we use a, b, c, the unit is $\overset{\circ}{A}$. 2. press_conv_thr
: Convergence threshold on the pressure for variable cell relaxation, and the default value is 0.5D0 Kbar. 3. cell_dofree = '2Dxy'
: only x and y components are allowed to change
And we find the relaxed structure file in .out
file.
1 2 3 4 5 6 7 8 9 10 11 12 13 Begin final coordinates new unit-cell volume = 710.60309 a.u.^3 ( 105.30051 Ang^3 ) density = 0.37881 g/cm^3 CELL_PARAMETERS (alat= 4.64872629 ) 1 .002304830 0 .000000000 0 .000000000 -0.501152415 0 .868021445 0 .000000000 0 .000000000 0 .000000000 8.130081301 ATOMIC_POSITIONS (crystal) C 0 .0000000000 0 .0000000000 0 .2500000000 C 0 .3333333330 0 .6666666670 0 .2500000000 End final coordinates
STEP 2 The self-consistent calculation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 &CONTROL calculation='scf' prefix='graphene' restart_mode='from_scratch' outdir='./outdir' pseudo_dir = '/BIGDATA1/ac_iphy_jrsun_1/soft/QE/SSSP' / &SYSTEM ibrav = 0 , celldm(1 ) = 4.64872629 nat = 2 , ntyp = 1 , ecutwfc = 40 .0 , ecutrho = 400 .0 , occupations = 'smearing', degauss = 0 .0001 , smearing = 'marzari-vanderbilt' / &ELECTRONS conv_thr = 1 .0d -10 , mixing_beta = 0 .3 , / ATOMIC_SPECIES C 12 .0107 C.pbe-n-kjpaw_psl.1 .0 .0 .UPF CELL_PARAMETERS alat 1 .002304830 0 .000000000 0 .000000000 -0.501152415 0 .868021445 0 .000000000 0 .000000000 0 .000000000 8.130081301 ATOMIC_POSITIONS crystal C 0 .0000000000 0 .0000000000 0 .2500000000 C 0 .3333333330 0 .6666666670 0 .2500000000 K_POINTS automatic12 12 1 0 0 0
Here we cancel the symmetry and use the structure file in the previous step.
STEP 3 The nscf calculation to obtain the more accurate Fermi energy.
1 Change the calculations to be nscf, and modify the k-mesh to be 24 24 1
Here the Fermi energy is -2.3461 eV in scf calculation and -2.3461 eV in nscf calculation, so 12,12,1 k-mesh is enough, so this step can be neglected.
STEP 4 Band structure calculations.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 &CONTROL calculation='bands' prefix='graphene' restart_mode='from_scratch' outdir='./outdir' pseudo_dir = '/BIGDATA1/ac_iphy_jrsun_1/soft/QE/SSSP' / &SYSTEM ibrav = 0 , celldm(1 ) = 4.64872629 nat = 2 , ntyp = 1 , ecutwfc = 40 .0 , ecutrho = 400 .0 , occupations = 'smearing', degauss = 0 .0001 , smearing = 'marzari-vanderbilt' / &ELECTRONS conv_thr = 1 .0d -10 , mixing_beta = 0 .3 , / ATOMIC_SPECIES C 12 .0107 C.pbe-n-kjpaw_psl.1 .0 .0 .UPF CELL_PARAMETERS alat 1 .002304830 0 .000000000 0 .000000000 -0.501152415 0 .868021445 0 .000000000 0 .000000000 0 .000000000 8.130081301 ATOMIC_POSITIONS crystal C 0 .0000000000 0 .0000000000 0 .2500000000 C 0 .3333333330 0 .6666666670 0 .2500000000 K_POINTS crystal_b4 0 .0000000000 0 .000000000 0 .000000000 30 ! G -0 .333333333 0 .666666667 0 .000000000 30 ! K0 .000000000 0 .500000000 0 .000000000 30 ! M0 .0000000000 0 .000000000 0 .000000000 30 ! G
STEP 5 post-processing from bands output using bands.x
1 2 3 4 5 &bands outdir = './outdir' prefix = 'graphene' filband = 'graphene.bands.dat' /
STEP 6 plot band using plotband.x
1 2 3 4 5 6 graphene.bands .dat -25 12 graphene.bands .xmgr graphene.bands .ps -2.3461 5 -2.3461
HINT : This post-processing can not use parallel computing.
Here is the band structure of graphene, and we can find the Dirac point is located at K point.