SimulationParameter{ }

Calling sequence

SimulationParameter{ }

Functionality

Specifies parameters related to physical assumptions and numerics.

Coherence length

Example
SimulationParameter{
    CoherenceLengthInPeriods =
    CoherenceLengthInNm =
    CoherenceLengthSelfEnergy =
}

CoherenceLengthInPeriods

Calling sequence

SimulationParameter{ CoherenceLengthInPeriods }

Properties
  • type: \(\mathrm{integer}\)

Functionality

Sets the accounted coherence length of electrons in numbers of period. 1 should be enough for almost all existing QCL designs. In contrast, a larger number is needed for superlattices.

CoherenceLengthInNm

Calling sequence

SimulationParameter{ CoherenceLengthInNm }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{nm}\)

Functionality

Further limits the coherence length [nm] for which self-energies are considered. This will speed up the calculation of the self-energies. On the other hand, this can reduce the accuracy of the scattering processes if this length is below the actual coherence length in the simulated device. It is recommended to assess the accuracy of such approximation by comparing to the results from different coherence lengths.

CoherenceLengthSelfEnergy

Calling sequence

SimulationParameter{ CoherenceLengthSelfEnergy }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

Basis state calculation

Example
SimulationParameter{
    SpatialGridSpacing = 0.3
    nLateralPeriodsForBandStructure = 1
    SmoothingLengthKP = 0.1
    ContinuousValenceBand = no
}

Note

These parameters only affect the basis state calculation time. They are not critical for the total calculation time since the NEGF self-consistent loop is usually the most time-consuming part.

SpatialGridSpacing

Calling sequence

SimulationParameter{ SpatialGridSpacing }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{nm}\)

Functionality

Sets the real space grid spacing in the growth (\(z\)) direction.

nLateralPeriodsForBandStructure

Calling sequence

SimulationParameter{ nLateralPeriodsForBandStructure }

Properties
  • type: \(\mathrm{integer}\)

Functionality

Sets the number of periods next to the central period. If nLateralPeriodsForBandStructure = N, 2N+1 periods are used in the Schrödinger equation, which is solved at the beginning of the simulation. The spectrum will contain 2N+1 states per miniband. (The number of grid points) * (2N+1) should not exceed \(\sim 10^4\) for fast calculation. A large nLateralPeriodsForBandStructure can be used for accurate calculation of the energy levels and wave functions that are plotted in the folder EnergyEigenstates.

SmoothingLengthKP

Calling sequence

SimulationParameter{ SmoothingLengthKP }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

ContinuousValenceBand

Calling sequence

SimulationParameter{ ContinuousValenceBand }

Properties
  • choices: yes; no

  • default: no

Functionality

Switches between two different discretization schemes for the 8-band model.

Axial energy cut-off

Heterostructures consist of a large number of subbands, but only a few near the band gap are relevant for the electronics and optoelectronics (Figure 4.2.1 left). nextnano.NEGF therefore selects a limited number of subbands and construct the Green’s function basis (Figure 4.2.1 right).

You can specify the cut-off either by the energy range measured from the ground states (EnergyRangeAxial and/or EnergyRangeAxialValence), or by the number of subbands (NumberOfConductionSubbands and/or NumberOfValenceSubbands). The number of subbands is considered to be without the spin degree of freedom.

Example
# By energy cut-off value [meV]
SimulationParameter{
    EnergyRangeAxial = 60
    EnergyRangeAxialValence = 50
}
# By number of subbands
SimulationParameter{
    NumberOfConductionSubbands = 1
    NumberOfValenceSubbands = 2
}
SimulationParameter{
    AssumeIntrinsicNeutrality = no
}

Note

This choice is critical for the NEGF calculation time: the axial energy range needs to be large enough to cover all relevant carrier dynamics, but small enough to save computation time.

../../../_images/nextnanoNEGF_miniband_selection.png

Figure 4.2.1 Schematics of miniband selection in the “electron picture”, in which the valence band is considered to be almost fully-occupied sea of electrons.

EnergyRangeAxial

Calling sequence

SimulationParameter{ EnergyRangeAxial }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets a energy cut-off for the mode selection in the conduction band along the growth axis (\(z\) direction). It is evaluated from the lowest energy state in the conduction band.

EnergyRangeAxialValence

Calling sequence

SimulationParameter{ EnergyRangeAxialValence }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets a energy cut-off for the mode selection in the valence band along the growth axis (\(z\) direction). It is evaluated from the highest energy state in the valence band.

NumberOfConductionSubbands

