4.8. Release Notes¶
Upcoming changes¶
Bug fixes
- Syntax changes
Gain{ Semiclassic }
has been renamed to FermiGoldenRule{ } to avoid terminology conflict with other tools.
- Improvements
More information about convergence is output when Equilibrium{ } is present or StartFromEquilibrium is set to
yes
in the input file. Data for individual biases are stored under(Bias)mV/Convergence
.
- New features
Prints software usage when the executable is called with the option
--help
.
2024-09-16¶
- Bug fixes
Fixed the 2D output for NEGF gain (position-energy resolved) + gnuplot script
Fixed program crash when photo-assisted transport is requested for 1,2,3-band models
Fixed energy-grid spacing for the output when EnergyResolvedPlotsMinimumEnergyGridSpacing is not a multiple of EnergyGridSpacing.
Fixed bias inconsistency that used to happen when SweepType is
Single
and Bias{ } is not specified.Fixed output for the time to travel through one period
- Syntax changes
Introduced InPlaneKResolvedData.
Introduced the group
Gain{ Semiclassic }
for the setting for semiclassical gain (Fermi’s golden rule). Updated quasi-equilibrium ICL example accordingly.
- Improvements
Hybrid (equilibrium - NEGF - equilibrium) simulations: internal (piezo and pyro) polarization are removed beyond the offset values for the contact (assumption of total screening within the contacts)
Hybrid (equilibrium - NEGF - equilibrium) simulations: output of combined 2D plots + gnuplot scripts for generating gif animations have been added
Reading correlation files is much faster.
Raise warning if the energy range may be too narrow.
Aligned capitalization and brackets in axis labels.
Gauge can be specified by strings
Lorentz
andCoulomb
in input files.File input/output errors are now written to console more explicitly.
Improved automatic setting of the energy range for the 8-band case.
Made elastic scattering calculation faster.
Skip LO phonon and alloy scattering calculation if their strengths are set to zero.
- New features
Option for renormalization of Coulomb interaction using the command InterfacesCutOff.
2024-07-25¶
- Syntax changes
The keyword
Scattering{ TuneLOPhononScattering = yes/no }
has been removed. The strength of LO phonon scattering is solely determined byScattering{ LOPhononCouplingStrength = <value> }
. If it is absent in the input file, the default value 1.0 is assumed.The keyword
Scattering{ TuneElectElectScatteringStrength = yes/no }
has been removed. The strength of electron-electron scattering is solely determined byScattering{ ElectElectScatteringStrength = <value> }
. If it is absent in the input file, the default value 1.0 is assumed.
- Improvements
The axial energy cut-off can be specified also by
NumberOfConductionSubbands
and/orNumberOfValenceSubbands
. This enables consistent energy states selection while modifying the layer thicknesses and materials. The previous input parametersEnergyRangeAxial
andEnergyRangeAxialValence
will be supported in parallel.
2024-06-21¶
- Bug fixes
Fixed output of energy spectra in
Init/EnergyEigenstatesFull0V/kResolved
which are output ifOutput{ PlotDispersion = 2 }
.
- Improvements
Aligned output of effective masses and 8-band k.p parameters in Init folder.
Some simulation parameters in ICL sample files have been improved.
EnergyRangeLateral
for 8-band model now works consistently to 3-band: it is compared to the max of the energy ranges of the ground states in the conduction and valence bands.Added an option
LateralDiscretization{ OptimizeSampling = yes/no }
. It performs a sampling of the Bessel (i.e. in-plane) modes so that the k|| points are approximately equidistant. The resolution can be tuned byLateralDiscretization{ Value }
.
2024-05-23¶
- New features
8-band k.p solver is now available by the input file keyword
Materials{ NumberOfBands = 8 }
. Its use for the NEGF calculation is currently limited to equilibrium or quasi-equilibrium cases. It can be used for semiclassical gain calculation. Please check out the interband cascade laser example in the example folder.
- Bug fixes
When no bias is specified, assume 0V instead of terminating the program.
Fixed the zincblende bowing parameters for valence band offset. Now ternaries give consistent band edges to nextnano++.
- Improvements
When the program is called with –version command line option, it prints the version number and exit.
Semiclassical gain calculation can be activated either by setting a linewidth through
Gain{ Linewidth }
. To skip NEGF gain and calculate only with the semiclasscial method, the user can specifyGain{ GainMethod = 'semiclassic' }
. This method calculates Fermi’s golden rule with the reduced space dipole matrix elements for the electric-field polarization along growth.Semiclassical gain calculation now takes into account the in-plane k dependence of the dipole matrix elements when the in-plane nonparabolicity is activated.
Semiclassical gain calculation supports electric-field polarization along in-plane directions if the 8-band model is used (
Gain{ Polarization{ Re = [1,0,0] } }
). Complex polarization vector (e.g. circular polarization) is supported.Semiclassical gain calculation now outputs the spectra for individual transitions as well.
If the in-plane nonparabolicity is considered (either 3 or 8 bands), and if
Output{ PlotDispersion = 2 }
, the in-plane k-dependent dipole matrix elements for the TM polarization are output.Ubuntu executable now uses Intel MKL with parallelism when multiple threads are available.
Added user warnings regarding the lateral energy (k space) resolution.
Reorganized the in-plane k-dependent output of energy eigenstates.
Clarified the file names of the 2D colormap outputs.
Gnuplot files of 2D colormap outputs are generated when
Output{ GnuplotFormat = yes }
(default).Voltage-sweep simulations generate GIF animations of carrier density, current density, density of states, emitted power, and gain spectrum. Installation of Gnuplot is needed to generate the .gif animations from the .plt files, see http://www.gnuplot.info/ for more information.
Bandedge profiles without strain are also included in the output file Input/BandEdges.dat when strain is considered.
- Syntax changes
Updated the input file keyword
TuneAlloyScattering
toAlloyScatteringStrength
in the example files.
2024-03-14¶
- Bug fixes
The hybrid method has been fixed.
Fixed bias of band edge profile output when Poisson’s equation is not solved
- Improvements
Phonon damping of TO phonons has been added to the database (“PhononDamping”) and is considered in the permittivity calculation
Permittivity output has been added
Material_Database_Vurgaftman.negf has been added. It overwrites the nextnano.NEGF default values by the ones of Vurgaftman et al., J. Appl. Phys. (2001).
Possibility of linearly graded alloy
2023-12-01¶
- Bug fixes
(database) fixed temperature-expansion coefficient of lattice constants, although it is not used in the code yet
(database) Renamed from Material_DatabaseCpp to Material_Database. The executable uses ‘Material_Database.xml’ if not specified by the command line parameter –material-database
EnergyReference command (optional in SimulationParameter section) has been fixed. Also the unit has been changed to eV for consistency.
Fixed output of levels
Fixed output of valence band edges
Improvements
Equilibrium calculation. If no contacts nor Fermi energy specified, overall charge neutrality is assumed for the all device.
Improved the console output of multithreading info
Print error message to console if LAPACK eigensolver has failed
User warnings are now listed at the end of simulation as well as saved to the file Warnings.log in the output directory for easier check if the simulation ran as intended.
- Syntax changes
the in-plane non-parabolicity is activated by default (command InPlaneNonParabolicity is optional, and set to yes by default)
The folder WannierStark has been renamed to EnergyEigenstates as the code applies for both periodic (e.g. QCL, QCD) and non-periodic (e.g. QWIP, RTD) structures
2023-05-25¶
- Bug fixes
gain calculation is working
Bug fixed when nLateralPeriodsForBandStructure > CoherenceLengthInPeriods
Error fixed in strain calculation
bessjzero and Correlation data files are now found even if the current working directory is not in the executable folder.
If the syntax definition files (syntax_database.negf and syntax_input.negf) are not found in the executable directory, search for them in the current working directory.
(database) Fixed Varshni parameter of AlSb
- Improvements
Faster self-energy calculation
Support the nn++/nn3 command line arguments —inputfile, —outputdirectory, —database, and —license.
More strict check of command line parameters –> more meaningful error message
If .negf format is used, the parsed results of the input and/or database file will be output in the output folder, as is the case in nextnano++.
More robust file loading schemes for bessjzero, Correlation and syntax definition files
Improved the keyword updates in MSB input files
(database) added references and TiberCAD default values.
THz QCL sample files with gain calculation added
2023-02-22¶
This release includes the following new features compared to the C# version:
Start from equilibrium option. The NEGF calculation starts by an equilibrium calculation of the Green’s functions, which is then then used as an initial condition for the non-equilibrium calculation of the Green’s functions.
<SimulationParameter>
...
<StartFromEquilibrium> yes </StartFromEquilibrium>
...
</SimulationParameter>
Equilibrium calculation without scattering calculation. The following equilibrium section has to be specified, including a broadening parameter.
<Equilibrium>
...
<Broadening unit="meV">20.0</Broadening>
...
</Equilibrium>
Hybrid equilibrium / non-equilibrium equilibrium simulation. The hybrid section has to be specified, as well as the section
<Hybrid>
<Broadening unit="meV">10.0</Broadening>
<SeparationLeft unit="nm">20.0</SeparationLeft>
<SeparationRight unit="nm">30.0</SeparationRight>
<OffsetContact unit="nm">5.0</OffsetContact>
</Hybrid>
Added quantum cascade detector (QCD) examples.
The nextnano++-style format is available for the input and database files. The new format with extension ‘negf’ features:
Syntax validation before the simulation - the parser checks the syntactical correctness as well as the logic and, if invalid, prints an error message in the log specifying what exactly is wrong in your file.
Variables starting with
$
sign can be used not only in the input but also database files. The new default database Material_DatabaseCpp.negf contains a switch$NEGF
/$MSB
/$nnp
to use the default parameters of nextnano.NEGF, nextnano.MSB, and nextnano++, respectively. Naturally, the new format will look much familiar if you have experience with nextnano++.- The nextnanomat feature Tools > Convert .xml Input File to .negf Input File can convert your xml input files to the new format. On Linux, you can run the executable syntax_converter included in the package. After conversion, please note that
The section
Variables
has been deprecated. Please add manually your variables in the nextnano++ format, i.e., define the variables at the beginning of your input file as$variable = value
(See Input Syntax).Most of the XML comments
<!-- -->
are not retained in the conversion. If necessary, please recover them manually. Comments start with the letter#
.Within the new format, only the new keywords are supported. They are replaced automatically by the conversion.
IMPORTANT: Do not convert the XML database to the new format! The new database Material_DatabaseCpp.negf is not backward-compatible and contains extra parameters.