Я пытаюсь смоделировать базовые полупроводниковые модели для педагогических целей - начиная с модели дрейф-диффузия. Хотя я не хочу использовать готовый полупроводниковый симулятор - я буду изучать другие (распространенные, недавние или малоизвестные) модели, но я хочу использовать готовый решатель PDE.
Но даже для простого одномерного случая дрейф-диффузионная модель состоит из нескольких связанных нелинейных уравнений в частных производных:
Уравнения плотности тока
Непрерывность уравнения
Уравнение Пуассона
и ряд граничных условий.
Я попробовал некоторые решатели Python FEM, FEniCS / Dolfin и SfePy , но безуспешно из-за невозможности сформулировать их в слабой вариационной форме с помощью тестовых функций.
Конечно, есть возможность реализовать численное решение с нуля, но я еще не изучал FEM / Numeric, так что я надеюсь, что это не единственный мой вариант, так как я не хочу быть перегруженным численными проблемами.
Так есть ли пакет (предпочтительно с открытым исходным кодом), который будет принимать эти уравнения в такой форме и решать их? Или, может быть, вариационная форма, требуемая инструментами, не так сложна? В любом случае, какие у меня варианты?
Благодарность
Изменить: Попытка формулирования слабой вариационной формы для FEniCS / Dolfin или SfePy
Используя три уравнения в частных производных (Пуассона + два уравнения неразрывности с заменой J), мы ищем V, n и p. Уравнение Пуассона (с использованием тестовой функции ) является прямым. У меня, однако, трудности с уравнениями неразрывности.
Второй PDE (сильная форма) где - постоянные, - скалярные функции
Пусть обозначает тестовую функцию для второго PDE. потом
Особенно беспокоит интеграл:
Но является вектором, а - скалярами. Затем используйте идентификатор
Поскольку V решается с помощью уравнения Пуассона, можем ли мы использовать недавно вычисленное значение, как это разрешено в программном обеспечении Dolfin / FEniCS, и упростить, как мы рассматриваем V в этом втором связанном уравнении? Такие методы работают при дискретизации (например, Gummel, ...), чего я не делаю в этих готовых решателях!
Также граничные условия даны в терминах не , как вы это реализуете? Должен ли я решить для пяти переменных , даже если определяется V и n?
Ответы:
Формула Scharfetter-Gummel (SG) обычно используется для решения уравнений плотности тока. Это специальная формулировка, которая преодолевает трудности в решении нелинейной зависимости между потенциалом и плотностью тока.
Стандартный текст, обсуждающий, как эти уравнения, использующие методы интегрирования блоков, находится в этой книге: Selberherr, S., Анализ и моделирование полупроводниковых приборов. Springer-Verlag 1984
Этот тип моделирования называется технологией компьютерного проектирования (TCAD). В отличие от метода конечных элементов (FEM), метод конечных объемов (FVM) используется для расчета токов. Это потому, что он вписывается в формулировку СГ, которая была показана (практиками этого метода) для работы при решении уравнений плотности тока.
Если вы хотите решить эту проблему с использованием обобщенных PDE, COMSOL имеет Semiconductor Module, который решает эту проблему с использованием гибридного метода FEM / FVM.
Кроме того, коммерческие и открытые симуляторы TCAD перечислены здесь: http://www.tcadcentral.com
Насколько мне известно, решателями обобщенных PDE TCAD являются DEVSIM, FLOOPS, PROPHET. В коммерческих инструментах, как правило, большинство физических уравнений жестко запрограммированы на скомпилированном языке, таком как C ++.
источник