Calling sequence

SimulationParameter{ NumberOfConductionSubbands }

Properties
  • type: \(\mathrm{integer}\)

Functionality

Specifies the number of subbands for the mode selection in the conduction band.

NumberOfValenceSubbands

Calling sequence

SimulationParameter{ NumberOfValenceSubbands }

Properties
  • type: \(\mathrm{integer}\)

Functionality

Specifies the number of subbands for the mode selection in the valence band.

AssumeIntrinsicNeutrality

Calling sequence

SimulationParameter{ AssumeIntrinsicNeutrality }

Properties
  • choices: yes; no

  • default: no

Functionality

If yes, calculate the initial background density by summing up the states between the lowest selected axial energy and the 6N-th eigenvalue of the Hamiltonian, where N is the total number of real space grid points. If no, calculate it by summing up the states from the bottom of the full spectrum up to the lower axial energy cut-off.

Lateral energy cut-off

EnergyRangeLateral

Calling sequence

SimulationParameter{ EnergyRangeLateral }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the energy range of the in-plane dispersion. The energy reference is the bottom of the ground states.

Example
SimulationParameter{
    EnergyRangeLateral = 200
}

Note

This choice is critical for the NEGF calculation time: the in-plane energy range needs to be large enough to cover all relevant carrier dynamics, but small enough to save computation time.

Adjusting the energy range of the Green’s functions

Per default, the energy range of the Green’s functions are set automatically considering the ground state energies of the electrons, axial and in-plane energy ranges, and the bias. However, if needed, this default energy range can be modified by setting a negative value for EminShift and/or positive value for EmaxShift. Please check the output of the spectral functions to know whether the default setting of the energy range of the Green’s functions is sufficient. Since September 2024, a warning is raised if the energy range is insufficient.

Example
SimulationParameter{
    EnergyGridSpacing = 5
    EminShift = 0
    EmaxShift = 0
}

Note

These choices are critical for the NEGF calculation time: the energy grid needs to be fine enough to resolve the peaks of the Green’s functions, but coarse enough to save computation time.

EnergyGridSpacing

Calling sequence

SimulationParameter{ EnergyGridSpacing }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Sets the homogeneous energy grid spacing for the Green’s functions and self-energies.

EminShift

Calling sequence

SimulationParameter{ EminShift }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Shifts the minimum energy for the Green’s functions.

EmaxShift

Calling sequence

SimulationParameter{ EmaxShift }

Properties
  • type: \(\mathrm{real\;number}\)

  • unit: \(\mathrm{meV}\)

Functionality

Shifts the maximum energy for the Green’s functions.

NEGF Convergence

The NEGF self-consistent loop ends successfully if the relative difference between two consecutive iterations has reached ConvergenceValueGF for the lesser Green’s function and ConvergenceValueCurrent for the current density.

If the convergence is not achieved, the iteration is terminated after NMaxIterations.

Example
SimulationParameter{
    ConvergenceValueGF =
    ConvergenceValueCurrent =
    ConvergenceMinimum =
    NMaxIterations = 500

    ConvergFactInit =
    ConvergFactMin =
    ConvergFactMax =
    ExitLoopIfNoConvergAfter =
    PhononConvergence =
}

Note

Small values for the convergence values, together with sufficiently large NMaxIterations, will give the most accurate results.

ConvergenceValueGF

Calling sequence

SimulationParameter{ ConvergenceValueGF }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

Sets the target relative residue for the Green’s functions.

ConvergenceValueCurrent

Calling sequence

SimulationParameter{ ConvergenceValueCurrent }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

Sets the target relative residue for the current density.

ConvergenceMinimum

Calling sequence

SimulationParameter{ ConvergenceMinimum }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

NMaxIterations

Calling sequence

SimulationParameter{ NMaxIterations }

Properties
  • type: \(\mathrm{integer}\)

Functionality

Sets the maximum number of NEGF iterations.

ConvergFactInit

Calling sequence

SimulationParameter{ ConvergFactInit }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

ConvergFactMin

Calling sequence

SimulationParameter{ ConvergFactMin }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

ConvergFactMax

Calling sequence

SimulationParameter{ ConvergFactMax }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality

ExitLoopIfNoConvergAfter

Calling sequence

SimulationParameter{ ExitLoopIfNoConvergAfter }

Properties
  • type: \(\mathrm{integer}\)

Functionality

PhononConvergence

Calling sequence

SimulationParameter{ PhononConvergence }

Properties
  • type: \(\mathrm{real\;number}\)

Functionality