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()

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.1.tar.gz (5.7 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.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

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

Hashes for nano_negf-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f772ed0a945344be22cbd50b455d24d05530fbbf06ed39b95a8da3881bb6f905
MD5 7bb9eef1fb099d493a9784e68feb362e
BLAKE2b-256 36854ac2757823f34d71238c043a3873de102f679dba8b2653731e360b967fe1

See more details on using hashes here.

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

Hashes for nano_negf-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed04c91a2a5634ef6111cc346ff1f3fa6eb765bd75e9826bfd1f785aae897c8a
MD5 382c11b03a894ef2097287c015998aeb
BLAKE2b-256 80c2c5dc88da6602f923367084a1bff8a534edf214cee3be048cd09e9a43e917

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