QE-14

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.0d-8,
mixing_beta = 0.3,
/
&IONS
ion_dynamics='bfgs'
/
&CELL
press_conv_thr = 0.5D0
cell_dynamics = bfgs,
cell_dofree = '2Dxy'
/
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 automatic
12 12 1 0 0 0

New tags:

  1. 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 automatic
12 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_b
4
0.0000000000 0.000000000 0.000000000 30 ! G
-0.333333333 0.666666667 0.000000000 30 ! K
0.000000000 0.500000000 0.000000000 30 ! M
0.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.


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!