Skip to content

33: Monolayer BC\(_2\)N — \(k\cdot p\) expansion coefficients

  • Outline: Calculate \(k\cdot p\) expansion coefficients monolayer BC\(_2\)N using quasi-degenerate (Löwdin) perturbation theory. In preparation for this example it may be useful to read Ref. 1

  • Directory: tutorial/tutorial33/ Files can be downloaded from here

  • Input files:

    • bc2n.scf The pwscf input file for ground state calculation

    • bc2n.nscf The pwscf input file to obtain Bloch states on a uniform grid

    • bc2n.pw2wan The input file for pw2wannier90

    • bc2n.win The wannier90 and postw90 input file

 

  1. Run pwscf to obtain the ground state

    Terminal
    pw.x < bc2n.scf > scf.out
    
  2. Run pwscf to obtain the ground state

    Terminal
    pw.x < bc2n.nscf > nscf.out
    
  3. Run Wannier90 to generate a list of the required overlaps (written into the bc2n.nnkp file)

    Terminal
    wannier90.x -pp bc2n
    
  4. Run pw2wannier90 to compute:

    • The overlaps \(\langle u_{n\bf{k}}|u_{n\bf{k+b}}\rangle\) between spinor Bloch states (written in the bc2n.mmnfile)
    • The projections for the starting guess (written in the bc2n.amn file)
    Terminal
    pw2wannier90.x < bc2n.pw2wan > pw2wan.out
    
  5. Run wannier90 to compute MLWFs

    Terminal
    wannier90.x bc2n
    
  6. Run postw90 to compute expansion coefficients

    Terminal
    postw90.x bc2n
    

Expansion coefficients

For computing \(k\cdot p\) expansion coefficients as given by quasi-degenerate (Löwdin) perturbation theory, set

Input file
berry = true
berry_task = kdotp

Select the k-point around which the expansion coefficients will be computed, e.g., the S point

Input file
kdotp_kpoint  =  0.5000 0.0000 0.5000

Set number of bands that should be taken into account for the \(k\cdot p\) expansion, as well as their band indexes within the Wannier basis

Input file
kdotp_num_bands = 2
kdotp_bands =  2,3

Since no k-space integral is needed, set

Input file
berry_kmesh = 1 1 1

Although not used, we also need to input the value of the Fermi level in eV

Input file
fermi_energy = [insert your value here]

On output, the program generates three files, namely SEED-kdotp_0.dat, SEED-kdotp_1.dat and SEED-kdotp_2.dat, which correspond to the zeroth, first and second order expansion coefficients, respectively. The dimension of the matrix contained in each file is \(3^{l}\times N^{2}\), where \(N\) is the number of bands set by kdotp_num_bands, and \(l\) is the order of the expansion term (currently \(l=0,1\) or \(2\)).

These coefficients can be used, among other things, to compute the energy dispersion of the bands of interest around the chosen k-point. The \(k\cdot p\) band dispersion can be computed and plotted along \(k_x\) (from S to X) using python and the file kdotp_plot.py provided in the example folder

Terminal
    python kdotp_plot.py

For comparison, the exact band structure calculated usingWannier90 (file bc2n_band.dat, generated automatically) is also plotted along (see the band dispersion plot).

Image title
Band dispersion of monolayer BC2N around \(S\) point. Exact results (solid dots) are compared to first-order (blue) and second-order (red) \(k\cdot p\) model results for valence and conduction bands.

  1. Julen Ibañez-Azpiroz, Fernando de Juan, and Ivo Souza. Quantitative analysis of two-band \(k\cdot p\) models describing the shift-current photoconductivity. ArXiv e-prints, 2019. URL: http://arxiv.org/abs/1910.06172, arXiv:1910.06172