nextnano.com
 nextnano³
 Download | SearchCopyright | Publications
 * password protected

 

nextnano³ software

 

  output-1-band-schroedinger

 

 

 
Up
 

Output-1-band-schroedinger

The output of the eigenvalues and eigenfunctions for the single-band Schrödinger equations ('effective-mass') is controlled by this keyword. All eigenfunctions and eigenvalues between cb-min-ev and cb-max-ev are put out for each band.

!---------------------------------------------------------------!
$output-1-band-schroedinger                            optional !
 destination-directory                 character       required !
 sg-structure                          character       optional !
 effective-mass-tensor                 character       optional !
 complex-wave-functions                character       optional !
 eigenvalues-only                      character       optional !
 scale                                 double          optional !
 shift-wavefunction-by-eigenvalue      character       optional !
                                                                !
 conduction-band-numbers               integer_array   optional !
 cb-min-ev                             integer         optional !
 cb-max-ev                             integer         optional !
                                                                !
 valence-band-numbers                  integer_array   optional !
 vb-min-ev                             integer         optional !
 vb-max-ev                             integer         optional !
                                                                !
 interband-matrix-elements             character       optional !
 intraband-matrix-elements             character       optional !
 intraband-lifetime                    character       optional !
 intraband-matrix-elements-operator    character       optional !
                                                                !
 stark-effect-out                      character       optional !
 voltage-offset                        double          optional !
 lever-arm-length                      double          optional !
                                                                !
 resonance-bound-states                integer_array   optional !
 resonance-incidence                   integer_array   optional !
                                                                !
$end_output-1-band-schroedinger                        optional !
!---------------------------------------------------------------!

 

Syntax:

destination-directory = my-directory/
                 e.g. = Schroedinger_1band/

Name of directory to which the files should be written. Must exist and directory name has to include the slash (\ for DOS and / for UNIX).

 

sg-structure = yes / no

Flag whether to put out the Schrödinger structure file (sg_info.txt). This file describes the internal number and degeneracy of the Schrödinger equations that have to be solved.
Note: If the energy bands are split due to strain, e.g. X valley and L valley, then the Schrödinger equation has to be solved for different band edges. If the masses are anisotropic, then for each mass valley a separate Schrödinger equation has to be solved.

 

effective-mass-tensor = yes / no

Flag whether to put out the effective mass tensor (1/m)ij for each Schrödinger equation to be solved. Output is a 3x3 matrix for each grid point.
(*mass_tensor*.dat)

Example for 1D output:
cb3mass_tensor_qc1_sg3_deg1.dat
cb3 = conduction band no. 3 (=X band)
               qc1 = quantum cluster no. 1
                   sg3 = no. of Schrödinger equation to be solved
                       deg1 = degeneracy of Schrödinger equation to be solved

position [nm]
position       (1/m)_xx       (1/m)_yy       (1/m)_zz       (1/m)_xy       (1/m)_xz       (1/m)_yz
...
0.350750E+002  0.769231E+000  0.434783E+001  0.434783E+001  0.000000E+000  0.000000E+000  0.000000E+000
...
              1/1.3 = 0.769   1/0.23 = 4.434  1/0.23 = 4.34
 

In this example the mass tensor is diagonal and (1/m)xx contains 1/(longitudinal mass ml) and (1/m)yy=(1/m)zz contains 1/(transverse mass mt) of the X valley of GaAs.

database_nn3.in:
$binary-zb-default
 binary-type            = GaAs-zb-default
 conduction-band-masses = 0.067d0 0.067d0  0.067d0   ! Gamma
                          1.9d0   0.0754d0 0.0754d0  ! L  (ml mt mt)
                          1.3d0   0.23d0   0.23d0    ! X  (ml mt mt)
More information on effective masses...

Note that the labels x, y and z of the mass tensor output are defined with respect to the simulation coordinate system.

 

complex-wave-functions = yes     ! It would have been better to call this amplitudes rather than complex-wave-functions.
                     
 = no

Flag whether to print out the wave functions psi (amplitudes) including real and imaginary parts in addition to the output of the probability densities Psi².
The amplitudes of a single-band Hamiltonian are typically real and the imaginary part is zero. This does not hold for nonzero magnetic fields or nonzero superlattice vectors.
Depending on the algorithm inside the code (e.g. storage of the Hamiltonian in a real or complex array, or usage of a real or complex eigenvalue solver), the output contains only the real part, or the real part and the imaginary part (which is zero in most cases). In the case of a complex eigenvalue solver, the imaginary part might be nonzero even for zero magnetic field or no superlattice vector. If this is the case, the wavefunctions could be converted into a real basis.

 

eigenvalues-only        = yes / no   ! (default: no)

Sometimes one is only interested in plotting out the eigenvalues but not the eigenfunctions.
Nevertheless, internally in the program the eigenfunctions are used (e.g. for calculating the density).

 

