Skip to main content

Useful tools to interface the nextnano software (https://www.nextnano.com/)

Project description

NEXTNANOPY README

BSD-3-Clause Downloads

nextnanopy is a Python module to interface the nextnano software. This package includes features for:

  • Output files: user-friendly method to load the datafiles which allows easy and flexible post-processing.
  • Input files: load input files, set variables, save by finding unused name, execute the file, write input files, etc.
  • Configuration: setup default nextnano configuration (path to executables, databases, licenses, etc).
  • Import from GDS files: load polygons from GDS files and user-friendly methods to generate raw text of nextnano shapes (beta).

Note: the license is not compulsory for the general use of nextnanopy, unless you would like to execute input files via Python.

Future of nextnanopy

Currently, nextnanopy has basic features for nextnano products nextnano++, nextnano3, nextnano.NEGF and nextnano/MSB. The goal is to extend the functionalities to nextnano.MSB in future releases.

In future releases, we would like to implement:

  • Common post-processing methods: like loading and plotting together bandedges, eigenenergies and eigenlevels, colormap of potential landscape with GDS polygons on top, etc.
  • Support for any nextnano.NEGF datafiles: in the current release, it is only implemented the loading of .dat files (most of them).
  • Support for any nextnano.MSB datafiles: not loading routines are implemented yet.
  • User-friendly input file creation/modification: the idea is to load any input file and it would detect all the different blocks so the user can easily modify parameters like 'boundary conditions' or 'region material'. Similarly, it should be user-friendly to create any input file from scratch via Python.
  • Feedback loops: a routine that allows the user to optimize any figure of merit of a device with a given set of input variables. The user can set a post-processing routine to get the figure of merit from the simulated data and later, a new set of input variables will be generated and executed. This feedback loop will repeat until a set of conditions are satisfied.
  • Improve documentation: we will add an extensive documentation in the website as well as in the source code.
  • Guidelines for contributors: set of rules if you want to contribute to the project.

Installation

Requirements

You need a working python 3.x installation to be able to use nextnanopy. We highly recommend installing Anaconda, which takes care of installing Python and managing packages. Make sure to download the latest version with python 3.8.

Dependencies:

  • Python (tested with 3.8)
  • Numpy
  • Gdspy (optional: to import gds files)
  • Shapely (optional: to manipulate polygons from gds files)
  • Matplotlib (optional: to visualize imported polygons)
  • Cylcer (optional: to visualize imported polygons)

Linux / OS X / Windows

Option 1: Using pip

Simply open anaconda prompt and type:

pip install nextnanopy

Option 2: from the source code

  1. Download the source from github
  2. Open anaconda prompt
  3. Go to the directory of the nextnanopy project
  4. Build/install by typing:
python setup.py install

For more information, please, see the documents in docs folder.

Documentation

Currently, the complete documentation is not available yet. However, there are few examples located in docs/examples that will help you to start playing with nextnanopy.

Support

Do you want to help nextnanopy? Please, send an email to python@nextnano.com.

History of changes

Upcoming

  • Detailed documentation

Version 0.1.6 (Dec 2nd, 2020)

  • Feature: [DataFile] access with index to coordinates and to variables
df = nextnanopy.DataFile(...)
df['x'] # same as df.coords['x']
df['Gamma'] # same as df.variables['Gamma']
  • Feature: [DataFile] is loopable as well as .coords and .variables
  • Feature: [InputFile] access with index to input variables
df = nextnanopy.InputFile(...)
df['xmax'] # same as df.variables['xmax']
  • Feature: [InputFile] is loopable as well as .coords and .variables
  • Feature: [InputFile] extra attributes
df = nextnanopy.InputFile(...)
df.folder_output # returns the output folder if it was executed, otherwise it raises an error
df.filename # settable
df.filename_only # settable
df.folder_input # settable
  • Feature: user-friendly information for DataFile, InputFile, Variable, Coord and InputVariable.
  • Bug fix: .vtr dataset reshape method

Version 0.1.5 (Dec 2nd, 2020)

  • Feature: support .vtr data files
  • Feature: if unit is not found, default value is 'a.u'
  • Bug fix: better methods to find correctly name and unit from data file headers

Version 0.1.4 (Nov 29th, 2020)

  • Feature: create an empty input file and set the raw text with the attribute text.

Version 0.1.3 (Nov 28th, 2020)

  • Bug fix: find unused name when save input files
  • Feature: default label for Variables and Coords. The attribute label returns "name (unit)".

Version 0.1.2 (Nov 20th, 2020)

  • Bug fix: Raw text of input variables without comment was generated incorrectly

Version 0.1.1 (Nov 18th, 2020)

  • Bug fix: find the home path for OSX and Linux.

Version 0.1.0 (Nov 13th, 2020)

  • Initial release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nextnanopy-0.1.6.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nextnanopy-0.1.6-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

Details for the file nextnanopy-0.1.6.tar.gz.

File metadata

  • Download URL: nextnanopy-0.1.6.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3

File hashes

Hashes for nextnanopy-0.1.6.tar.gz
Algorithm Hash digest
SHA256 981ebd562a8bd3830e02343c842a610f0df3da5452ce0c578efc75bb8ccb7387
MD5 805c13723826e8b27b983110a9324fdd
BLAKE2b-256 626705c207ef47951660617bc8b35e40f074536bb60f34ea37626e69344cb49d

See more details on using hashes here.

File details

Details for the file nextnanopy-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: nextnanopy-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3

File hashes

Hashes for nextnanopy-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8139eb61b8c60c50c26519774f45d600e756f234d1a9b6a13a1a2fa06a1d50d2
MD5 a8f0344d4bf2ea094ea758fb4bee16e5
BLAKE2b-256 e876c502ca5ffa8e3277af4e86b8bfd3545b80f5e22c14863ccff4a3328aab1d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page