The package nnShortcuts is an object-oriented wrapper around nextnanopy. It contains shortcut functions and simplifies the pre- and post-processing of nextnano simulations.
A big advantage of nnShortcuts.common is that you get a DataFile without knowing the exact output file name. You can narrow down the output data by specifying a list of keywords and exclude keywords.
The package boostsweep defines the SweepManager class. It
- facilitates preparing, running and post-processing nextnano sweep simulations by bridging the simulation inputs and outputs. This is in contrast to nextnanopy, which does not associate simulation input and output.
- creates a copy of your input file with a shorter name if the original filename is too long, so that the output path length does not exceed the system limit. The method
SweepManager.execute_sweep()will bring back the original filename to the output folders after the simulations have finished.
After 'git pull'ing this repo, the shortcut functions are available if you import respective modules:
# nextnano++ shortcut functions
from nnShortcuts.nnp_shortcuts import nnpShortcuts
# nextnano3 shortcut functions
from nnShortcuts.nn3_shortcuts import nn3Shortcuts
# nextnano.NEGF shortcut functions
from nnShortcuts.NEGF_shortcuts import NEGFShortcutsA SweepManager object allows you sweep execution and its post-processing.
from boostsweep.sweep_manager import SweepManager
manager = SweepManager(<sweep ranges>, <nextnanopy.InputFile object>, <kwargs options>)
manager.execute_sweep(parallel_limit=<number of CPUs available>)
manager.plot_transition_energies(<x axis>, <y axis>, <kwargs options>)
...from nnShortcuts.nextnano_colors import NextnanoColor
cmap1 = NextnanoColor.cmap['divergent_dark']
cmap2 = NextnanoColor.cmap['divergent_bright']
cmap3 = NextnanoColor.cmap['linear']
# Use one of these for e.g. matplotlib's colormap parameter.See example usages in the SweepManager class.
Please refer to the examples in examples/.
The following example in the nextnanopy repository also uses this wrapper to perform a voltage sweep and postprocessing:
nextnanopy/templates/InterbandTunneling_Duboz2019_doc.ipynb(documentation)InterbandTunneling_Duboz2019_formulation.pdf(formulation)InterbandTunneling_Duboz2019_nnp.py(Python script)
Any idea of improvement, extension and bug fix is welcome. If you already know the solution, please create a branch and submit a pull request. Else, feel free to file an issue.


