Bulk Electronic Band Structure

classical{ bulk_dispersion{} } (optional)

The group bulk_dispersion{} allows calculating bulk \(\mathbf{k} \cdot \mathbf{p}\) band structure of the material at a specific position in the simulation domain. The computation happens just after initialisation of the structure. Outputs are located in the root output directory of the simulation.

Gamma{} (optional)

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the conduction band at \(\Gamma\).

HH{} (optional)

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the heavy-hole valence band.

LH{} (optional)

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the light-hole valence band.

SO{} (optional)

When this group is defined, the bulk electronic band structure is computed within 1-band parabolic model using effective mass tensor for the split-off valence band.

KP6{} (optional)

When this group is defined, 6-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure.

use_Luttinger_parameters (optional)

By default the solver uses the DKK (Dresselhaus-Kip-Kittel) parameters (L, M, N). If enabled then it uses Luttinger parameters (\(\gamma_1\), \(\gamma_2\), \(\gamma_3\)) instead.

value:

yes or no

default:

no

approximate_kappa (optional)

By default the \(\kappa\) for zinc blende crystal structure is taken from the database or input file. If this is enabled then the solver is forced to approximate kappa through others 6-band \(\mathbf{k} \cdot \mathbf{p}\) parameters, even though kappa is given in database or input file.

value:

yes or no

default:

no

KP8{} (optional)

When this group is defined, 8-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure..

use_Luttinger_parameters (optional)

By default the solver uses the DKK (Dresselhaus-Kip-Kittel) parameters (L, M, N). If enabled then it uses Luttinger parameters (\(\gamma_1\), \(\gamma_2\), \(\gamma_3\)) instead.

value:

yes or no

default:

no

from_6band_parameters (optional)

By default the 8-band \(\mathbf{k} \cdot \mathbf{p}\) parameters are taken from database or input file. If enabled then it evaluates the 8-band \(\mathbf{k} \cdot \mathbf{p}\) parameters from 6-band \(\mathbf{k} \cdot \mathbf{p}\) parameters, Kane parameter \(E_P\) and temperature dependent band gap \(E_g\).

value:

yes or no

default:

no

approximate_kappa (optional)

By default the \(\kappa\) for zinc blende crystal structure is taken from the database or input file. If this is enabled then the solver is forced to approximate kappa through others 8-band \(\mathbf{k} \cdot \mathbf{p}\) parameters, even though kappa is given in database or input file.

value:

yes or no

default:

no

evaluate_S (optional)

By default \(S\) (\(S_1\), \(S_2\) for wurtzite) \(\mathbf{k} \cdot \mathbf{p}\) parameter(s) is (are) taken from database or input file. If enabled it evaluates \(S\) (\(S_1\), \(S_2\) for wurtzite) \(\mathbf{k} \cdot \mathbf{p}\) parameter(s) from effective mass \(m_e\) (\(m_{e,par}\), \(m_{e,perp}\) for wurtzite), Kane parameter(s), spin-orbit coupling(s) and temperature dependent band gap.

value:

yes or no

default:

no

rescale_S_to (optional)

set \(S\) for zinc blende crystal structure to specified value and rescale \(E_P\), \(L'\), \(N^{+}\) in order to preserve electron’s effective mass.

set \(S_1\), \(S_2\) for wurtzite crystal structure to specified values respectively and rescale \(E_{P1}\), \(E_{P2}\), \(L_{1}'\), \(L_{2}'\), \(N^+_1\), \(N^+_2\) in order to preserve electron’s effective masses.

value:

float for zinc blende crystal structure

2D float vector for wurtzite crystal structure

full{ } (optional)

calculate bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersion in 3D k-space. Multiple instances are allowed.

name

name of the dispersions which also defines the names of the output files.

value:

string

position{ }

specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.

x

for 1D simulations (x)

value:

float

y (optional)

for 2D simulations (x,y)

value:

float

z (optional)

for 3D simulations (x,y,z)

value:

float

shift_holes_to_zero (optional)

If enabled shifts the whole dispersion, so that the energy for the Gamma point for the highest hole band is equal to 0.0 [eV].

value:

yes or no

default:

no

kxgrid{ }

specifies a grid{...} in k-space for a 1D/2D/3D plot of the energy dispersion E(kx, ky, kz). allowed only, if simulation is periodic along x-direction and current quantum region extends over the whole x-domain. The options are same as grid{}

kygrid{ }

The options are same as kxgrid{ }.

kzgrid{ }

The options are same as kxgrid{ }.

path{ } (optional)

calculate bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersion along custom path in k-space. Multiple instances are allowed.

name

name of the dispersions which also defines the names of the output files.

value:

string

position{ }

specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.

x

for 1D simulations (x)

value:

float

y (optional)

for 2D simulations (x,y)

value:

float

z (optional)

for 3D simulations (x,y,z)

value:

float

shift_holes_to_zero (optional)

If enabled shifts the whole dispersion, so that the energy for the Gamma point for the highest hole band is equal to 0.0 [eV].

value:

yes or no

default:

no

point{ }

specifies points in the path through k-space. At least two k points have to be defined. Line between two such points is called segment.

k

k-point represented by vector \([k_x, k_y, k_z]\). The units are \(nm^{-1}\).

value:

3D float vector

spacing

specifies approximate spacing for intermediate points in the path segments in \(nm^{-1}\). Excludes num_points.

value:

float

num_points

specifies number of points (intermediate + two corner points) for each single path segment. Excludes spacing.

value:

integer > 1

lines{ } (optional)

calculate dispersions along some predefined paths of high symmetry in k-space, e.g. [100], [110], [111] and their equivalents (in total maximally 13).

name

name of the dispersions which also defines the names of the output files.

value:

string

position{ }

specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.

x

for 1D simulations (x)

value:

float

y (optional)

for 2D simulations (x,y)

value:

float

z (optional)

for 3D simulations (x,y,z)

value:

float

shift_holes_to_zero (optional)

If enabled shifts the whole dispersion, so that the energy for the Gamma point for the highest hole band is equal to 0.0 [eV].

value:

yes or no

default:

no

k_max

specifies a maximum absolute value (radius) for the k-vector in \(nm^{-1}\)

value:

float

spacing

specifies approximate spacing for intermediate points in the path segments in \(nm^{-1}\).

value:

float

output_bulk_dispersions{ } (optional)

output all defined bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersions.

output_masses{ } (optional)

output effective masses calculated from the dispersions.

output_inverse_masses{ } (optional)

output inverse of effective masses calculated from the dispersions.