scale = 1d0

The scale parameter can be used to scale the size of the wave functions in the output file.
This is just for visualization purposes in order to fit wavefunctions more nicely into band structure plots. This scaling has no physical meaning.

So far, it scales the wave function psi and psi² (i.e. the probability amplitude or charge density) the same way:
psi²' = scale * psi²
psi'  = scale * psi

1D: The units of psi² are [1/nm], the units of psi are SQRT([1/nm]).
   This way the integrated psi² over the whole device (which is in units of [nm]) equals 1.
2D: The units of psi² are [1/nm²], the units of psi are SQRT([1/nm²]).
   This way the integrated psi² over the whole device (which is in units of [nm²]) equals 1.
3D: The units of psi² are [1/nm³], the units of psi are SQRT([1/nm³]).
   This way the integrated psi² over the whole device (which is in units of [nm³]) equals 1.

(It holds for unscaled psi², i.e. scale = 1d0: A good check to see if psi² is normalized correctly is to apply Neumann boundary conditions at all boundaries of the quantum cluster. The ground state probability density then is constant over the whole device. This value in units of [1/nm] (1D), [1/nm²] (2D) or [1/nm³] (3D) multiplied by the length (1D), area (2D) or volume (3D) of the quantum cluster must equal 1.)

 

shift-wavefunction-by-eigenvalue  = yes ! (1D:    yes = default)
                                  = no  !
(2D/3D: no  = default)

If yes, in addition to default output, the wave function psi and the probability density psi2 are shifted with respect to their eigenvalue.
This is sometimes useful when plotting the wave functions together with the band edge profile.
The relevant output files have the label _shift in their file names.

 

conduction-band-numbers = 1 2 3

Integer array that determines the numbers of the conduction bands for which the corresponding eigenvalues and eigenfunctions should be put out.

 

cb-min-ev = 1

Lower boundary for interval of conduction band eigenvalues and eigenfunctions to be put out.

 

cb-max-ev = 1

Upper  boundary for interval of conduction band eigenvalues and eigenfunctions to be put out.

 

valence-band-numbers = 1 2 3

Integer array that determines the numbers of the valence bands for which the corresponding eigenvalues and eigenfunctions should be put out.

 

vb-min-ev = 1

Lower boundary for interval of valence band eigenvalues and eigenfunctions to be put out.

 

vb-max-ev = 1

Upper  boundary for interval of valence band eigenvalues and eigenfunctions to be put out.

 

interband-matrix-elements = yes  ! calculates interband matrix elements
                          
= no
==> square of the spatial overlap matrix element | <psi_i* | psi_j> |^2

The output files
  interband1D_vb001_cb001_qc001_hlsg001_deg001_dir.dat (heavy   hole <-> Gamma conduction band)
  interband1D_vb002_cb001_qc001_hlsg002_deg001_dir.dat
(light     hole <-> Gamma conduction band)
  interband1D_vb003_cb001_qc001_hlsg003_deg001_dir.dat
(split-off hole <-> Gamma conduction band)
 contain data like
 Spatial overlap matrix elements | < psi_hl_i | psi_el_j > |^2 and
                                                   energy of transition in [eV]
 heavy hole <-> Gamma conduction band
------------------------------------------------------------------------
  |<psi_vb001|psi_cb001>|^2  0.987507995852382         1.654103
  |<psi_vb001|psi_cb002>|^2  1.336279027563441E-030
  |<psi_vb001|psi_cb003>|^2  0.145559411422541         2.538366
  |<psi_vb002|psi_cb001>|^2  1.133344425625580E-030
  |<psi_vb002|psi_cb002>|^2  0.964789984970279         2.065139
which are the spatial overlap matrix elements between all calculated states in bands 'cband' and 'vband' from eigenvalues 'min-ev' to 'max-ev'.

There is also a two-dimensional plot available: interband1D_vb001_cb001_qc001_hlsg001_deg001_dir_2Dplot.fld / *.coord / *.dat
It contains the matrix elements Mij where the x axis refers to the i hole states, and the y axis to the j electron states.
If only Mii transitions are allowed, a diagonal structure should be seen (e.g. in an infinite quantum well).


To plot matrix elements vs. electric field.
The electric field is calculated by ('voltage-offset' + vbias) / distance
with v_bias = sweep_index * sweep_voltage.

The electric field is scaled to [kV/cm].

The 'voltage-offset' is the built-in potential in [V].
distance:
The length of the region with constant field [in scaled units: nm] is specified via 'lever-arm-length'.

This only works for intrinsic regions with quasi constant electric field, but imitates the way experimental physicists approximate the electric field.

In order to use only bound states the MODULE bound_states_1D must be initialized.
=> $quantum-bound-states

