kp_6band{ }

Calling sequence

quantum{ region{ kp_6band{ } } }

Properties

  • usage: optional

  • items: maximum 1

Functionality

Solves 6-band kp Schrödinger equation for the ** heavy, light and split-off hole** valence band. The options are the same as Gamma{} with some additional options, which are

Nested keywords


lapack{ }

Calling sequence

quantum{ region{ kp_6band{ lapack{ } } } }

Properties

Functionality

LAPACK eigensolver: solves dense matrix problem (for 1D and small 2D systems only)


arpack{ }

Calling sequence

quantum{ region{ kp_6band{ arpack{ } } } }

Properties

Functionality

ARPACK eigensolver (default) ARPACK should be faster for large matrices (N > 1000) where only a few eigenvalues are sought (~5-30).


kp_parameters{ }

Calling sequence

quantum{ region{ kp_6band{ kp_parameters{ } } } }

Properties

Functionality

advanced manipulation of kp parameters from the 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_6band{ 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 (γ1, γ2, γ3) instead.

value:

yes or no

default:

no


kp_parameters{ approximate_kappa } }

Calling sequence

quantum{ region{ kp_6band{ kp_parameters{ approximate_kappa } } } }

Properties

Functionality

By default the κ 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 6-band kp parameters, even though kappa is given in database or input file.

value:

yes or no

default:

no


k_integration{ }

Calling sequence

quantum{ region{ kp_6band{ k_integration{ } } } }

Properties

Functionality

Provides options for integration over k|| space for kp density calculations (for 1D and 2D only). By default the quantum mechanical charge density is calculated (no_density = no). Therefore, k_integration{} is required. If you do not need a quantum mechanical density, e.g. because you are not interested in a self-consistent simulation, the calculation is much faster if you use (no_density = yes). Then you can omit k_integration{} and only the eigenstates for k||=(ky,kz)=(0,0)=0 are calculated.


k_integration{ relative_size }

Calling sequence

quantum{ region{ kp_6band{ k_integration{ relative_size } } } }

Properties

Functionality

Range of k|| integration relative to size of Brillouin zone. Often a value between 0.1-0.2 is sufficient.

value:

float between 0.0 and 1.0

default:

1.0


k_integration{ max_symmetry }

Calling sequence

quantum{ region{ kp_6band{ k_integration{ max_symmetry } } } }

Properties

Functionality

If max_symmetry = no then the solver does not use symmetry of Brillouin zone to reduce number of k|| points.

If max_symmetry = C2 then the solver uses up to C2 symmetry of Brillouin zone to reduce number of k|| points.

If max_symmetry = full then the solver uses full symmetry of Brillouin zone to reduce number of k|| points. For example for a cubic k space the 1/8th of the zone.

value:

1 or no 2 or C2 3 or full

default:

full


k_integration{ num_points }

Calling sequence

quantum{ region{ kp_6band{ k_integration{ num_points } } } }

Properties

Functionality

number of k|| points, where Schrödinger equation has to be solved (in one direction). In 1D, the number of Schrödinger equations that have to be solved depends quadratically on num_points. In 2D, the number of Schrödinger equations that have to be solved depends linearly on num_points.

value:

integer > 1

default:

10


k_integration{ num_subpoints }

Calling sequence

quantum{ region{ kp_6band{ k_integration{ num_subpoints } } } }

Properties

Functionality

number of points between two k|| points, where wave functions and eigenvalues will be interpolated.

value:

integer >= 1

default:

5


k_integration{ force_k0_subspace }

Calling sequence

quantum{ region{ kp_6band{ k_integration{ force_k0_subspace } } } }

Properties

Functionality

If set to yes, k integration in quantum{ } is modified in that only states for point k=0 are computed exactly, whereas all other k points are computed in the subspace of the k=0 wave functions. As a result of this approximation, computational speed is much improved (you may even be able to also enlarge the number of eigenvalues). In case you are planning to use this approximation for final results, please make sure to check whether the resulting loss of accuracy in density is acceptable.

value:

yes or no

default:

no


dispersion{ }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ } } } }

Properties

Functionality

These groups provide keywords to define a path for computation of k|| and ksuperlattice (if applicable) dispersions. The energy dispersion E(k) along the specified paths and for the specified k space resolutions are completely independent from the k space resolution that was used within the self-consistent cycle where the k.p density has been calculated. The latter is specified in k_integration{ }.


dispersion{ lines{ } }

Calling sequence

quantum{ region{ kp_6band{ 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_6band{ 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_6band{ dispersion{ lines{ k_max } } } } }

Properties

Functionality

value:

float

Specifies a maximum absolute value (radius) for the k-vector in nm1.


dispersion{ lines{ spacing } }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ lines{ spacing } } } } }

