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 largenLateralPeriodsForBandStructure
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.5.1 left). nextnano.NEGF therefore selects a limited number of subbands and construct the Green’s function basis (Figure 4.5.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.
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. Ifno
, 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
…