nextnano.com
==> nextnano Documentation (New)

nextnano++ software

     

Up

This is the old documentation. Here's the link to the new documentation.

classical{}

Specifies which bands enter classical densities and dopant densities. Only the bands specified are included in the simulation.

 

classical{

      Conduction bands:
   Gamma{                               # at Gamma point
          output_bandedge
{              #
output band edge of this band in a single file [eV]
             averaged = yes             #
for each grid point the band edge will be averaged between neighboring material grid points (default: yes)
                      = no              #
abrupt discontinuities at interfaces (in 1D two points, in 2D four points, in 3D eight points for each grid point)
          }                             #
(averaged = yes is similar to 'boxes = no'. Note that 'boxes' is related to output of material grid points while averaged is related to output of simulation grid points.)
        }                               #
2D and 3D simulations can produce a lot of output data (~order of GB).
                                        #
In order to avoid excessive consumption of your hard disk, it is strongly recommended to use averaged = yes for 2D and 3D simulations.

   L{     output_bandedge{ ... } }      #
at L point; does not apply to wurtzite materials
   X{     output_bandedge{ ... } }      #
at X point; does not apply to wurtzite materials; for all materials other than Si, Ge, GaP
      or
   Delta{ output_bandedge{ ... } }      # at Delta point; for Si, Ge, GaP

      Valence bands:
   HH{    output_bandedge{ ... } }      #
heavy hole
   LH{    output_bandedge{ ... } }      #
light hole
   SO{    output_bandedge{ ... } }      #
split-off hole (or crystal-field split-off hole in wurtzite)
 

   Further output definitions
   output_bandedges{                    #
output all (relevant) band edges and (relevant) Fermi levels in one file named 'bandedges.*' [eV]
      profiles = "Gamma"                #
enumerate relevant band edges for output. If profiles are not defined, all band edges are written out.
                 "X"
                 "Delta"
                 "L"
                 "HH"
                 "LH"
                 "SO"

                 "electron_fermi_level"
                 "hole_fermi_level"
   
Example:
      profiles = "Gamma HH LH"


      averaged =  yes                   #
for each grid point the band edges will be averaged between neighboring material grid points (default)
               =  no                    #
abrupt discontinuities at interfaces (in 1D two points, in 2D four points, in 3D eight points for each grid point)
                                        #
( 'averaged = yes' is similar to 'boxes = no'. Note that 'boxes' is related to output of material grid points while 'averaged' is related to output of simulation grid points.)
   }

   output_bandgap{                      # output band gaps for Gamma, L, X (or Delta) bands with reference to the highest valence band edge.
                                        #
Additionally the difference between the lowest conduction band and the highest valence band edges is written out: MIN(Gamma,L,X (or Delta)) - MAX(hh,lh,so) [eV]
      averaged =  yes                   #
for each grid point the band gaps will be averaged between neighboring material grid points (default)
               =  no                    #
abrupt discontinuities at interfaces (in 1D two points, in 2D four points, in 3D eight points for each grid point)
                                        #
( 'averaged = yes' is similar to 'boxes = no'. Note that 'boxes' is related to output of material grid points while 'averaged' is related to output of simulation grid points.)
   }

   output_carrier_densities{}           # output electron and hole densities [1018/cm3]
                                        #
The units for the output file total_charges.txt are
                                        # electrons/cm2 (1D simulation),
                                        #
electrons/cm   (2D simulation),
                                        #
electrons        (3D simulation).

   output_ionized_dopant_densities{}    # output ionized dopant densities [1018/cm3]
                                        #
The ionized acceptor and donor densities are written to these files:
                                        # density_acceptor_ionized.dat
                                        # density_donor_ionized.dat

   output_intrinsic_density{            # output intrinsic density [1/cm3]
      boxes = yes/no                    #
(optional) For each grid point, in 1D two points are printed out to mimic
                                        # abrupt discontinuities at interfaces (in 2D four points, in 3D eight points)
   }

   output_energy_resolved_densities{}   # output energy-resolved densities n(x,E), p(x,E) in units of [cm-3 eV-1] in 1D, [cm-3 eV-1] in 2D, and [cm-3 eV-1] in 3D.

   energy_distribution
{                 #
output integrated electron and hole density as a function of energy, n(E), p(E) in units of [cm-2 eV-1] in 1D, [cm-1 eV-1] in 2D, and [eV-1] in 3D.
      min = -5.0                        #
minimum energy [eV] (required, default: -10.0)
      max =  5.0                        # maximum energy [eV] (required, default: 5.0)
      energy_resolution = 0.1           # energy spacing [eV] (optional, default: 0.1)
      only_quantum_regions = yes        # consider only quantum regions (optional, default: no), can be used to suppress contributions from outside the quantum regions of interest. This works even if quantum mechanics is not enabled in run{}.
                                        # Note that energy_distribution{}, which directly calculates the space-integrated energy-resolved density, is logically independent
                                        # from the two groups energy_resolved_density{} and emission_spectrum{}.
                                        # Incidentally, it also runs much faster and needs much less memory for the same energy spacing.
   }

   energy_resolved_density{             # output electron and hole density as a function of energy and position, n(x,E), p(x,E) in units of [cm-3 eV-1] in 1D, [cm-3 eV-1] in 2D, and [cm-3 eV-1] in 3D.
      min = -5.0                        #
minimum energy [eV] (required, default: -10.0)
      max =  5.0                        # maximum energy [eV] (required, default: 5.0)
      energy_resolution = 0.1           # energy spacing [eV] (optional, default: 0.1)
      only_quantum_regions = yes        # consider only quantum regions (optional, default: no), can be used to suppress contributions from outside the quantum regions of interest. This works even if quantum mechanics is not enabled in run{}.
   }

   emission_spectrum{                   # output emission spectrum calculated from energy-resolved densities n(E,x) and p(E,x),
                                        #
i.e. emission_spectrum{} uses the energy-resolved density computed by energy_resolved_density{} which is required to be specified in the input file.
      min = -5.0                        # minimum energy [eV] (optional, default: -10.0)  <== not supported any more in versions newer than 2020-06-15: specifier moved to energy_resolved_density{}
      max =  5.0                        # maximum energy [eV] (optional, default: 5.0)    <== not supported any more in versions newer than 2020-06-15: specifier moved to energy_resolved_density{}
      energy_resolution = 0.1           # energy spacing [eV] (optional, default: 0.1)     <== not supported any more in versions newer than 2020-06-15: specifier moved to energy_resolved_density{}
 # min, max always refer to a zero point at the (local) conduction band edge, and not to the photon energy.
 # max
should be set high enough above 0 to contain all occupied electron states and min should be set far enough below -bandgap to contain all occupied hole states.
 # The respective values for energy_resolution should be set smaller than kBT if one wishes to fully resolve the structures of the integrated densities and/or of the emission spectra.
 # However, while setting energy_resolution in energy_distribution{} as low as 0.001 eV has little influence on program execution time,
 # using similarly small values for energy_resolution in energy_resolved_density{} will result in massive slowdowns (and in 3D also in massive memory use), since the computational effort for obtaining emission spectra grows quadratically with the number of energy bins.
      only_quantum_regions  = yes / no  # <== not supported any more in versions newer than 2020-06-15: specifier moved to energy_resolved_density{}
                                        # consider only quantum regions (optional, default: no), can be used to suppress contributions from outside the quantum regions of interest. This works even if quantum mechanics is not enabled in run{}.


      output_spectra
{                   #
required if emission_spectrum{} is calculated
       #
computed types of spectra
         emission            = yes / no     #
default: yes
         gain                = yes / no     #
default: yes
         absorption          = yes / no     #
default: yes
         stimulated_emission = yes / no     #
default: no

       #
unit selection - the following apply to all of the above
         spectra_over_energy     = yes / no #
default: yes
         spectra_over_wavelength = yes / no #
default: yes
         spectra_over_frequency  = yes / no #
default: no
         spectra_over_wavenumber = yes / no #
default: no

       #
unit selection - the following applies to all combinations above
         photon_spectra = yes / no          #
default: yes

       #
unit selection - the following only applies to combinations with (spontaneous) emission and stimulated emission
         power_spectra = yes / no           #
default: no

      }
                                        #
The classical emission spectrum contains both intensity and photon count.
                                        # emitted_photon_spectrum.dat
: Units for the emitted photon spectrum: [cm-2 s^-1 eV-1] in 1D, [cm-1 s^-1 eV-1] in 2D, and [s^-1 eV-1] in 3D.
                                        # emitted_power_spectrum.dat
: Units for the emitted photon power are: [W cm-2 eV-1] in 1D,  [W cm-1 eV-1] in 2D, and [W eV-1] in 3D.

      refractive_index      = 3.0       #
averaged-out refractive index nr [] (optional, default: 1.0)  Refractive index used for calculating gain and absorption. The absorption/gain is multiplied by the factor 1/nr2.
                                        # The values for the optical dielectric constant from the database are not used yet at this point.
   }

   output_photon_density = yes / no     #
output emitted photon density in units of [cm-3s-1] (optional, default: no) (emitted_photon_density.dat)
   output_power_density  = yes / no     # output emitted power density in units of [W/cm3] (optional, default: no) (emitted_power_density.dat)

                                        #
For gain, only the positive part is written out, the negative (= absorption) part is cut off.
                                        # For absorption, the whole curve is shown, i.e. including negative values (= gain).
                                        # For stimulated emission, only the positive part is shown.
                                        # For gain, absorption, and stimulated emission, the upper 30% of the spectra are cut off.
                                        #
Stimulated emission assumes that all photon modes are occupied by one photon. Thus, not the actual stimulated emission in the device is calculated,
                                        # but rather a spectral response similar to the gain.
 

Carrier statistics for classical densities

   carrier_statistics = fermi_dirac         # (default) Model for carrier statistics is Fermi-Dirac
                      = maxwell_boltzmann   #
Optionally, one can use Maxwell-Boltzmann statistics for the classical densities (not recommended as this is only an approximation which is only applicable in certain cases).
                                            #
In order to maintain consistency, also the (integrated) energy distribution (density_vs_energy) and the classical emission spectra and densities
                                            # are computed using the same statistics. Use together with quantum regions is possible but not recommended,
                                            # and convergence of the current-Poisson or quantum-current-Poisson equation may become worse (please readjust convergence parameters accordingly).

                                            #   
n = Nc * FermiIntegral1/2( (EF - Ec) / (kBT) )  # electron density for fermi_dirac
                                            #    p = Nc * FermiIntegral1/2( (Ev - EF) / (kBT) )  #    hole density for fermi_dirac

                                            #    n = Nc * exp( (EF - Ec) / (kBT) )           # electron density for maxwell_boltzmann
                                            #    p = Nc * exp( (Ev - EF) / (kBT) )           #    hole density for maxwell_boltzmann

}