kp_8band{ }
Calling sequence
quantum{ region{ kp_8band{ } } }
Properties
usage:
items: maximum 1
Functionality
Triggers solver of 8-band
Nested keywords
accuracy
Calling sequence
quantum{ region{ kp_8band{ accuracy } } }
Properties
—
Functionality
- value:
any float > 0
- default:
1e-7
accuracy of eigenvalue
iterations
Calling sequence
quantum{ region{ kp_8band{ iterations } } }
Properties
—
Functionality
- value:
any integer > 1
- default:
500
number of iterations for eigenvalue solver
num_electrons
Calling sequence
quantum{ region{ kp_8band{ num_electrons } } }
Properties
—
Functionality
- value:
integer >= 0
- default:
0
number of electron eigenvalues
num_holes
Calling sequence
quantum{ region{ kp_8band{ num_holes } } }
Properties
—
Functionality
- value:
integer >= 0
- default:
0
number of hole eigenvalues
shift
Calling sequence
quantum{ region{ kp_8band{ shift } } }
Properties
—
Functionality
- value:
float >=0
- default:
0.1
#(eV)
energy shift relative to band edges in arpack_inv
.
abs_shift
Calling sequence
quantum{ region{ kp_8band{ abs_shift } } }
Properties
—
Functionality
- value:
float >=0
- default:
0.0
#(eV)
energy shift on an absolute energy scale in arpack_inv
.
shift_window
Calling sequence
quantum{ region{ kp_8band{ shift_window } } }
Properties
—
Functionality
- value:
integer
- default:
0
When LAPACK is used, shifts the window of computed states by the specified number of states up (for positive integers) or down (for negative integers). Adjust when the computed states are not centered around the band gap.
spurious_handling
Calling sequence
quantum{ region{ kp_8band{ spurious_handling } } }
Properties
—
Functionality
- value:
six dimensional double vector
- default:
[0.0, 1.0, -1.0, 1.0, 0.0, 0.0]
first component:
If value > 0, forward-/backward differences are used for the first derivative discretization of the P material parameter (Kane parameter) in the 8-band k.p Hamiltonian. Default is 0 (= FALSE), i.e. centered differences are used instead. This parameter might affect spurious solutions of the wave functions. See eq. (1.50) and eq. (1.51) of PhD thesis T. Andlauer.second component:
far-band contribution to electrons = value - 1.0 (conduction band g factor, should be a material parameter but it is not) (default is: 1.0) S = 1 + farband contribution, by default farband contribution = 0. This corresponds to setting S=1. It can be useful to set this value to 0.0 (farband contribution = -1). Then it corresponds to setting S=0. Otherwise, the default is rescaling to that S=1.third component:
correction for electron g factor [eV] (default is: -1.0)fourth component:
If value > 0, rescale everywhere (default is: 1 = TRUE)fifth component:
If value > 0, upwinding is TRUE (default is: 0 = FALSE) ==> It seems that upwinding is not used at all.sixth component:
If value > 0, avoid spurious solutions. (default is: 0 = FALSE)
To avoid spurious solutions, an example configuration could be given by spurious_handling = [0.0, 1.0, 0.0, 1.0, 0.0, 1.0]
.
lapack{ }
Calling sequence
quantum{ region{ kp_8band{ lapack{ } } } }
Properties
—
Functionality
Triggers use of LAPACK solver which is for dense matrix problems (for 1D and small 2D systems only)
arpack_inv{ }
Calling sequence
quantum{ region{ kp_8band{ arpack_inv{ } } } }
Properties
—
Functionality
Triggers use of ARPACK shift invert eigensolver. It should be faster for large matrices (N > 1000) where only a few eigenvalues are sought (~5-30).
davidson{ }
Calling sequence
quantum{ region{ kp_8band{ davidson{ } } } }
Properties
—
Functionality
Triggers Davidson solver for 8-band
Warning
The implementation of teh Davidson solver is still under development, therefore, should be considered as an experimental feature.
For example, it has the tendency to fail in the presence of degenerate eigenvalues (e.g. Pauli or k.p quantum mechanics without magnetic field). In this case, breaking the degeneracies by slightly changing the geometry of the system or adding a weak magnetic field can be tried. Alternatively, switching back to ARPAPCK inverse or, in 1D or smaller 2D systems, to LAPACK may be considered.
linear_solver{ }
Calling sequence
quantum{ region{ kp_8band{ linear_solver{ } } } }
Properties
—
Functionality
Provides parameters for linear equation solver in arpack_inv
shift invert preconditioner
linear_solver{ iterations }
Calling sequence
quantum{ region{ kp_8band{ linear_solver{ iterations } } } }
Properties
—
Functionality
- value:
integer > 1
- default:
10000
number of iterations in arpack_inv
. Occasionally, using even larger values than 10000 may be necessary to avoid diagonalization failure.
linear_solver{ abs_accuracy }
Calling sequence
quantum{ region{ kp_8band{ linear_solver{ abs_accuracy } } } }
Properties
—
Functionality
- value:
float between 0.0 and 0.01
- default:
1e-8
absolute accuracy in arpack_inv
.
linear_solver{ rel_accuracy }
Calling sequence
quantum{ region{ kp_8band{ linear_solver{ rel_accuracy } } } }
Properties
—
Functionality
- value:
float between 0.0 and 0.01
- default:
1e-8
relative accuracy in arpack_inv
.
linear_solver{ use_cscg }
Calling sequence
quantum{ region{ kp_8band{ linear_solver{ use_cscg } } } }
Properties
—
Functionality
- value:
yes
orno
- default:
no
When arpack_inv
is used, forces the slower but occasionally more robust CSCG (Composite Step Conjugate Gradient ) linear solver to be used rather than the cg (Conjugate Gradient) linear solver. May occasionally prevent a diagonalization failure.
linear_solver{ force_diagonal_preconditioner }
Calling sequence
quantum{ region{ kp_8band{ linear_solver{ force_diagonal_preconditioner } } } }
Properties
—
Functionality
- value:
yes
orno
- default:
no
When arpack_inv
is used, forces the use of a slower but more robust diagonal preconditioner. As result, total runtime and stability of the arpack_inv solver may actually become much better and diagonalization failures may be avoided.
kp_parameters{ }
Calling sequence
quantum{ region{ kp_8band{ kp_parameters{ } } } }
Properties
—
Functionality
Provides options for advanced manipulation of k.p parameters from database.
Attention
The groups use_Luttinger_parameters
and approximate_kappa
are available only for simulations with zincblende crystal symmetry.
kp_parameters{ use_Luttinger_parameters }
Calling sequence
quantum{ region{ kp_8band{ kp_parameters{ use_Luttinger_parameters } } } }
Properties
—
Functionality
By default the solver uses the DKK (Dresselhaus-Kip-Kittel) parameters (L, M, N). If enabled then it uses Luttinger parameters (
- value:
yes
orno
- default:
no
kp_parameters{ from_6band_parameters }
Calling sequence
quantum{ region{ kp_8band{ kp_parameters{ from_6band_parameters } } } }
Properties
—
Functionality
By default the 8-band
yes
or no
:default: no
kp_parameters{ approximate_kappa }
Calling sequence
quantum{ region{ kp_8band{ kp_parameters{ approximate_kappa } } } }
Properties
—
Functionality
By default the
- value:
yes
orno
- default:
no
kp_parameters{ evaluate_S }
Calling sequence
quantum{ region{ kp_8band{ kp_parameters{ evaluate_S } } } }
Properties
—
Functionality
By default
- value:
yes
orno
- default:
no
kp_parameters{ rescale_S_to }
Calling sequence
quantum{ region{ kp_8band{ kp_parameters{ rescale_S_to } } } }
Properties
—
Functionality
set
set
- value:
float for zinc blende crystal structure
2D float vector for wurtzite crystal structure
k_integration{ }
Calling sequence
quantum{ region{ kp_8band{ k_integration{ } } } }
Properties
—
Functionality
Provides options for integration over
k_integration{ relative_size }
Calling sequence
quantum{ region{ kp_8band{ k_integration{ relative_size } } } }
Properties
—
Functionality
—
k_integration{ max_symmetry }
Calling sequence
quantum{ region{ kp_8band{ k_integration{ max_symmetry } } } }
Properties
—
Functionality
—
k_integration{ num_points }
Calling sequence
quantum{ region{ kp_8band{ k_integration{ num_points } } } }
Properties
—
Functionality
—
k_integration{ num_subpoints }
Calling sequence
quantum{ region{ kp_8band{ k_integration{ num_subpoints } } } }
Properties
—
Functionality
—
k_integration{ force_k0_subspace }
Calling sequence
quantum{ region{ kp_8band{ k_integration{ force_k0_subspace } } } }
Properties
—
Functionality
—
interface{ }
Calling sequence
quantum{ region{ kp_8band{ interface{ } } } }
Properties
—
Functionality
Note
Better description will be available soon.
Attention
The feature is already available, yet we are still testing it.
Optional group to add interface effects to the Hamiltonian [LivnehPRB2012], [LivnehPRB2014]. It can be used multiple times.
interface{ position }
Calling sequence
quantum{ region{ kp_8band{ interface{ position } } } }
Properties
—
Functionality
A real number defining position of the interface.
interface{ array_x{ } }
Calling sequence
quantum{ region{ kp_8band{ interface{ array_x{ } } } } }
Properties
—
Functionality
The group that copies the interface object along the simulation axis.
interface{ array_x{ shift } }
Calling sequence
quantum{ region{ kp_8band{ interface{ array_x{ shift } } } } }
Properties
—
Functionality
- value:
a real number
interface{ array_x{ min } }
Calling sequence
quantum{ region{ kp_8band{ interface{ array_x{ min } } } } }
Properties
—
Functionality
- value:
{..., -3, -2, -1 , 0}
- default:
0
interface{ array_x{ max } }
Calling sequence
quantum{ region{ kp_8band{ interface{ array_x{ max } } } } }
Properties
—
Functionality
- value:
{0, 1, 2, 3, ...}
interface{ kp_parameters{ } }
Calling sequence
quantum{ region{ kp_8band{ interface{ kp_parameters{ } } } } }
Properties
—
Functionality
The group storing all parameters for the interface Hamiltonian.
interface{ kp_parameters{ D_s, D_x, D_z } }
Calling sequence
quantum{ region{ kp_8band{ interface{ kp_parameters{ D_s } } } } }
quantum{ region{ kp_8band{ interface{ kp_parameters{ D_x } } } } }
quantum{ region{ kp_8band{ interface{ kp_parameters{ D_z } } } } }
Properties
—
Functionality
a real number
interface{ kp_parameters{ alpha, beta } }
Calling sequence
quantum{ region{ kp_8band{ interface{ kp_parameters{ alpha } } } } }
quantum{ region{ kp_8band{ interface{ kp_parameters{ beta } } } } }
Properties
—
Functionality
a real number
interface{ kp_parameters{ reverse } }
Calling sequence
quantum{ region{ kp_8band{ interface{ kp_parameters{ reverse } } } } }
Properties
—
Functionality
— choice (yes/no)
classify_none{ }
Calling sequence
quantum{ region{ kp_8band{ classify_none{ } } } }
Properties
—
Functionality
—
classify_by_energy{ }
Calling sequence
quantum{ region{ kp_8band{ classify_by_energy{ } } } }
Properties
—
Functionality
—
classify_by_energy{ method }
Calling sequence
quantum{ region{ kp_8band{ classify_by_energy{ method } } } }
Properties
usage:
type: integer
values:
Functionality
—
classify_by_energy{ shift_electrons }
Calling sequence
quantum{ region{ kp_8band{ classify_by_energy{ shift_electrons } } } }
Properties
usage:
type: real number
values: no constraints
unit:
Functionality
—
classify_by_energy{ shift_holes }
Calling sequence
quantum{ region{ kp_8band{ classify_by_energy{ shift_holes } } } }
Properties
usage:
type: real number
values: no constraints
unit:
Functionality
—
classify_by_energy{ cutoff }
Calling sequence
quantum{ region{ kp_8band{ classify_by_energy{ cutoff } } } }
Properties
usage:
type: integer
values:
Functionality
—
classify_by_all_energies{ }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_energies{ } } } }
Properties
—
Functionality
—
classify_by_all_energies{ method }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_energies{ method } } } }
Properties
usage:
type: integer
values:
Functionality
—
classify_by_all_energies{ shift_electrons }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_energies{ shift_electrons } } } }
Properties
usage:
type: real number
values: no constraints
unit:
Functionality
—
classify_by_all_energies{ shift_holes }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_energies{ shift_holes } } } }
Properties
usage:
type: real number
values: no constraints
unit:
Functionality
—
classify_by_all_energies{ permissive }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_energies{ permissive } } } }
Properties
usage:
type: integer
values:
Functionality
—
classify_by_all_energies{ cutoff }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_energies{ cutoff } } } }
Properties
usage:
type: integer
values:
Functionality
—
classify_by_spinor{ }
Calling sequence
quantum{ region{ kp_8band{ classify_by_spinor{ } } } }
Properties
—
Functionality
—
classify_by_spinor{ threshold_electron }
Calling sequence
quantum{ region{ kp_8band{ classify_by_spinor{ threshold_electron } } } }
Properties
usage:
type: real number
values:
unit:
Functionality
—
classify_by_spinor{ threshold_hole }
Calling sequence
quantum{ region{ kp_8band{ classify_by_spinor{ threshold_hole } } } }
Properties
usage:
type: real number
values:
unit:
Functionality
—
classify_by_spinor{ cutoff }
Calling sequence
quantum{ region{ kp_8band{ classify_by_spinor{ cutoff } } } }
Properties
usage:
type: integer
values:
Functionality
—
classify_by_all_spinors{ }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_spinors{ } } } }
Properties
—
Functionality
—
classify_by_all_spinors{ threshold_electron }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_spinors{ threshold_electron } } } }
Properties
usage:
type: real number
values:
unit:
Functionality
—
classify_by_all_spinors{ threshold_hole }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_spinors{ threshold_hole } } } }
Properties
usage:
type: real number
values:
unit:
Functionality
—
classify_by_all_spinors{ permissive }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_spinors{ permissive } } } }
Properties
usage:
type: integer
values:
Functionality
—
classify_by_all_spinors{ cutoff }
Calling sequence
quantum{ region{ kp_8band{ classify_by_all_spinors{ cutoff } } } }
Properties
usage:
type: integer
values:
Functionality
—
dispersion{ }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ } } } }
Properties
—
Functionality
These groups provide keywords to define a path for computation of k_integration{ }
.
dispersion{ lines{ } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ lines{ } } } } }
Properties
—
Functionality
Calculates dispersions along some predefined paths of high symmetry in k-space, e.g. [100], [110], [111] and their equivalents (in total maximally 13).
dispersion{ lines{ name } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ lines{ name } } } } }
Properties
—
Functionality
- value:
string
Is a name of the dispersions which also defines the names of the output files.
dispersion{ lines{ k_max } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ lines{ k_max } } } } }
Properties
—
Functionality
- value:
float
Specifies a maximum absolute value (radius) for the k-vector in
dispersion{ lines{ spacing } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ lines{ spacing } } } } }
Properties
—
Functionality
- value:
float
Specifies approximate spacing for intermediate points in the path segments in
dispersion{ path{ } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ path{ } } } } }
Properties
—
Functionality
Calculates dispersion along custom path in k-space. Multiple instances are allowed.
dispersion{ path{ name } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ path{ name } } } } }
Properties
—
Functionality
Is a name of the dispersions which also defines the names of the output files.
- value:
string
dispersion{ path{ point{ } } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ path{ point{ } } } } } }
Properties
—
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.
dispersion{ path{ point{ k } } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ path{ point{ k } } } } } }
Properties
—
Functionality
- value:
3D float vector
Is a k-point represented by vector
For 1D simulation the
for 2D simulation the
for 3D simulation the
dispersion{ path{ spacing } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ path{ spacing } } } } }
Properties
—
Functionality
- value:
float
Specifies approximate spacing for intermediate points in the path segments in num_points
.
dispersion{ path{ num_points } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ path{ num_points } } } } }
Properties
—
Functionality
- value:
integer > 1
Specifies number of points (intermediate + two corner points) for each single path segment. Excludes spacing
.
dispersion{ full{ } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ full{ } } } } }
Properties
—
Functionality
Calculates dispersion in 1D/2D/3D k-space depending on simulation dimensionality and pereodic boundary conditions.
dispersion{ full{ name } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ full{ name } } } } }
Properties
—
Functionality
- value:
string
Is a name of the dispersion which also defines the name of the output file.
dispersion{ full{ kxgrid{ }, … } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ full{ kxgrid{ } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kygrid{ } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kzgrid{ } } } } } }
Properties
—
Functionality
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{ }
dispersion{ full{ kxgrid{ line{ } }, … } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ full{ kxgrid{ line{ } } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kygrid{ line{ } } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kzgrid{ line{ } } } } } } }
Properties
—
Functionality
—
dispersion{ full{ kxgrid{ line{ pos } }, … } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ full{ kxgrid{ line{ pos } } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kygrid{ line{ pos } } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kzgrid{ line{ pos } } } } } } }
Properties
—
Functionality
—
dispersion{ full{ kxgrid{ line{ spacing } }, … } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ full{ kxgrid{ line{ spacing } } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kygrid{ line{ spacing } } } } } } }
quantum{ region{ kp_8band{ dispersion{ full{ kzgrid{ line{ spacing } } } } } } }
Properties
—
Functionality
—
dispersion{ superlattice{ } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ superlattice{ } } } } }
Properties
—
Functionality
Is a convenience group to calculate superlattice dispersion
dispersion{ superlattice{ name } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ superlattice{ name } } } } }
Properties
—
Functionality
- value:
string
Is a name of the dispersion which also defines the name of the output file.
dispersion{ superlattice{ num_points } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ superlattice{ num_points } } } } }
Properties
—
Functionality
Is a convenience keyword to specifies number of points along all appropriate directions in k space.
- value:
any integer > 1
dispersion{ superlattice{ num_points_x, … } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ superlattice{ num_points_x } } } } }
quantum{ region{ kp_8band{ dispersion{ superlattice{ num_points_y } } } } }
quantum{ region{ kp_8band{ dispersion{ superlattice{ num_points_z } } } } }
Properties
—
Functionality
- value:
any integer > 1
Specifies number of points along x direction in k space where dispersion is calculated. The simulation must be periodic along the x direction in direct space. Specifies number of points along y direction in k space where dispersion is calculated. The simulation must be periodic along the y direction in direct space. Specifies number of points along z direction in k space where dispersion is calculated. The simulation must be periodic along the z direction in direct space.
dispersion{ output_dispersions{ } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ output_dispersions{ } } } } }
Properties
—
Functionality
Outputs all defined dispersions.
dispersion{ output_dispersions{ max_num } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ output_dispersions{ max_num } } } } }
Properties
—
Functionality
Is a number of bands to print out
- value:
any integer between 1 and 9999
dispersion{ output_masses{ } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ output_masses{ } } } } }
Properties
—
Functionality
Outputs effective masses
where
dispersion{ output_masses{ max_num } }
Calling sequence
quantum{ region{ kp_8band{ dispersion{ output_masses{ max_num } } } } }
Properties
—
Functionality
Outputs effective masses calculated from the dispersions.
- value:
any integer between 1 and 9999
Last update: 08/04/2025