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/msaeedforoughi/nano_negf-framework"
  2. Bug Tracker = "https://github.com/msaeedforoughi/nano_negf-framework/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.3.tar.gz (5.8 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.3-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nano_negf-0.1.3.tar.gz
  • Upload date:
  • Size: 5.8 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.3.tar.gz
Algorithm Hash digest
SHA256 4d04d5b1ef1f2b1b0bf29f0614858e4ee19bfa0210a60ebd0aeeaae0bb94d41c
MD5 14ff39450adf2e80207546acd966591f
BLAKE2b-256 8c570d31d0cbcea15ad53d21f9487060b0b4131d6495327586efd124104e4c9a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nano_negf-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 64f116c28706606480e45ed02285a43591ba86ae8ae887061eb9d2bd6699d5cc
MD5 005ea3e50af036737875e03c5a87f244
BLAKE2b-256 a172e1f911d93e513fe72ddd35b5429d204b3796fbe68a60949e98134f010df9

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