Release notes of nextnano.NEGF¶
2023-05-25 (C++ version)¶
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 (first release of C++ version)¶
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 / nonequilibrium 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 Syntax definition).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.
2022-06-13¶
Units in LO-phonon scattering rates have been fixed.
Now the license nnNEGF.lic is supported.
2022-04-29¶
The in-plane nonparabolicity model introduced in the previous update has been fixed.
<Materials>
...
<InPlaneNonParabolicity>yes</InPlaneNonParabolicity>
...
</Materials>
The LO-phonon scattering rate output has been fixed.
2022-03-14¶
Linear alloy grading is now possible:
<Layer> <!-- all the material parameters will be linearily interpolated between the <Material1> and the <Material2> -->
<Material1>mat1</Material1>
<Material2>mat2</Material2>
<Thickness unit="nm">5.0</Thickness>
</Layer>
2. The in-plane nonparabolicity for multiband models can be activated with the command
<InPlaneNonParabolicity>yes</InPlaneNonParabolicity>
inside the block <Materials>...<Materials>
.
In the 2- and 3-band models, nonparabolicity coefficient can be used as in input material parameter. If specified, it will be used to overwrite the k.p parameters.
<Material>
<Name>In(x)Ga(1-x)As</Name>
<Alloy_Composition>0.53</Alloy_Composition>
<Alias>well</Alias>
<Effective_mass_from_kp_parameters>no</Effective_mass_from_kp_parameters>
<Overwrite>
<NonParabolicity Unit="cm^2">1.5e-14</NonParabolicity>
</Overwrite>
</Material>
4. The individual scattering rates of LO-phonon, alloy disorder and interface roughness can be output.