-> momentum matrix <psi*|p|psi>  (not implemented yet)
-> Coulomb element <psi*|V|psi> 
(not implemented yet)
with V = Int( 1/4pi (r1-r2) * |psi(r2)|‹dr2 )

 

intraband-matrix-elements-operator = "z^2"                     ! (needed for standard deviation)
                                   = '0.0002 * x * ( x - 10)'  !
(useful to study for perturbation theory)
Calculate matrix elements for this operator:
 <i|Op|i>           
matrix elements ii, i.e. expectation value (i=i), filename: intraband_ExpectationValue_cb1_qc1_sg1_deg1.txt
                    
If the operator is the perturbation potential operator, then the units of this file are eV,
                     and the expectation values are equivalent to the 1st-order corrections to the energies En(1) using nondegenerate perturbation theory.
                     If the operator is the perturbation potential operator, then the file intraband_2ndOrder_cb1_qc1_sg1_deg1.txt,
                     contains the 2nd-order corrections to the energy eigenvalues En(2) using nondegenerate perturbation theory.
 <f|Op|i>            matrix elements fi, filename: intraband_MatrixElement_cb1_qc1_sg1_deg1.txt / *_2D_plot.fld
 <f|Op|i>/(E_f-E_i)  matrix elements fi divided by the energy difference. These matrix elements are needed for nondegenerate
                     perturbation theory, i.e. 1st-order corrections to the wave functions psin(1), and 2nd-order corrections to the energies En(2).
                     filename: intraband Coefficient cb1 qc1 sg1 deg1.dat / *_2D_plot.fld
The coordinates x, y, z refer to the grid and have to be given in units of [nm]. The function is evaluated automatically.

The calculated matrix elements have the units of 'intraband-matrix-elements-operator', obviously.

 

intraband-matrix-elements = p          ! < psif* | p   | psii >
                          
= z          ! < psif* |  | psii >
                          
= o          ! < psif* |       psii
(spatial overlap)
                          
= yes        !
(prints out both matrix elements 'p' and  'z')
                          
= everything !
(prints out all matrix elements, i.e. 'p',  'z',  'o', and the one specified in intraband-matrix-elements-operator)
                          
= no         !
Calculates intersubband dipole moment and oscillator strength where the subscript i means initial and f means final state.
Matrix elements with small values, i.e. forbidden transitions, are omitted from the output file. If you need these values, please use debug-level = 1.

The output files
  intraband_p_cb1_qc1_sg1_deg1.txt ! (Gamma conduction band)
  intraband_p_vb1_qc1_sg1_deg1.txt !
(heavy hole)
  intraband_p_vb2_qc1_sg2_deg1.txt !
(light hole)
  intraband_p_vb3_qc1_sg3_deg1.txt !
(split-off hole)
            z                      !
kind of matrix element ('p' / 'z' / 'o')
            o                      !
kind of matrix element ('p' / 'z' / 'o')
 contain data like

(Note: | < psif* | p | psii > | matrix element given in green color.)

-------------------------------------------------------------------------------
Intersubband transitions
=> Gamma conduction band
-------------------------------------------------------------------------------
Electric field in z-direction [kV/cm]: 0.0000000E+00
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
                   Intersubband dipole moment  | < psi_f* | z | psi_i > |  [Angstrom]
                   Intersubband dipole moment  | < psi_f* | p | psi_i > |  [h_bar / Angstrom]
------------------|------------------------------------------------------------
                                  Oscillator strength []
------------------|--------------|---------------------------------------------
                                                 Energy of transition [eV]
------------------|--------------|--------------|------------------------------
                                                            m* [m_0]
------------------|--------------|--------------|----------|-------------------
<psi001*|z|psi001>  249.0000  
        (matrix element <1|1> depends on choice of origin!)
<psi001*|p|psi001>  4.3405972E-19 
(matrix element <1|1> independent of origin)

<psi002*|z|psi00118.01673       0.9602799      0.1694912  6.6500001E-02
<psi002*|p|psi001>  2.6649671E-02  0.9602799      0.1694912  6.6500001E-02

<psi003*|z|psi001>  6.1430171E-07  2.9757722E-15  0.4517909  6.6500001E-02
(same parity: symmetric)
<psi003*|p|psi001>  2.7325134E-18

<psi004*|z|psi001>  1.441336       3.0698571E-02  0.8466209  6.6500001E-02
<psi004*|p|psi001>  1.0649348E-02  3.0698579E-02  0.8466209  6.6500001E-02

<psi005*|z|psi001>  1.6007220E-07  6.0536645E-16  1.353592   6.6500001E-02
(same parity: symmetric)
<psi005*|p|psi001>  6.9518724E-18

<psi006*|z|psi001>  0.3971010      5.4281605E-03  1.972205   6.6500001E-02
<psi006*|p|psi001>  6.8347314E-03  5.4281540E-03  1.972205   6.6500001E-02

