4. FAQ - Error messages and handling

4.1. Where to find simulation LOG file

The simulation log file is a file with the same name as the input file and the extension *.log. It is located in the output folder of the simulation. It is necessary for the support team to debug issues with the simulation, thus it should always be attached to a support request. Please also include additional debug information in case the log file shall be used for support, refer to How to add additional debug information to the LOG file.

4.2. How to add additional debug information to the LOG file

Within the nextnanomat options Options: Expert settings some flags can be found which add additional information to the log file. Please check the following flags and re-run the simulation so the log file will include this information:

  1. ‘Include simulation time in log file’

  2. ‘Include memory usage in log file (units: MB)’

  3. ‘Include additional debug information in log file’

4.3. ERROR when loading input file “File format is not valid”

A beta feature in a recent Windows 10 version (1803) causes the following error message when starting nextnanomat:


Figure 4.3.5 Input file format exception.

You can disable this feature in the Region’s settings of Windows (screenshot see Figure 4.3.6).

  1. Select Additional date, time, & regional setting

  2. Then Change date, time, or number formats

  3. Go the the Administrative Tab

  4. Click Change system locale...

  5. And finally you can un-select that Beta-Feature.


Figure 4.3.6 How to change Windows 10 region settings.

4.4. Error while starting simulation (“The specified executable is not a valid application for this OS platform.”)

If you get this error, you are executing an executable that is not suited for this operating system. There are two possible reasons:

  • You are executing a 64-bit version on a 32-bit operating system. Solution: Specify the location of the 32-bit nextnano++ or nextnano³ executables. Tools ==> Options… ==> Simulation ==> nextnano executable file ==> 32bit.exe

  • You are executing the Intel or Microsoft 64-bit executable that has not been compiled for your rather old CPU. Our 64-bit executables use more advanced CPU instructions compared to our 32-bit executables. Solution: Use the 32-bit nextnano++ executable that has been compiled with the Microsoft compiler. Tools ==> Options… ==> Simulation ==> nextnano++ executable file ==> nextnano++_Microsoft_32bit.exe

Sometimes the displayed error message does not contain any content apart from ERROR.

You can share information about your CPU with us using the menu Help ==> Generate System Snapshot for Support and then send us the generated file nextnano_SystemSnapshot.txt.

4.5. No Dirichlet points for Fermi levels found


I get the error message:

ERROR: No dirichlet points for Fermi levels were found!
Terminating program !!

Comment: Meanwhile, this error message is different. Once an update has been released, change the FAQ here.


The program does not know at which energy the Fermi level should be located. A solution is this:

    binary { name = "GaAs"  }
    contact{ name = "dummy" }
    fermi{ name = "dummy" bias = 0.0 }
    # only needed to define reference energy

This defines the Fermi level to be at 0 [eV] in the whole device.

4.6. Quantum-Current-Poisson fails to converge


My Quantum-Current-Poisson calculation fails to converge. How can I avoid this problem?


The most common errors are the following:

  1. The maximum number of iterations has been chosen too small (run{} ==> outer_iteration{} ==> iterations) and the calculation just needs some more iterations.

  2. The number of electron or hole eigenstates has been chosen too small (e.g. quantum{} ==> region{} ==> Gamma{} ==> num_ev).

    Check the occupations in the files wf_spectrum_"name quantum region"_"name quantum model".dat. If the occupation does not drop from the ground state to the highest excited state by several orders of magnitude, you need to calculate more states (= more possibilities to fill in charges).

  3. The underrelaxation parameter has been chosen too large (run{} ==> outer_iteration{} ==> alpha_current).

    Check whether the solution oscillates (residuals do not drop continuously but increase in some iterations). Try to decrease the underrelaxation parameter in order to damp the oscillations.

  4. The minimum charge density in the current equation has been chosen too small (currents{} ==> minimum_density).

    Try to increase the minimum charge density to improve conditioning of the current equation. In fact, the current equation is solved with the charge density = max( real density, minimum_density).