Skip to main content

1D NEGF-Poisson nanowire solver package

Project description

Nano NEGF

A Python framework for the self-consistent solution of 1D Non-Equilibrium Green's Function (NEGF) and Poisson equations for nanowire structures.

Features

  • 1D Poisson solver with Neumann Boundary Conditions.

  • Calculation of electron density and tunneling current using the NEGF formalism (Recursive Green's Function algorithm).

  • Self-consistent loop for the convergence of electrostatic potential and charge density.

  • Adjustable physical parameters including effective mass ($m^*$), relative permittivity ($\epsilon_r$), Fermi levels of the leads ($\mu_L$ and $\mu_R$), and temperature ($T$).

  • Built-in visualization for energy band diagrams and carrier density profiles.

Dependencies

This package requires Python 3.11 or newer and the following libraries:

  • numpy

  • matplotlib

Installation

To install the package, navigate to the root directory of the project (where pyproject.toml is located) in your terminal and run:

pip  install  -e  .

Note: The -e (editable) flag allows you to modify the source code without needing to reinstall the package.

Project Structure

nano_negf/

├── pyproject.toml # Package build configuration

├── nano_negf/ # Main source code

│ ├── __init__.py

│ ├── constants.py # Physical constants

│ ├── physics.py # Physics utilities (energy grids, Fermi functions, self-energy)

│ ├── poisson.py # Matrix-based Poisson solver

│ ├── negf.py # RGF algorithm, density, and current calculations

│ └── solver.py # Main SelfConsistentSolver class

└── example.py # Example usage script

Quick Start (Usage)

Once installed, you can import and use the SelfConsistentSolver in your scripts or go to the example file and run the code. Here is a basic example:

from nano_negf import SelfConsistentSolver

  

# 1. Initialize the solver with desired parameters

sim = SelfConsistentSolver(

N=100, # Number of grid points

dx=1e-9, # Grid spacing (m)

m_eff_ratio=0.25, # Electron effective mass ratio

mu_L=0.1, # Left lead chemical potential (eV)

mu_R=0.0, # Right lead chemical potential (eV)

Nd=1e24 # Doping density (1/m^3)

)

  

# 2. Run the self-consistent loop

sim.run(max_iter=800, mix=0.1, tol=1e-4)

  

# 3. Plot the results (Band diagram and Carrier density)

sim.plot_results()

Expected Output

this package will generate two types of output:

  1. Terminal Output: Current in each iteration.
  2. Graphical Output: Energy Band Diagram and Carrier Density

Energy Band Diagram and Carrier Density

Project URLs

  1. Homepage = "https://github.com/yourusername/nano_negf"
  2. Bug Tracker = "https://github.com/yourusername/nano_negf/issues"

License

Copyright (c) 2026 Mohammad Saeed Foroughi

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

nano_negf-0.1.2.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

nano_negf-0.1.2-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file nano_negf-0.1.2.tar.gz.

File metadata

  • Download URL: nano_negf-0.1.2.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for nano_negf-0.1.2.tar.gz
Algorithm Hash digest
SHA256 356bc586056f220be478477e8239ba2ccd5c80d94a9174a973806d6fb4b9e555
MD5 dd2d7e965b12611762c8fda271cc91ad
BLAKE2b-256 4754e57cb9760e3032e45319c513720fe69d0e9f23a47d307fe11af58fc5bebf

See more details on using hashes here.

File details

Details for the file nano_negf-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: nano_negf-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for nano_negf-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b4516b7b9f7c9e3e422b9e05690e85ce8fbfa808fbf0eec9ad5bb8657e85bbd8
MD5 bcb3464fa4c45f8ce349476dee20ea4a
BLAKE2b-256 0358f23058764850f1b20d2e5449e2c71f04a3365e423f20352660a2405da664

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