2.10.12. bulk_dispersion{ }
Calling sequence
classical{ bulk_dispersion{ } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
The global{ magnetic_field{ } } is must not be specified in the input file.
Functionality
This group allows calculating bulk band structures of the materials at specific positions in the simulation domain within 1-band approximations or \(\mathbf{k} \cdot \mathbf{p}\) models. The computation is performed just after initialization of the structure. Related outputs are located in the root output directory of the simulation.
Example
classical{
bulk_dispersion{
Gamma{}
KP8{}
KP30{}
path{
name = "name_1"
...
}
path{
name = "name_2"
...
}
full{
name = "name_3"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
Nested keywords
Gamma{ }
Calling sequence
classical{ bulk_dispersion{ Gamma{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, or KP8{ } is required if global{ crystal_wz{ } } is already present.
Functionality
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\).
Example
classical{
bulk_dispersion{
Gamma{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
X{ }
Calling sequence
classical{ bulk_dispersion{ X{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
—
Functionality
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 \(X\).
Delta{ }
Calling sequence
classical{ bulk_dispersion{ Delta{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
—
Functionality
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 \(\Delta\).
L{ }
Calling sequence
classical{ bulk_dispersion{ L{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
—
Functionality
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 \(L\).
HH{ }
Calling sequence
classical{ bulk_dispersion{ HH{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, or KP8{ } is required if global{ crystal_wz{ } } is already present.
Functionality
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.
Example
classical{
bulk_dispersion{
HH{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
LH{ }
Calling sequence
classical{ bulk_dispersion{ LH{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, or KP8{ } is required if global{ crystal_wz{ } } is already present.
Functionality
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.
Example
classical{
bulk_dispersion{
LH{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
SO{ }
Calling sequence
classical{ bulk_dispersion{ SO{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, or KP8{ } is required if global{ crystal_wz{ } } is already present.
Functionality
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.
Example
classical{
bulk_dispersion{
SO{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
KP6{ }
Calling sequence
classical{ bulk_dispersion{ KP6{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, or KP8{ } is required if global{ crystal_wz{ } } is already present.
Functionality
When this group is defined, 6-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure.
Example
classical{
bulk_dispersion{
KP6{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
KP6{ use_Luttinger_parameters }
Calling sequence
classical{ bulk_dispersion{ KP6{ use_Luttinger_parameters } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: choice
values:
yes
orno
default:
no
Dependencies
KP6{ use_Luttinger_parameters } and KP6{ approximate_kappa } are not allowed if global{ crystal_wz{ } } is already present.
Functionality
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.
Example
classical{
bulk_dispersion{
KP6{
use_Luttinger_parameters = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP6{ approximate_kappa }
Calling sequence
classical{ bulk_dispersion{ KP6{ approximate_kappa } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: choice
values:
yes
orno
default:
no
Dependencies
KP6{ use_Luttinger_parameters } and KP6{ approximate_kappa } are not allowed if global{ crystal_wz{ } } is already present.
Functionality
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.
Example
classical{
bulk_dispersion{
KP6{
approximate_kappa = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP8{ }
Calling sequence
classical{ bulk_dispersion{ KP8{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, or KP8{ } is required if global{ crystal_wz{ } } is already present.
Functionality
When this group is defined, 8-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure.
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
KP8{ use_Luttinger_parameters }
Calling sequence
classical{ bulk_dispersion{ KP8{ use_Luttinger_parameters } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: choice
values:
yes
orno
default:
no
Dependencies
KP6{ use_Luttinger_parameters } and KP6{ approximate_kappa } is not allowed if global{ crystal_wz{ } } is already present.
Functionality
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.
Example
classical{
bulk_dispersion{
KP8{
use_Luttinger_parameters = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP8{ from_6band_parameters }
Calling sequence
classical{ bulk_dispersion{ KP8{ from_6band_parameters } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
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\).
Example
classical{
bulk_dispersion{
KP8{
from_6band_parameters = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP8{ evaluate_S }
Calling sequence
classical{ bulk_dispersion{ KP8{ evaluate_S } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
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.
Example
classical{
bulk_dispersion{
KP8{
evaluate_S = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP8{ rescale_S_to }
Calling sequence
classical{ bulk_dispersion{ KP8{ rescale_S_to } } }
Properties for Zincblende: - usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\) - type: real number - values: no constraints - default: \(r=0.0\) - unit: \(\mathrm{-}\)
Properties for Wurtzite: - usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\) - type: vector of 2 real numbers: \((r_1, r_2)\) - values: no constraints - default: \(r_1=0.0\), \(r_2=0.0\) - unit: \(\mathrm{-}\)
Functionality
Sets \(S\) for zinc blende crystal structure to specified value and rescale \(E_P\), \(L'\), \(N^{+}\) in order to preserve electron’s effective mass.
Sets \(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.
Examples
classical{
bulk_dispersion{
KP8{
rescale_S_to = 1.0
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
classical{
bulk_dispersion{
KP8{
rescale_S_to = [ 1.0, 1.0 ]
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_wz{...}
}
KP8{ approximate_kappa }
Calling sequence
classical{ bulk_dispersion{ KP8{ approximate_kappa } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: choice
values:
yes
orno
default:
no
Dependencies
KP6{ use_Luttinger_parameters } and KP6{ approximate_kappa } is not allowed if global{ crystal_wz{ } } is already present.
Functionality
By default, the \(\kappa\) for zincblende 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.
Example
classical{
bulk_dispersion{
KP8{
approximate_kappa = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP8{ electron_far_band }
Calling sequence
classical{ bulk_dispersion{ KP8{ electron_far_band = ... } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{-}\)
Dependencies
—
Functionality
Far-band contribution to electrons \(S = 1.0 + r\). The default results in rescaling such that \(S = 1.0\).
Note
It can be useful to set this value to r = -1.0
which then corresponds to setting \(S = 0.0\).
KP8{ correct_electron_gfactor }
Calling sequence
classical{ bulk_dispersion{ KP8{ correct_electron_gfactor = ... } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values:
[0.0, ...)
default: \(r=-1.0\)
Dependencies
—
Functionality
KP8{ rescale_kp_everywhere }
Calling sequence
classical{ bulk_dispersion{ KP8{ rescale_kp_everywhere } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: choice
values:
yes
orno
default:
yes
Dependencies
—
Functionality
If set to yes
then \(N, M\), and \(P\) parameters are rescaled.
See more details in Zeeman Term.
KP8{ avoid_spurious }
Calling sequence
classical{ bulk_dispersion{ KP8{ avoid_spurious } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: choice
values:
yes
orno
default:
no
Dependencies
—
Functionality
If set to yes
then algorithm avoiding spurious solutions is used.
KP14{ }
Calling sequence
classical{ bulk_dispersion{ KP14{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
KP14{ } and KP30{ } is not allowed if global{ crystal_wz{ } } is already present.
Functionality
When this group is defined, 30-band \(\mathbf{k} \cdot \mathbf{p}\) model is applied to compute the bulk electronic band structure.
Example
classical{
bulk_dispersion{
KP14{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP14{ use_Luttinger_parameters }
Calling sequence
classical{ bulk_dispersion{ KP14{ use_Luttinger_parameters } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
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.
Example
classical{
bulk_dispersion{
KP14{
use_Luttinger_parameters = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP14{ from_6band_parameters }
Calling sequence
classical{ bulk_dispersion{ KP14{ from_6band_parameters } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
By default the 14-band \(\mathbf{k} \cdot \mathbf{p}\) parameters are taken from database or input file. If enabled then it evaluates the 14-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\).
Example
classical{
bulk_dispersion{
KP14{
from_6band_parameters = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP14{ evaluate_S }
Calling sequence
classical{ bulk_dispersion{ KP14{ evaluate_S } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
By default \(S\) \(\mathbf{k} \cdot \mathbf{p}\) parameter(s) is (are) taken from database or input file. If enabled it evaluates \(S\) \(\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.
Example
classical{
bulk_dispersion{
KP14{
evaluate_S = yes
}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
KP30{ }
Calling sequence
classical{ bulk_dispersion{ KP30{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of Gamma{ }, HH{ }, LH{ }, SO{ }, KP6{ }, KP8{ }, KP14{ }, or KP30{ } is required if global{ crystal_zb{ } } is already present.
KP14{ } and KP30{ } is not allowed if global{ crystal_wz{ } } is already present.
Functionality
When this group is defined, 30-band \(\mathbf{k} \cdot \mathbf{p}\) model [RideauPRB2006] is applied to compute the bulk electronic band structure.
Example
classical{
bulk_dispersion{
KP30{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
crystal_zb{...}
}
full{ }
Calling sequence
classical{ bulk_dispersion{ full{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: no constraints
Dependencies
Functionality
Calculates bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersion in 3D k-space. Multiple instances are allowed.
Example
classical{
bulk_dispersion{
KP8{}
full{
name = "name_1"
...
}
full{
name = "name_2"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ name }
Calling sequence
classical{ bulk_dispersion{ full{ name } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: character string
Functionality
Name of the dispersion which also defines the names of the output files.
Example
classical{
bulk_dispersion{
KP8{}
full{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ position{ } }
Calling sequence
classical{ bulk_dispersion{ full{ position{ } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: exactly 1
Functionality
Specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.
Example
classical{
bulk_dispersion{
KP8{}
full{
name = "name"
position{...}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ position{ x } }
Calling sequence
classical{ bulk_dispersion{ full{ position{ x } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
Functionality
\(x\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
full{
name = "name"
position{
x = 10.5
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate1D{}
}
full{ position{ y } }
Calling sequence
classical{ bulk_dispersion{ full{ position{ y } } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
Dependencies
full{ position{ y } } is required if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.
full{ position{ y } } is not allowed if global{ simulate1D{ } } is specified in the input file.
Functionality
\(y\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
full{
name = "name"
position{
x = 10.5
y = 35.0
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate2D{}
}
full{ position{ z } }
Calling sequence
classical{ bulk_dispersion{ full{ position{ z } } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\) - full{ position{ z } } is required if global{ simulate1D{ } } is specified in the input file. - full{ position{ z } } is not allowed if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.
Functionality
\(z\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
full{
name = "name"
position{
x = 10.5
y = 35.0
z = 12.3
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate3D{}
}
full{ shift_holes_to_zero }
Calling sequence
classical{ bulk_dispersion{ full{ shift_holes_to_zero } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
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)
.
Example
classical{
bulk_dispersion{
KP8{}
full{
shift_holes_to_zero = yes
name = "name"
position{...}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ kxgrid{ } }
Calling sequence
classical{ bulk_dispersion{ full{ kxgrid{ } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: no constraints
Functionality
Specifies a grid along \(k_x\) for a 1D/2D/3D plot of the energy dispersion \(E(k_x, k_y, k_z)\).
Example
classical{
bulk_dispersion{
KP8{}
full{
shift_holes_to_zero = yes
name = "name"
position{...}
kxgrid{...}
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ kxgrid{ line{ } } }
Calling sequence
classical{ bulk_dispersion{ full{ kxgrid{ line{ } } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: minimum 2
Functionality
Setting options defining the grid in k-space.
Example
classical{
bulk_dispersion{
KP8{}
full{
shift_holes_to_zero = yes
name = "name"
position{...}
kxgrid{
line{...}
line{...}
line{...}
}
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ kxgrid{ line{ pos } } }
Calling sequence
classical{ bulk_dispersion{ full{ kxgrid{ line{ pos } } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: real number
values: no constraints
unit: \(\mathrm{nm^{-1}}\)
Functionality
Position of defined k-grid spacing along kx direction.
Example
classical{
bulk_dispersion{
KP8{}
full{
shift_holes_to_zero = yes
name = "name"
position{...}
kxgrid{
line{ pos =-1.0 spacing = 0.2 }
line{ pos = 0.0 spacing = 0.2 }
line{ pos = 1.0 spacing = 0.2 }
}
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ kxgrid{ line{ spacing } } }
Calling sequence
classical{ bulk_dispersion{ full{ kxgrid{ line{ spacing } } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: real number
values:
[1e-6, ...)
unit: \(\mathrm{nm^{-1}}\)
Functionality
k-grid spacing at defined positions
Example
classical{
bulk_dispersion{
KP8{}
full{
shift_holes_to_zero = yes
name = "name"
position{...}
kxgrid{
line{ pos =-1.0 spacing = 0.2 }
line{ pos = 0.0 spacing = 0.2 }
line{ pos = 1.0 spacing = 0.2 }
}
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ kygrid{ } }
Calling sequence
classical{ bulk_dispersion{ full{ kygrid{ } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: no constraints
Functionality
Specifies a grid along \(k_y\) for a 1D/2D/3D plot of the energy dispersion \(E(k_x, k_y, k_z)\). The keywords allowed within this group are analogous to full{ kxgrid{ } }.
Example
classical{
bulk_dispersion{
KP8{}
full{
shift_holes_to_zero = yes
name = "name"
position{...}
kxgrid{...}
kygrid{
line{ pos =-1.0 spacing = 0.2 }
line{ pos = 0.0 spacing = 0.2 }
line{ pos = 1.0 spacing = 0.2 }
}
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
full{ kzgrid{ } }
Calling sequence
classical{ bulk_dispersion{ full{ kzgrid{ } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: no constraints
Functionality
Specifies a grid along \(k_z\) for a 1D/2D/3D plot of the energy dispersion \(E(k_x, k_y, k_z)\). The keywords allowed within this group are analogous to full{ kxgrid{ } }.
Example
classical{
bulk_dispersion{
KP8{}
full{
shift_holes_to_zero = yes
name = "name"
position{...}
kxgrid{...}
kygrid{...}
kzgrid{
line{ pos =-1.0 spacing = 0.2 }
line{ pos = 0.0 spacing = 0.2 }
line{ pos = 1.0 spacing = 0.2 }
}
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate3D{}
}
path{ }
Calling sequence
classical{ bulk_dispersion{ path{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: no constraints
Dependencies
Functionality
Calculate bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersion along custom path in k-space. Multiple instances are allowed.
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name_1"
spacing = 0.2
...
}
path{
name = "name_2"
num_points = 10
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
path{ name }
Calling sequence
classical{ bulk_dispersion{ path{ name } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: character string
Dependencies
name of the dispersions which also defines the names of the output files.
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
path{ position{ } }
Calling sequence
classical{ bulk_dispersion{ path{ position{ } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: exactly 1
Functionality
Specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{ }
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
path{ position{ x } }
Calling sequence
classical{ bulk_dispersion{ path{ position{ x } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
Functionality
\(x\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{
x = 10.5
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate1D{}
}
path{ position{ y } }
Calling sequence
classical{ bulk_dispersion{ path{ position{ y } } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
Dependencies
path{ position{ y } } is required if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.
path{ position{ y } } is not allowed if global{ simulate1D{ } } is specified in the input file.
Functionality
\(y\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{
x = 10.5
y = 35.0
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate2D{}
}
path{ position{ z } }
Calling sequence
classical{ bulk_dispersion{ path{ position{ z } } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\) - path{ position{ z } } is required if global{ simulate1D{ } } is specified in the input file. - path{ position{ z } } is not allowed if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.
Functionality
\(z\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{
x = 10.5
y = 35.0
z = 12.3
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate3D{}
}
path{ shift_holes_to_zero }
Calling sequence
classical{ bulk_dispersion{ path{ shift_holes_to_zero } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
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)
.
Example
classical{
bulk_dispersion{
KP8{}
path{
shift_holes_to_zero = yes
name = "name"
position{...}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
path{ point{ } }
Calling sequence
classical{ bulk_dispersion{ path{ point{ } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: minimum 2
Functionality
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.
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{...}
point{...}
point{...}
point{...}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
path{ point{ k } }
Calling sequence
classical{ bulk_dispersion{ path{ point{ k } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: vector of 3 real numbers: \((r_1, r_2, r_3)\)
values: no constraints
default: \(r_1=0.0\), \(r_2=0.0\), \(r_3=0.0\)
unit: \(\mathrm{nm^{-1}}\)
Functionality
k-point represented by vector \([k_x, k_y, k_z]\).
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{...}
point{ k = [-0.1,-0.1,-0.1 ] }
point{ k = [ 0.0, 0.0, 0.0 ] }
point{ k = [ 0.1, 0.0, 0.0 ] }
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
path{ spacing }
Calling sequence
classical{ bulk_dispersion{ path{ spacing } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values:
[1e-6, ...)
unit: \(\mathrm{nm^{-1}}\)
Dependencies
Exactly one of path{ spacing } or path{ num_points } required.
Functionality
It specifies approximate spacing for intermediate points in the path segments.
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{...}
point{ k = [-0.1,-0.1,-0.1 ] }
point{ k = [ 0.0, 0.0, 0.0 ] }
point{ k = [ 0.1, 0.0, 0.0 ] }
spacing = 0.2
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
path{ num_points }
Calling sequence
classical{ bulk_dispersion{ path{ num_points } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: integer
values: \(z \geq 2\)
Dependencies
Exactly one of path{ spacing } or path{ num_points } required.
Functionality
It specifies number of points (intermediate + two corner-points) for each single path segment.
Example
classical{
bulk_dispersion{
KP8{}
path{
name = "name"
position{...}
point{ k = [-0.1,-0.1,-0.1 ] }
point{ k = [ 0.0, 0.0, 0.0 ] }
point{ k = [ 0.1, 0.0, 0.0 ] }
num_points = 20
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
lines{ }
Calling sequence
classical{ bulk_dispersion{ lines{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: no constraints
Dependencies
Functionality
Calculates dispersions along some predefined paths of high symmetry in k-space, e.g. [100], [110], [111] and their equivalents (13 in total).
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name_1"
...
}
lines{
name = "name_2"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
lines{ name }
Calling sequence
classical{ bulk_dispersion{ lines{ name } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: character string
Dependencies
Name of the dispersions which also defines the names of the output files.
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name"
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
lines{ position{ } }
Calling sequence
classical{ bulk_dispersion{ lines{ position{ } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
items: exactly 1
Functionality
Specifies the point (x,y,z) in the simulation domain, where the dispersion has to be calculated.
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name"
position{ }
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
lines{ position{ x } }
Calling sequence
classical{ bulk_dispersion{ lines{ position{ x } } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
Functionality
\(x\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name"
position{
x = 10.5
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate1D{}
}
lines{ position{ y } }
Calling sequence
classical{ bulk_dispersion{ lines{ position{ y } } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
Dependencies
lines{ position{ y } } is required if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.
lines{ position{ y } } is not allowed if global{ simulate1D{ } } is specified in the input file.
Functionality
\(y\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name"
position{
x = 10.5
y = 35.0
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate2D{}
}
lines{ position{ z } }
Calling sequence
classical{ bulk_dispersion{ lines{ position{ z } } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
type: real number
values: no constraints
default: \(r=0.0\)
unit: \(\mathrm{nm}\)
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\) - lines{ position{ z } } is required if global{ simulate1D{ } } is specified in the input file. - lines{ position{ z } } is not allowed if any global{ simulate1D{ } } or global{ simulate2D{ } } is specified in the input file.
Functionality
\(z\)-coordinate of interest
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name"
position{
x = 10.5
y = 35.0
z = 12.3
}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
global{
...
simulate3D{}
}
lines{ shift_holes_to_zero }
Calling sequence
classical{ bulk_dispersion{ lines{ shift_holes_to_zero } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
type: choice
values:
yes
orno
default:
no
Functionality
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)
.
Example
classical{
bulk_dispersion{
KP8{}
lines{
shift_holes_to_zero = yes
name = "name"
position{...}
...
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
lines{ k_max }
Calling sequence
classical{ bulk_dispersion{ lines{ k_max } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: real number
values:
[1e-6, ...)
unit: \(\mathrm{nm^{-1}}\)
Functionality
Specifies a maximum absolute value (radius) for the k-vector in \(nm^{-1}\)
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name"
position{...}
k_max = 1.0
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
lines{ spacing }
Calling sequence
classical{ bulk_dispersion{ lines{ spacing } } }
Properties
usage: \(\mathrm{\textcolor{WildStrawberry}{required}}\)
type: real number
values:
[1e-6, ...)
unit: \(\mathrm{nm^{-1}}\)
Functionality
Specifies approximate spacing for intermediate points in the path segments in \(nm^{-1}\).
Example
classical{
bulk_dispersion{
KP8{}
lines{
name = "name"
position{...}
k_max = 1.0
spacing = 0.2
}
output_bulk_dispersions{}
}
Gamma{}
HH{}
}
output_bulk_dispersions{ }
Calling sequence
classical{ bulk_dispersion{ output_bulk_dispersions{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of output_bulk_dispersions{ }, output_masses{ }, or output_inverse_masses{ } is required.
Functionality
Outputs all defined bulk \(\mathbf{k} \cdot \mathbf{p}\) dispersions.
Example
classical{
bulk_dispersion{
output_bulk_dispersions{}
KP8{}
path{...}
}
Gamma{}
HH{}
}
output_masses{ }
Calling sequence
classical{ bulk_dispersion{ output_masses{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of output_bulk_dispersions{ }, output_masses{ }, or output_inverse_masses{ } is required.
Functionality
Outputs effective masses calculated from the dispersions.
Example
classical{
bulk_dispersion{
output_masses{}
KP8{}
path{...}
}
Gamma{}
HH{}
}
output_inverse_masses{ }
Calling sequence
classical{ bulk_dispersion{ output_inverse_masses{ } } }
Properties
usage: \(\mathrm{\textcolor{Dandelion}{conditional}}\)
items: maximum 1
Dependencies
At least one of output_bulk_dispersions{ }, output_masses{ }, or output_inverse_masses{ } is required.
Functionality
Outputs inverse of effective masses calculated from the dispersions.
Example
classical{
bulk_dispersion{
output_inverse_masses{}
KP8{}
path{...}
}
Gamma{}
HH{}
}
output_k_vectors{ }
Calling sequence
classical{ bulk_dispersion{ output_k_vectors{ } } }
Properties
usage: \(\mathrm{\textcolor{ForestGreen}{optional}}\)
items: maximum 1
Functionality
Outputs k-vectors for which the dispersions are computed.
Example
classical{
bulk_dispersion{
output_k_vectors{}
KP8{}
path{...}
}
Gamma{}
HH{}
}
Last update: 27/05/2025