One-band models in quantum{ region{} }

quantum{ region{ Gamma{} } }

Solves single-band effective mass Schrödinger equation for the Gamma conduction band.

num_ev
value:

integer >= 0

default:

0

Provides the number of eigenvalues to be calculated.

force_complex_solver
value:

yes or no

default:

no

Should be set flag to yes, when the results are ment to be used in the optics{ } group.

force_pauli_solver
value:

yes or no

default:

no

When se to yes, the a Pauli equation is solved even in the absence of magnetic field. It may be needed when the results are passed to optics{ } group.

lapack{}

LAPACK eigensolver is used to solve dense matrix problem (should be used for 1D and small 2D systems). For 1D simulations without periodic boundary conditions a tridiagonal LAPACK solver is used for the single-band Hamiltonian as default.

arpack{}

ARPACK eigensolver is used to solve eigenvalue problem using sparse matrix routines. It ARPACK should be faster for large matrices (N > 1000) where only a few eigenvalues are sought (~5-30). Memory usage of arpack (and also arpack_inv) only depends on the number of eigenvectors requested, and is not influenced by the type of preconditioner used. Essentially, for each requested eigenvector (i.e. wave function), additional temporary space corresponding to 2.5 eigenvectors is needed during runtime. Among the preconditioners, Chebyshev preconditioning and Legendre preconditioning are comparably fast, but require both the specification of a cutoff energy under (above) which all eigenvalues of interest are assumed to be located. If this assumption is violated, only spurious parts of the energy spectrum will be computed. On the other hand, setting the cutoff energy too generous will slow down convergence. Since the energy spectrum often shifts during the Quantum-Poisson iteration, a more generous initial cutoff energy is also needed for the first Quantum-Poisson iteration step. If this initial cutoff energy is not provided, much slower but more predictable polynomial preconditioning will be used for the first Quantum-Poisson iteration step instead of the specified Chebyshev / legendre preconditioner. Alternatively, this slower polynomial preconditioning can also be used for the entire Quantum-Poisson iteration. In this case, no cutoff energies need to be specified at all. Generally, it is advisable to use polynomial preconditioning when simulating a new structure until the distribution of the eigenvalues, the location of the Fermi level(s), and the required numbers of eigenvalues are better known. Performance of all preconditioners can be further tuned by changing the order of the respective polynomial used, with optimal values typically lying between 10 and 30. ARPACK will terminate once the desired accuracy has been reached or the specified number of iterations has been exceeded. In the latter case, not all requested eigenvectors may have been calculated, or convergence may be incomplete.

Warning

Too low cutoff energy, not enough number of states selected to compute, and residuals set too low for large systems are common reasons of failure of ARPACK eigensolver. The method may occur unstable for 8-band model in general.

accuracy
value:

any float > 0

default:

1e-10 for LAPACK 1e-7 for ARPACK

accuracy of eigenvalue

iterations
value:

any integer > 1

default:

500

number of iterations for eigenvalue solver

preconditioner
value:

0 or polynomial, 1 or chebyshev, 2 or legendre

default:

1 or chebyshev

Polynomial preconditioner is the slowest but does not require to specify cutoff energy whereas chebyshev or legendre preconditioner requires you to specifiy cutoff energy.

order_polynomial
value:

any integer > 1

default:

15

order of the polynomial used for polynomial preconditioning

order_chebychev
value:

any integer > 1

default:

20

order of the polynomial used for Chebyshev preconditioning

order_legendre
value:

any integer > 1

default:

20

order of the polynomial used for Legendre preconditioning

cutoff
value:

any float >= 0.001

default:

0.3 # [eV]

abs_cutoff
value:

any float >= 0.001

default:

0.0 # [eV]

Note

The default behavior of ARPACK eigensolver is the following: When the Schrödinger equation is solved for the first time, the polynomial preconditioner is used, because there is no suitable cutoff energy known. In all later Quantum-Poisson iterations the chebyshev preconditioner will be used (up to two times faster) with a cutoff energy slightly above the highest eigenvalue, which was calculated in the last iteration.

dispersion{}

calculate the \(\mathbf{k_{||}}\) and \(\mathbf{k_{\tiny{superlattice}}}\) (if applicable) dispersion. 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{}. For more details, see quantum{ region{ …{ dispersion{ } } } }.

quantum{ region{ L{} } }

solves single-band Schrödinger equation for the L conduction band. The options are the same as Gamma{}.

quantum{ region{ X{} } }

solves single-band Schrödinger equation for the X conduction band. The options are the same as Gamma{}.

quantum{ region{ Delta{} } }

solves single-band Schrödinger equation for the Delta conduction band. The options are the same as Gamma{}.

quantum{ region{ HH{} } }

solves single-band Schrödinger equation for the heavy hole valence band. The options are the same as Gamma{}.

quantum{ region{ LH{} } }

solves single-band Schrödinger equation for the light hole valence band. The options are the same as Gamma{}.

quantum{ region{ SO{} } }

solves single-band Schrödinger equation for the split-off hole valence band. The options are the same as Gamma{}.