For each simulation run, a new output folder is created in the simulation output folder. The created folder has the name of the input file.
In addition, date-time can be added to the folder name by the nextnanomat setting (Tools → Options → Expert settings before Aug 2021, Tools → Options → View/Output since Aug 2021). For nextnanomat before Aug 2021, this option is recommended in order to avoid overwriting existing output data. For nextnanomat after Aug 2021, simulation output is per default not overwritten and instead enumerated unless you manually check the option “Overwrite existing simulation…”.
The created output folder contains:
The folder Input/
contains all the simulation input such as material parameters as a function of position.
AlloyContent.dat
Al(x)Ga(1-x)As
AlloyScatteringTerm.dat
BandEdges.dat
BandGap.dat
Conduction_BandEdge.dat
DeformationPotential_ConductionBand.dat
DeformationPotential_ValenceBand.dat
DeformationPotential_ValenceBand_Uniaxial.dat
DopingDensity.dat
E_p(Kane energy).dat
EffectiveMass.dat
ElasticConstants.dat
EpsOptic.dat
EpsStatic.dat
L (Dresselhaus parameter L).dat
LatticeConstants.dat
MaterialDensity.dat
PhononEnergy_LO.dat
PiezoConstants.dat
PyroConstants.dat
S (remote band parameter).dat
VelocityOfSound.dat
If the strain option is activated, a folder Strain/
is created.
Strain_CrystalSystem.dat
Strain_Simulation.dat
If the crystal has not been rotated, above files contain identical values.
Strain_trace.dat
The folder Polarization/
contains the piezoelectric and pyroelectric polarization if these options are activated.
InterfaceCharges\PiezoCharges.dat
InterfaceCharges\PyroCharges.dat
PiezoPolarization.dat
PyroPolarization.dat
The folder Init_Electr_Modes\
contains 3 different folders corresponding to 3 different sets of basis states. They are calculated at the first step of the calculation, before the NEGF calculation. These 3 sets of states are basis of the reduced Hilbert space obtained after applying the energy cut-off <Energy_Range_Axial>.
These states are displayed for a default voltage of <Energy_Range_Axial>/2. This voltage at which the states are visualized can be modified by the input file command:
<Simulation_Parameter> ... <Bias_for_initial_Electronic_Modes unit="meV">54</Bias_for_initial_Electronic_Modes> ... </Simulation_Parameter>
The 'reduced real space' modes are eigenstates of the position operator in the reduced Hilbert space (i.e. after the energy cut-off). Because of the energy cut-off, these states are spatially extended instead of being δδ functions. This basis set is the one which is used in the NEGF calculation. It does not depend on the applied voltage. However, this basis has generally little use in terms of physical interpretation.
The folder Init_Electr_Modes\ReducedRealSpace\
contains:
ReducedRealSpaceModes.dat
ReducedRealSpaceModesOn.dat
ReducedRealSpaceModes.dat
but the vanishing parts of the wavefunctions are not shown (plot not supported by nextnanomat).H0ReducedRealSpace_nobias.mat
H0ReducedRealSpace_nobias.mat
Wavefunction.dat
Wavefunction_ConductionBand.dat
, Wavefunction_LHBand.dat
, and Wavefunction_SOBand.dat
Ψi(z)=fci(z)uc(z)+fLHi(z)uLH(z)+fSOi(z)uSO(z)Ψi(z)=fci(z)uc(z)+fLHi(z)uLH(z)+fSOi(z)uSO(z)
The Tight-binding\
folder contains data only if one or several <Analysis_Separator>
are defined in the input file. The tight-binding basis corresponds to piecewise solution of the Schrödinger equation between these separators.
The Wannier-Stark states correspond to the eigenstates of the Schrödinger equation without accounting for Poisson equation (i.e. electrostatic mean-field).
It contains:
Wannier-Stark_States.dat
shows the conduction band edge and the probability densities of the eigenstates of the Schrödinger equation (the Wannier-Stark states). Wannier-Stark_levelsOn.dat
. Same as Wannier-Stark_States.dat
except that the points with almost zero probability density are omitted.Dipoles.mat
gives the dipole matrix elements (i.e. matrix elements of the position operator) The expression in the single-band case is: dij=∫dzfi(z) z fj(z)dij=∫dzfi(z) z fj(z) In the multiband case: dij=∑μ∫dzf(μ)i(z) z f(μ)j(z)dij=∑μ∫dzf(μ)i(z) z f(μ)j(z)
EffectiveMasses.dat
gives the position and energy-dependent effective massH0_WannierStark.mat
gives the Hamiltonian in the Wannier-Stark basis.Oscillator_Strength.mat
gives the oscillator strengths.The oscillator strength is calculated from the formula fαβ=2|pαβ|2m0(Eβ−Eα)fαβ=2|pαβ|2m0(Eβ−Eα) Note that the electron mass m0m0 entering the above formula is the bare electron mass.
This oscillator strength (which is sometimes referred as the unnormalized one), differs from the usual definition in the single band case by the ratio m∗/m0m∗/m0, i.e. m∗m0fαβm∗m0fαβ is called the normalized oscillator strength.
The advantage of this unnormalized definition is that it is general enough to be applied to the multiband case.
Note that in the parabolic single-band case, the usual sum-rule is retrieved by using the normalized definition ∑β≠αm∗m0fαβ=1∑β≠αm∗m0fαβ=1
The file Lateral_spectrum.dat
gives the energy discretization for the states used to describe the 2-Dimensional (2D) motion in the directions (x,y) perpendicular to the heterostructure. The lateral motion is discretized using cylindrical boundary conditions, and the corresponding eigenstates are Bessel funcitons.
xx axis: Lateral state index
yy axis: order of Bessel
(zero index)-1 of Bessel
Relative Energy (meV)
.
For each voltage or temperature step, the following files are produced as a result of the NEGF calculation:
CarrierDensity.dat
Conduction_BandEdge.dat
Convergence.txt
NO-CONVERGENCE.txt
CurrentDensity.dat
Current-miscellaneous.txt
Teff=∑i pi E∥(i) / kb where pi is the fraction (i.e. population normalized to 1) of occupation in the in-plane state i, E∥(i) is the in-plane energy for the in-plane state i, and k_b the Boltzmann constant.
Electrostatic-Potential.dat
3 folders are created to output physical quantities in the 3 different basis sets (Reduced Real Space
, Wannier-Stark
, and Tight-Binding
).
For each basis set, the folder contains:
Wavefunctions.dat
CarrierDistribution_Energy.dat
shows the energy-resolved populations in each state. DensityMatrix.txt
and DensityMatrix_elements.txt
display the density matrix in a text file.DensityMatrix_Real.mat
displays the real part of the density matrix. The labeling is made accordingly to the one of the wavefunctions Ψi(z), so that the matrix element (i,j) corresponds to the real part of ⟨Ψi|ρ|Ψj⟩, where ρ is the density matrix. Note that the diagonal element (i,i) is equal to the population of the level Ψi. DensityMatrix_Imaginary.mat
displays the imaginary part of the density matrix.Dipoles.mat
gives the dipole matrix elements (see above for definition)EffectiveMasses.dat
gives the position and energy-dependent effective massPopulations.text
indicates the population (i.e. the probability of occupation) in each level Ψi (normalized to 1 for one period of the structure).SpectralFunctions.dat
shows the diagonal part of the spectral function, i.e. the energy-resolved density of states (DOS)SpontaneousemissionRate.txt
gives for each pair of initial and final state the scattering rate (s^-1) of spontaneous photon emission.SpontaneousemissionRate.mat
gives the same information but in matrix form: the element (i,j) gives the scattering rate (s^-1) of spontaneous photon emission between the initial state i and final state j. Subband_KineticEnergy.txt
contains the averaged kinetic energy for each level/subband i. Its calculation is given by:⟨Ei⟩=∑k pi,k E∥(k)∑k pi,k, where E∥(k) is the in-plane kinetic energy.
Subband_Temperature.txt
gives the effective temperature of each level/subband i, according to Teffi=⟨Ei⟩/ kb
The folder 2D_plots\
contains 2D color maps as a function of position [nm] (horizontal axis) and energy [eV] (vertical axis). Note that these 2D plots show 2 QCL periods although only 1 period is simulated.
DOS_energy_resolved.vtr
/ *.plt
/ *.fld
CarrierDensity_energy_resolved.vtr
/ *.plt
/ *.fld
CurrentDensity_energy_resolved.vtr
/ *.plt
/ *.fld
For different extensions of 2D outputs, please also see advanced settings in the input file.
The folder Gain\
contains one- and two-dimensional plots of the intensity gain simulated. A negative value of gain corresponds to absorption.
2D color maps show the gain G(z,Eph) [cm-1 nm-1], where the horizontal axis is position z [nm] and the vertical axis is photon energy Eph in units of either energy [meV] or frequency [THz]. Note that the units of gain in the nextnano.MSB code are [eV-1 cm-1]. Also note that these 2D plots show 2 QCL periods although only 1 period is simulated.
Energy-Resolved_Gain_Simple-Approximation.fld
/ *.coord
/ *.dat
Gain_vs_Position_and_Energy_SelfConsistent.vtr
Gain_vs_Position_and_Frequency_SelfConsistent.vtr
1D plots show the gain G(Eph) [cm-1] against photon energy [meV], frequency [THz], and wavelength [micron].
Gain_Simple-Approximation.dat
Intensity gain obtained without the self-consistent calculation. GainSemiClassical_vs_Energy.dat
GainSemiClassical_vs_Frequency.dat
GainSemiClassical_vs_Wavelength.dat
Gain_SelfConsistent_vs_Energy.dat
Gain_SelfConsistent_vs_Frequency.dat
Gain_SelfConsistent_vs_Wavelength.dat
Note that the gain output is only done for the voltages specified in the input file.
<!-- Calculate gain only between the following values of potential drop per period in order to save CPU time --> <Vmin unit="mV"> 160 </Vmin> <Vmax unit="mV"> 400 </Vmax>
The folder GreenFunctions/
contains information on the Green's functions.
The electron density n(x,Ex) is related to the lesser Green's function G< (“G lesser”): n(x,Ex)=−i2πG(x,x′=x,Ex)
GreenLesser_All.dat
GreenLesser_Z.dat
The local density of states ρ(x,Ex) is related to the spectral function A: ρ(x,Ex)=12πA(x,x′=x,Ex) A is defined as A=i(GR−GR†)=−2Im(GR). GR is the retarded Green's function.
GreenSpectral_All.dat
<Emin_shift unit="meV">
can be increased (by 200 meV) to reduce the calculation time. Essentially, the energy range of the Green's functions is altered by adjusting <Emin_shift unit=meV>
and <Emax_shift unit=meV>
.GreenSpectral_Z.dat
The folder DensityMatrix/
contains the density matrix ρ which is a complex quantity and it is dimensionless.
The trace of the density matrix equals 1.
In our case, the trace is 1 if we sum over one period.
The state labels (state i, period j) are specified in the complex density matrix.
ρ(i,j)=ρ(state,period)
DensityMatrix_complex.mat
DensityMatrix_RealPart_AbsoluteValue.mat
DensityMatrix_ImaginaryPart_AbsoluteValue.mat
If you sweep voltage, the following files are generated.
Energy_WannierStarkStates.dat
Energy_TightBinding.dat
Gain_vs_Voltage.dat
and Gain_vs_EField.dat
Current_vs_Voltage.dat
and Current_vs_EField.dat
Current-Density.dat
.
a combined temperature-voltage sweep can be done using the keyword Temperature-Voltage
in the field <SweepType>
of <SweepParameters>
(see the example of code below). In this case, the simulation can be parallelized. <Threads>
defines the number of parallel threads. Its optimal value should be the number of CPU cores available (if the available memory is sufficient). Within each parallel temperature sweep, a serial voltage sweep is performed.
<SweepParameters> <SweepType>Temperature-Voltage</SweepType> <MinV> 50</MinV> <MaxV> 60</MaxV> <DeltaV> 2</DeltaV> <MinT> 25</MinT> <MaxT> 300</MaxT> <DeltaT> 25</DeltaT> <Threads>12</Threads> <!-- Parallelization for Temperature-Voltage sweep --> </SweepParameters>
Note that for such voltage-temperature sweep, <Maximum_Number_of_Threads>
in <Simulation_Parameter>
should be set to 1
. (A combined parallelization will result in lower performances.)
<Simulation_Parameter> ... <Maximum_Number_of_Threads>1</Maximum_Number_of_Threads> </Simulation_Parameter>
At the end of the simulation, current and gain maps can be displayed.
Gain_map.fld
gives the maximum gain at each (voltage,temperature) point.
Max_Gain_frequency.fld
gives the map of the corresponding photon energy for which the gain is maximum.