Лабораторная работа № 5 / labor5new.doc
Лабораторная работа № 5
«Пакет MATHEMATICA»
Математическое моделирование гетероструктуры. Движение электрона в системе потенциальных ям и барьеров прямоугольной формы.
Основные уравнения
Рассмотрение задачи движения электрона в системе потенциальных ям и барьеров прямоугольной формы упрощается тем, что решение уравнения Шредингера в области с постоянной потенциальной энергией U(x) = const имеет очень простой вид.
Уравнение Шредингера для стационарных состояний
(1)
в области с постоянной потенциальной энергией имеет следующие решения
Если E > U , то имеем
(2)
Если E < U , то имеем
(3)
где
Для наших целей удобно решение уравнения Шредингера представить в следующем виде
(4)
где действительные функции f(x), g(x) определены следующим образом
(5)
Здесь d - ширина ямы или барьера, в которых ищется решение уравнения Шредингера
В дальнейшем удобно линейные размеры системы и координаты задавать в ангстремах, а энергии в электроновольтах. Тогда типичные значения расстояний d *50 * , а энергий U, E * 0.5 eV . Эффективную массу электрона в гетероструктуре возьмем в 10 раз меньшую, чем для свободного электрона. В этом случае параметр q = 0.162 .
При переходе через границу двух соседних областей должны выполняться граничные условия - непрерывность волной функции и ее производной. Поэтому приведем формулы для производных
(6)
Рассмотрим задачу на нахождения дискретного энергетического спектра электрона в гетероструктуре следующего вида
U
UL U1 UR
U2 UN-1 UN
d1 d2 dN-1 dN
E
0 . . . . . x
x1 x2 x3 xN-1 xN xN+1
В этой структуре имеются три характерные области. Слева в области x < x1 энергия электрона E < UL . Поэтому волновая функция в этой области имеет вид
(7)
Справа в области x > xN+1 энергия электрона E < UR . Поэтому волновая функция в этой области имеет вид
(8)
Третья область состоит из N частей. В каждой из этих областей волновая функция имеет вид
(9)
где функции fn(x) , gn(x) находятся по формулам (6)
Граничные условия
Рассмотрим граничные условия в точке x = xn+1 . Слева и справа от этой границы волновые функции имеют вид
(10)
В самой точке x = xn+1 должны выполняться условия
(11)
После подстановки (10) в (11) получаем систему уравнений
(12)
Эту систему удобно переписать в матричном виде
(13)
где матричные элементы определяются по формулам
Нам улыбнулась удача, так как
Теперь легко связать амплитуды A1, B1 волновой функции в области n = 1 и амплитуды AN, BN волновой функции в области в области n = N.
(14)
Далее в точке x = x1 сшиваем функции и производные
В результате получаем систему
(15)
которую можно записать в матричном виде
(16)
Затем в точке x = xN+1 сшиваем функции и производные
В результате получаем систему
(17)
которую можно записать в матричном виде
(18)
Характеристическое уравнение
Рассмотрим матричные уравнения (14), (16), (18)
(19)
Из уравнений (19) получаем матричное уравнение
(20)
Раскрываем это уравнение и получаем систему
(21)
Эта система имеет отличные от нуля решения, если ее определитель равен нулю
(22)
В результате получаем характеристическое уравнение
(23)
Из этого нелинейного уравнения находим корни E - дискретные уровни энергии.
Волновая функция заданного уровня энергии
Решая уравнение (23) находим E - энергию одного из уровней. Затем из формул (1), (2) находим параметры
После этого приступаем к определению амплитуд волновой функции в разных областях. Существуют разные способы. Рассмотрим один из них. Положим AL = 1 , тогда остальные амплитуды найдутся из цепочки уравнений
(24)
Учитывая формулы (13) мы получаем амплитуды
Последнюю амплитуду можно найти с помощью формул (19). В результате получим
(25)
Или же BR можно найти из системы (21). Кстати, совпадение или несовпадение результатов вычисления BR по этим двум путям, может служить проверкой правильности вычислений.
После того, как для заданной энергии E вычислены все параметры и амплитуды, по формулам (5), (7), (8), (9) можно построить волновую функцию.
Отметим что найденная волновая функция, вообще говоря, не нормирована на единицу.
Нормирование волновой функции на единицу это отдельная задача.
1. Задание на выполнение лабораторной работы 5. Нахождение дискретных уровней энергии гетероструктуры.
Пусть гетероструктура состоит из трех ям и двух барьеров между ними как показано на рисунке 1.
Рис. 1
Параметры гетероструктур удобно задавать через списки, как показано в коде программы.
Все основные параметры гетероструктуры заносим в список Lst.
Создадим список координат внутренних областей гетероструктуры.
Удобно для наглядности создать функцию рисующую потенциальную энергию гетероструктуры.
На рисунке 1 показан результат работы программы.
Чтобы найти дискретные уровни гетероструктуры, надо создать функцию зависимости определителя (22) от энергии E .
(26)
Для вычисления определителя (22) нужно уметь вычислять матрицу M (14), и два вектора L (16) и R (18). Матрица M является произведением матриц Mn переходов между отдельными областями гетероструктуры. Поэтому нужно уметь вычислять матрицы переходов Mn (13). И, наконец, для вычисления матричных элементов и для нахождения волновых функций надо уметь вычислять базисные функции гетероструктуры (5)-(8).
Ниже приведен код для вычисления этих функций.
Используя рассмотренные формулы написать самим код функции (26).
Ниже приводится часть кода - начало и конец.
Здесь надо обратить внимание на фрагмент m=mm.m; - так с помощью оператора «точка» в пакете Mathematica выполняется умножение векторов и матриц.
Для контроля поиска дискретных уровней, и для наглядности удобно построить график функции Delta(E), чтобы увидеть, где эта функция имеет корни. Ниже приводится код построения этого графика.
Результат показан на рисунке 2.
Рис. 2
На рисунке виден корень около точки -0.2 eV. В области энергий больше нуля выбранный масштаб не позволяет рассмотреть другие корни. Поэтому выберем подходящие размеры поля вывода графика, чтобы посмотреть поведение функции Delta(E) для E > 0 . Результат показан на рисунке 3.
Рис. 3
Из графиков на рисунках 2 и 3 мы видим, что гетероструктура имеет, пять дискретных уровней энергии. Один уровень меньше нуля и четыре больше нуля. Если выбирать область вывода графика вблизи нужного корня, то можно вручную найти все пять уровней энергии. Но такой способ достаточно утомителен, поэтому будем искать корни характеристического уравнения в автоматическом режиме.
Самым простым способом нахождения всех корней на заданном интервале [xb, xe] является следующий способ. Двигаемся слева направо по заданному интервалу с небольшим шагом. Шаг step должен быть меньше расстояния между соседними корнями. На каждом шаге ищем корень на отрезке равном шагу. Если корня нет, то движемся дальше, если же есть, то заносим в список найденных корней. Ниже приведен фрагмент кода поиска корней.
Здесь используется библиотечная функция FindRoot . Как всякая универсальная программа она в одних случаях работает хорошо, а в других плохо. Для наших целей лучше написать свою функцию поиска корней. Самый простой и самый надежный алгоритм - это деление отрезка пополам. Ниже приводится код функции ZeroTwo, которая заменяет библиотечную функцию FindRoot .
Далее мы используем функцию ZeroTwo в функции поиска всех корней на заданном интервале следующим образом.
Далее приведен фрагмент кода для нахождения всех дискретных уровней гетероструктуры.
В результате работы программы получаем следующие пять уровней энергии.
Можно сравнить полученные значения с нулями функции Delta(E) на графиках (Рис.2, Рис.3). Полученные уровни энергии обычно принято изображать на графике потенциальной энергии в виде горизонтальных линий.
Нарисуем эти линии с помощью следующего кода.
Результат показан на рисунке 4.
Рис. 4
2. Задание на выполнение лабораторной работы 5. Нахождение волновых функций дискретного спектра энергии гетероструктуры.
Для нахождения волновой функции соответствующей стационарному уровню E, необходимо вычислить амплитуды An, Bn волновой функции по формулам (24), (25). Чтобы воспользоваться формулами (24), (25) надо уметь вычислять матрицы переходов Mn и векторы L и R по формулам (13), (16), (18). Ниже приводится часть кода для вычисления этих матриц и векторов.
Амплитуды An, Bn волновой функции удобно задать одним списком, где нечетные компоненты будут соответствовать амплитудам An , четные амплитудам Bn . Ниже приведен код нахождения амплитуд.
Теперь по формулам (7), (8), (9) можно найти волновую функцию для данного уровня энергии. Ниже приводится соответствующий код.
Найденные волновые функции, вообще говоря, не нормированы на единицу.
Пусть интеграл от функции равен С.
Тогда легко проверить, что функция будет нормирована на единицу. Поэтому для каждой волновой функции надо найти нормировочный множитель . После этого новая волновая функция будет нормирована не единицу.
Ниже приводится код нахождения нормировочных множителей волновых функций для всех дискретных уровней гетероструктуры.
Теперь опишем алгоритм построения волновой функции, например второго уровня. Из списка уровней энергии берем второй элемент.
Для данной энергии находим все амплитуды волной функции.
Берем нужный нормировочный множитель Na[[2]] , и строим график этой волновой функции.
Результат показан на рисунке 5.
Рис. 5
Следующий код позволяет построить графики всех волновых функций в цикле, вывести каждую волновую функцию по отдельности и все вместе.
Ниже показан результат работы программы.
Рис. 6 Энергия уровня
Рис. 7 Энергия уровня
Рис. 8 Энергия уровня
Рис. 9 Энергия уровня
Рис. 10 Энергия уровня
Из рисунков видно, что волновые функции подчиняются правилу общему для одномерных решений уравнения Шредингера. Волновая функция основного состояния не имеет узлов. Волновая функция первого возбужденного состояния имеет один узел. Следующая волновая функция имеет два узла. И, наконец, функция имеет четыре узла. Это правило удобно использовать для проверки правильности найденного решения.
На следующем рисунке приведены все волновые функции вместе.
Рис. 11
