30-band \(\mathbf{k}\cdot\mathbf{p}\) band structure calculation


This tutorial is under in development.


The 30-band model is under development in our software, therefore related syntax and available functionalities are expected to be changing. Strain effects are not included yet.

Input Files:


Scope of the tutorial:
  • Bandstructure of bulk Si, SiGe, and Ge within 30-band \(\mathbf{k}\cdot\mathbf{p}\)

Relevant keywords:
  • bulk-kp-dispersion

  • kp-parameters

  • k-vectors-sample-type

Main adjustable parameters in the input file:
  • set of parameters - %30band_parameters

  • panth of the bandstructure - %Bandstructure

  • parameters controlling mole fraction of the modeled alloy %AlloySweepActive, %AlloySweepSize, %AlloySweepSteps

Relevant output Files:
  • Results\BandEdges.dat (energy profile)


This tutorial shows how to caluclate band structure of Si1-xGexalloys within 30-band \(\mathbf{k}\cdot\mathbf{p}\) model. It answers the following questions:

  • How to trigger 30-band model in nextnano³?

  • How to define path on which you want to calculate the band structure?

  • Which output file contain the band structure computed within the 30-band model?

The band structures presented in this tutorial are in agreement with those reported by Rideau et al. except vicinity of the \(K\) point, which is under investigation.

The Input File

30-band \(\mathbf{k}\cdot\mathbf{p}\) model can be called to compute bulk dispersion by specifying bulk-kp-dispersion = 30-band inside the group $output-kp-data.

bulk-kp-dispersion = 30-band

Parameters are currently hard-coded and available only for SiGe alloys. To assure that parameters from the publication of Rideau et al. are used (we are already testing other sets of parameters) one should set kp-parameters = Rideau inside the group $numeric-control.

kp-parameters = Rideau

The path along which the band structure is computed can be specified inside the group $tighten by assigning one of available paths (use autocomplete feature in nextnanomat) to the attribute k-vectors-sample-type.

k-vectors-sample-type = L-Gamma-X-W-K-L-W-X-K-Gamma

Output files

The band structure generated after running the input file bulk_kp_dispersion_Si_SiGe_Ge_30band_nn3.in can be found in a file …kp_bulkbulk_kp30kp_dispersion_BrillouinZone1_L-Gamma-X-W-K-L-W-X-K-Gamma.dat, where the first column contains indexes of following wave vectors along the path and all the following columns contain eigenvalues starting with the highest ones. Exact coordinates of wave vectors for each point of the computed band structure can be found in a related file …kp_bulkbulk_kp30kp_dispersion_BrillouinZone1_L-Gamma-X-W-K-L-W-X-K-Gamma_k_vectors.dat. There, the first column contains corresponding indexes of each k-point, the three following contain exact coordinates of each wave vector, and the last column stores the length of each wave vector.

Band structures of pure Germanium, Silicon Germanium, and pure Silicon generated within the input file are shown in the figures Figure, Figure, and Figure, respectively.


Figure Band structure of Germanium (Ge), %AlloyContent=1.0


Figure Band structure of Silicon Germanium (Si0.5Ge0.5), %AlloyContent=0.5


Figure Band structure of Silicon (Si), %AlloyContent=0.0

The variable %AlloyContent should be adjusted accordingly in the input file to choose the material.


This tutorial is based on the nextnano GmbH collaboration in the scope of the SiPho-G Project aiming at development of ultrahigh-speed optical components for next-generation photonic integrated circuits, and it is funded by the European Union’s Horizon 2020 research and innovation program under grant agreement No 101017194.