File Exchange

image thumbnail


version 1.0.1 (278 KB) by Laurent NEVOU
Schrodinger-Poisson solver in 1D demonstrator


Updated 22 Mar 2021

From GitHub

View Version History

View license on GitHub

This code solves the Schrodinger-Poisson equation in semiconductor heterostructures. In order to be educatif, few approximations are made:

-> the mass=meff is supposed constant all over the structure. Therefore, it must be set at the value of the quantum well.

-> the non-parabolicity is NOT taken into account

As an input, the program only needs a set of layer with thickness, conduction band offset and doping.

Enjoy! If you like it, don t forget the star!

Cite As

Laurent NEVOU (2021). Q_SchrodingerPoisson1D_demo (, GitHub. Retrieved .

Comments and Ratings (5)

Laurent NEVOU

As you could see, the mass is considered constant all over the structure in order to keep the code simple and fast. Adding m(z) makes it already much more complicated...
Then, as far as the non-parabolicity is not taken into account, using mass=m(z) in the structure is not so relevant...
Nevertheless, if you want to do it you have to:
1) change the Schrodinger solver by using the one called : "Q_Schrodinger1D_1band"
2)a) change the density of states ro. In the code, ro is a 1d vector function of energy En. You have to build a 2d matrix ro that has the size of En and z.
b) meshgrid En and z.
c) modify the function "find_Ef_f.m" in order to deal with matrix instead of vector.
d) take care that roEf will become a matrix instead of a vector.


I did some digging in the literature and decided to go with the weighted spatial average of the effective mass, and worked just fine. Thank you.


sorry, I meant (ro) not (to).


For example, if we have a structure with three different quantum wells, how do we account for there different effective masses in the two-dimensional density of states (to).


Thank you for publishing this great work. I have a question, I would like to make the solution take into account the variation of the effective mass in different layers, I have successfully modified the Schrodinger solver to account for the effective mass variation, however, I would like to know how can I incorporate the effective mass variation in the two-dimensional density of states (to). Any response would be appreciated. Thank you.

MATLAB Release Compatibility
Created with R2020a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!