Release notes of nextnano.NEGF

2023-05-25 (C++ version)

  1. 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

  1. 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:

  1. 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.

    <StartFromEquilibrium> yes </StartFromEquilibrium>
  1. Equilibrium calculation without scattering calculation. The following equilibrium section has to be specified, including a broadening parameter.

    <Broadening unit="meV">20.0</Broadening>
  1. Hybrid equilibrium / non-equilibrium equilibrium simulation. The hybrid section has to be specified, as well as the section

    <Broadening unit="meV">10.0</Broadening>
            <SeparationLeft unit="nm">20.0</SeparationLeft>
            <SeparationRight unit="nm">30.0</SeparationRight>
            <OffsetContact unit="nm">5.0</OffsetContact>
  1. Added quantum cascade detector (QCD) examples.

  2. 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.


  1. Units in LO-phonon scattering rates have been fixed.

  2. Now the license nnNEGF.lic is supported.


  1. The in-plane nonparabolicity model introduced in the previous update has been fixed.

  1. The LO-phonon scattering rate output has been fixed.


  1. Linear alloy grading is now possible:

<Layer> <!-- all the material parameters will be linearily interpolated between the <Material1> and the <Material2> -->
    <Thickness unit="nm">5.0</Thickness>

2. The in-plane nonparabolicity for multiband models can be activated with the command <InPlaneNonParabolicity>yes</InPlaneNonParabolicity> inside the block <Materials>...<Materials>.

  1. 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.

        <NonParabolicity Unit="cm^2">1.5e-14</NonParabolicity>

4. The individual scattering rates of LO-phonon, alloy disorder and interface roughness can be output.