Structure of nextnano3 and
the source code
Information for programmers and advanced users
This site contains all the necessary information you need if you want to
modify the program or add some new parts to the code.
Source code documentation of nextnano3
Structure
Input parser - How to read
in the data of the simulation device and the database.
Setup (Block 1 -
Block 5)
Block 1
-
Grid and geometry
(material grid, physical grid, multiple grid points, Quantum regions, Structure
functions (Grid mapping), Rotations)
- Strain
-
Strain
-
Calculation of strain in nano
heterostructures
-
Get strain tensor
Block 2
-
Generate new band structure
(van de Walle model of strained heterostructures)
-
Setup of material data
Block 3
-
Doping
Block 4
-
Polarizations (piezo and
pyro charges)
Block 5
-
Setup of quantum
models
Main Program
Poisson block
-
Solve Poisson problem
-
Linear Poisson equation
(Setup and storage of Poisson matrix, Poisson clusters, boundary conditions,
right hand side)
-
Nonlinear Poisson
equation
Current block
-
Solve current problem
-
Linear current equation
(Setup and storage of current matrix, current clusters, boundary conditions,
special case 1D, matrix-vector product)
Current-Poisson block
-
Self-consistent
solution of current and Poisson equation
Electronic structure
-
Storage of data and setup of arrays on electronic structure
-
Input of k.p parameters
-
Get k||
for 1D (2D Brillouin zone)
-
Information on how to extract information on electronic structure
-
Rotation of Hamilton
- Storage of rotation
- Setup of rotation
-
Information on how to assemble the bulk Hamiltonian
-
Setup of k.p Hamiltonian
-
Calculate new k.p states
-
Setup of single-band Schrödinger equation including magnetic field
-
Separation models: eigenvalues <--> Thomas-Fermi
-
Calculate eigenvalues
of k.p Schrödinger equation
-
Calculate
eigenvalues of single-band Schrödinger equation
-
Environment where these routines are called
Calculate
eigenstates (overwiew)
-
Calculate eigenstates
-
Update k.p states
- Determine range
for k||
- Get k points
Densities
-
Densities, derivatives of densities, dopant
densities
-
Densities of single-band
Schrödinger states
-
k.p densities
Brillouin zone integration
-
Schrödinger solutions,
k.p solutions,
Brillouin zone integration
Numerical routines
-
Numerical
routines (eigenvalue solvers)
-
Numerical library
(linear equation solvers, eigenvalue solvers)
-
Sparse matrices
(a reduced storage scheme for sparse matrices)
ges_modules.f90
contains any MODULES that are commonly used by the 1D, 2D and 3D version.
|