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:
- Terminal Output: Current in each iteration.
- Graphical Output: Energy Band Diagram and Carrier Density
Project URLs
- Homepage = "https://github.com/msaeedforoughi/nano_negf-framework"
- Bug Tracker = "https://github.com/msaeedforoughi/nano_negf-framework/issues"
License
Copyright (c) 2026 Mohammad Saeed Foroughi
Metadata
Release files for nano-negf 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nano_negf-0.1.3.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nano_negf-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.0 kB
Release files / nano_negf-0.1.3.tar.gz
| Download URL | nano_negf-0.1.3.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4d04d5b1ef1f2b1b0bf29f0614858e4ee19bfa0210a60ebd0aeeaae0bb94d41c
|
|
BLAKE2b-256 checksum How to use checksums |
8c570d31d0cbcea15ad53d21f9487060b0b4131d6495327586efd124104e4c9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / nano_negf-0.1.3-py3-none-any.whl
| Download URL | nano_negf-0.1.3-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
64f116c28706606480e45ed02285a43591ba86ae8ae887061eb9d2bd6699d5cc
|
|
BLAKE2b-256 checksum How to use checksums |
a172e1f911d93e513fe72ddd35b5429d204b3796fbe68a60949e98134f010df9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|