# Release notes of nextnano.NEGF¶

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

<SimulationParameter>
...
<StartFromEquilibrium> yes </StartFromEquilibrium>
...
</SimulationParameter>

1. Equilibrium calculation without scattering calculation. The following equilibrium section has to be specified, including a broadening parameter.

<Equilibrium>
...
...
</Equilibrium>

1. Hybrid equilibrium / nonequilibrium equilibrium simulation. The hybrid section has to be specified, as well as the section

<Hybrid>
<SeparationLeft unit="nm">20.0</SeparationLeft>
<SeparationRight unit="nm">30.0</SeparationRight>
<OffsetContact unit="nm">5.0</OffsetContact>
</Hybrid>


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 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¶

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

2. Now the license nnNEGF.lic is supported.

## 2022-04-29¶

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

<Materials>
...
<InPlaneNonParabolicity>yes</InPlaneNonParabolicity>
...
</Materials>

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

## 2022-03-14¶

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

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.

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