Properties

Functionality

value:

float

Specifies approximate spacing for intermediate points in the path segments in nm1.


dispersion{ path{ } }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ path{ } } } } }

Properties

Functionality

Calculates dispersion along custom path in k-space. Multiple instances are allowed.


dispersion{ path{ name } }

Calling sequence

quantum{ region{ kp_6band{ 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_6band{ 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_6band{ dispersion{ path{ point{ k } } } } } }

Properties

Functionality

value:

3D float vector

Is a k-point represented by vector [kx,ky,kz]. The units are nm1.

For 1D simulation the k|| space is a kykz plane so ky, kz can be freely choosed. kx can only be different from zero, if a periodic boundary condition along the x-direction is defined and the quantum region extends over the whole x-domain.

for 2D simulation the k|| space is a kz axis so kz can be freely choosed. kx can only be different from zero if a periodic boundary condition along the x-direction is defined and the quantum region extends over the whole x-domain. ky can only be different from zero if a periodic boundary condition along the y-direction is defined and the quantum region extends over the whole y-domain.

for 3D simulation the k|| space is empty. kx can only be different from zero if a periodic boundary condition along the x-direction is defined and the quantum region extends over the whole x-domain. ky can only be different from zero if a periodic boundary condition along the y-direction is defined and the quantum region extends over the whole y-domain. kz can only be different from zero if a periodic boundary condition along the z-direction is defined and the quantum region extends over the whole z-domain.


dispersion{ path{ spacing } }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ path{ spacing } } } } }

Properties

Functionality

value:

float

Specifies approximate spacing for intermediate points in the path segments in nm1. Excludes num_points.


dispersion{ path{ num_points } }

Calling sequence

quantum{ region{ kp_6band{ 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_6band{ 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_6band{ 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_6band{ dispersion{ full{ kxgrid{ } } } } } }
quantum{ region{ kp_6band{ dispersion{ full{ kygrid{ } } } } } }
quantum{ region{ kp_6band{ 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_6band{ dispersion{ full{ kxgrid{ line{ } } } } } } }
quantum{ region{ kp_6band{ dispersion{ full{ kygrid{ line{ } } } } } } }
quantum{ region{ kp_6band{ dispersion{ full{ kzgrid{ line{ } } } } } } }

Properties

Functionality


dispersion{ full{ kxgrid{ line{ pos } }, … } }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ full{ kxgrid{ line{ pos } } } } } } }
quantum{ region{ kp_6band{ dispersion{ full{ kygrid{ line{ pos } } } } } } }
quantum{ region{ kp_6band{ dispersion{ full{ kzgrid{ line{ pos } } } } } } }

Properties

Functionality


dispersion{ full{ kxgrid{ line{ spacing } }, … } }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ full{ kxgrid{ line{ spacing } } } } } } }
quantum{ region{ kp_6band{ dispersion{ full{ kygrid{ line{ spacing } } } } } } }
quantum{ region{ kp_6band{ dispersion{ full{ kzgrid{ line{ spacing } } } } } } }

Properties

Functionality


dispersion{ superlattice{ } }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ superlattice{ } } } } }

Properties

Functionality

Is a convenience group to calculate superlattice dispersion E(kSL) along periodic directions. The intervals are set automatically to [π/Li,π/Li], where Li is the simulation domain range along periodic directions with i=x,y,z.


dispersion{ superlattice{ name } }

Calling sequence

quantum{ region{ kp_6band{ 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_6band{ 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_6band{ dispersion{ superlattice{ num_points_x } } } } }
quantum{ region{ kp_6band{ dispersion{ superlattice{ num_points_y } } } } }
quantum{ region{ kp_6band{ 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_6band{ dispersion{ output_dispersions{ } } } } }

Properties

Functionality

Outputs all defined dispersions.


dispersion{ output_dispersions{ max_num } }

Calling sequence

quantum{ region{ kp_6band{ 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_6band{ dispersion{ output_masses{ } } } } }

Properties

Functionality

Outputs effective masses m calculated from the dispersions, expressed in masses of a free electron m0, following the formula:

1m=m022k2E(k),

where k is a “distance” along the path onto which the related band structure is computed.


dispersion{ output_masses{ max_num } }

Calling sequence

quantum{ region{ kp_6band{ dispersion{ output_masses{ max_num } } } } }

Properties

Functionality

Outputs effective masses calculated from the dispersions.

value:

any integer between 1 and 9999


Last update: 03/04/2025