<psi007*|z|psi001>  5.1874160E-08  1.2690011E-16  2.701849   6.6500001E-02
(same parity: symmetric)
<psi007*|p|psi001>  2.8686024E-19

<psi008*|z|psi001>  0.1634139      1.6508275E-03  3.541806   6.6500001E-02
<psi008*|p|psi001>  5.0510615E-03  1.6508278E-03  3.541806   6.6500001E-02
 ...
<psi020*|z|psi001>  1.0178176E-02  3.9451432E-05  21.81846   6.6500001E-02
<psi020*|p|psi001>  1.9380626E-03  3.9452334E-05  21.81846   6.6500001E-02

Sum rule of oscillator strength
: f_psi001 = 0.9994023
Sum rule of oscillator strength: f_psi001 = 0.9994023
  ...


which are the intersubband dipole moments

    | Mfi | = | integral  (psif* (z) z psii (z) dz) |

and the oscillator strengths

    ffi = 2m* / hbar² * (Ef - Ei)  | Mfi

between all calculated states in each band from eigenvalues 'min-ev' to 'max-ev'.
Note that it holds: e.g. ffi = - fif.


The commonly used
                  Intersubband dipole moment
  | < psi_f* | z | psi_i > |  [Angstrom]

depends on the choice of origin for the matrix elements when f = i, thus the user might prefer to output the
                  Intersubband dipole moment  | < psi_f* | p | psi_i > |  [h_bar / Angstrom]
which are the intersubband dipole moments

    | Nfi | = | integral  (psif* (z) pz psii (z) dz) | = | - i hbar integral  (psif* (z) d/dz psii (z) dz) |

and the oscillator strengths

    ffi
= 2m* / hbar² (Ef - Ei)  | Mfi  = 2 / ( m* (Ef - Ei) )  | Nfi

 between all calculated states in each band from eigenvalues 'min-ev' to 'max-ev'.



For more details, have a look at the tutorial: Optical intersubband transitions in a quantum well - Intraband matrix elements and selection rules

 

Note: To get correct overlap integrals for inter- and intraband transitions, the wave functions psi must be real for a real, symmetric matrix which is the case for the single-band Schrödinger equation (without superlattice and without magnetic field).
In 2D and 3D, if magnetic-field-on = yes and schroedinger-masses-anisotropic = yes or = box and if  schroedinger-1band-ev-solv = arpack or = chearn, then the wave functions psi will have an imaginary part unequal to zero leading to different results for the spatial overlap integrals.

 

intraband-lifetime        = yes  ! calculates the lifetime of intersubband transitions
                         
= no   ! does nothing (default)

This feature is useful for e.g. quantum cascade lasers.
Note: intraband-matrix-elements must not be set to no in order to print out the lifetimes (scattering rates).
See tutorial "Scattering times for electrons in unbiased and biased single and multiple quantum wells" for more details.
If the intersubband transition energy between the states i and j is smaller than the LO phonon energy (Eij < ELO), then LO phonon scattering is impossible, and thus the entry for the lifetime in the output file does not show a number.

 

 

stark-effect-out          = yes
                         
= no

voltage-offset            = 1d0    ! necessary for stark-effect-out          = yes
                                  
!
necessary for interband-matrix-elements = yes
in units of [V]

lever-arm-length          = ???    ! necessary for stark-effect-out          = yes
                                  
!
necessary for interband-matrix-elements = yes
in units of [nm]

resonance-bound-states    = ???
resonance-incidence       = ???
 

 

Output:


 

Eigenfunctions and eigenvalues:

Filename

cb003_ind002_qc001_sg001_deg001_neu.dat
cb003 Number of conduction/valence band
     _ind002 Number of voltage sweep step 
            _qc001 Number of quantum cluster
                  _sg001 Number of Schrödinger equation
                       _deg001 Number of subsolution
                              _neu
                              _dir
Boundary condition (Dirichlet _dir and Neumann _neu)

Structure:                          

position[nm] ev_(001)[eV] ev_(002)[eV] psi^2_(001) psi^2_(002)
Position in space Eigenvalue number 1[eV] Eigenvalue number 2 [eV] Eigenfunction number 1 [psi2] Eigenfunction number 2 [psi2]

 

Comments

Structure of the 1-band solutions (sg_info.txt)

Meaning of: num_sg
                  For different band energies, different Schrödinger equations have to be solved.
                  These are numbered by num_sg.

                  num_deg
        
For equal energy but different masses again, different equations have to be solved.
                  These are numbered by num_deg).

Eigenvalues are in [eV].

Output:
-       .dat Eigenfunctions are
psi^2, normalized to one (with respect to [nm] units].
- _shift.dat: Eigenfunctions are
psi^2, normalized to one (with respect to [nm] units] and shifted by their eigenvalues.