SimulationParameter{ }

Calling sequence

SimulationParameter{ }

Functionality

Specifies parameters related to physical assumptions and numerics. Please refer to Coherence length, Electronic band structure, Axial energy cut-off, Energy range of the Green’s functions and Convergence for the model description.

Example
SimulationParameter{
    # coherence length
    CoherenceLengthInPeriods = 1
    CoherenceLengthInNm =
    CoherenceLengthSelfEnergy =

    # basis state calculation
    SpatialGridSpacing = 0.3
    nLateralPeriodsForBandStructure = 1
    SmoothingLengthKP = 0.1
    ContinuousValenceBand = no

    AssumeIntrinsicNeutrality = no

    # axial energy cut-off by energy value
    EnergyRangeAxial = 60
    EnergyRangeAxialValence = 50

    # axial energy cut-off by number of subbands
    NumberOfConductionSubbands = 1
    NumberOfValenceSubbands = 2

    # lateral energy cut-off
    EnergyRangeLateral = 200

    # energy range of Green's functions
    EnergyGridSpacing = 5
    EminShift = 0
    EmaxShift = 0

    # convergence
    ConvergenceValueGF =
    ConvergenceValueCurrent =
    ConvergenceMinimum =
    NMaxIterations = 500
    ConvergFactInit =
    ConvergFactMin =
    ConvergFactMax =
    ExitLoopIfNoConvergAfter =
    PhononConvergence =

    StartFromEquilibrium = yes
}

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}\)

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

Functionality


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.

Note

This parameter only affects 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.


nLateralPeriodsForBandStructure

Calling sequence

SimulationParameter{ nLateralPeriodsForBandStructure }

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

Functionality

Sets the number of periods next to the central period. If this parameter is 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 N can be used for accurate calculation of the energy levels and wave functions that are plotted in the folder EnergyEigenstates.

Note

This parameter only affects 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.


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 when NumberOfBands is 8.


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.

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.


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.

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.


NumberOfConductionSubbands

Calling sequence

SimulationParameter{ NumberOfConductionSubbands }

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

Functionality

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

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.


NumberOfValenceSubbands

Calling sequence

SimulationParameter{ NumberOfValenceSubbands }

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

Functionality

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

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.


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.


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.

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.


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.

Note

This choice is 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.


EminShift

Calling sequence

SimulationParameter{ EminShift }

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

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

Functionality

Shifts the lower bound of the energy range for the Green’s functions.


EmaxShift

Calling sequence

SimulationParameter{ EmaxShift }

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

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

Functionality

Shifts the upper bound of the energy range for the Green’s functions.


ConvergenceValueGF

Calling sequence

SimulationParameter{ ConvergenceValueGF }

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

Functionality

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

Note

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


ConvergenceValueCurrent

Calling sequence

SimulationParameter{ ConvergenceValueCurrent }

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

Functionality

Sets the target relative residue for the current density.

Note

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


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.

Note

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


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


StartFromEquilibrium

Calling sequence

SimulationParameter{ StartFromEquilibrium }

Properties
  • choices: yes; no

  • default: no

Functionality