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()
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nano_negf-0.1.1.tar.gz.
File metadata
- Download URL: nano_negf-0.1.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f772ed0a945344be22cbd50b455d24d05530fbbf06ed39b95a8da3881bb6f905
|
|
| MD5 |
7bb9eef1fb099d493a9784e68feb362e
|
|
| BLAKE2b-256 |
36854ac2757823f34d71238c043a3873de102f679dba8b2653731e360b967fe1
|
File details
Details for the file nano_negf-0.1.1-py3-none-any.whl.
File metadata
- Download URL: nano_negf-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed04c91a2a5634ef6111cc346ff1f3fa6eb765bd75e9826bfd1f785aae897c8a
|
|
| MD5 |
382c11b03a894ef2097287c015998aeb
|
|
| BLAKE2b-256 |
80c2c5dc88da6602f923367084a1bff8a534edf214cee3be048cd09e9a43e917
|