我正在尝试为教学目的模拟基本的半导体模型——从漂移扩散模型开始。虽然我不想使用现成的半导体模拟器——我将学习其他(常见的、最近的或不知名的)模型,但我确实想使用现成的 PDE 求解器。
但即使对于简单的一维情况,漂移扩散模型也包含许多耦合的非线性偏微分方程。
电流密度方程:
连续性方程:
泊松方程:
和一些边界条件。
是否有一个包(最好是开源的)可以以这种形式采用这些方程并求解它们?或者工具所需的变分形式是否不那么难?无论如何,我有什么选择?
我正在尝试为教学目的模拟基本的半导体模型——从漂移扩散模型开始。虽然我不想使用现成的半导体模拟器——我将学习其他(常见的、最近的或不知名的)模型,但我确实想使用现成的 PDE 求解器。
但即使对于简单的一维情况,漂移扩散模型也包含许多耦合的非线性偏微分方程。
电流密度方程:
连续性方程:
泊松方程:
和一些边界条件。
是否有一个包(最好是开源的)可以以这种形式采用这些方程并求解它们?或者工具所需的变分形式是否不那么难?无论如何,我有什么选择?
我无法为您提供可以为您求解方程的求解器。
但是,我将提供警告:
如果您想使用有限元方法,尤其是所谓的连续 Galerkin 方法,您将需要方程的弱形式。对于您提供的方程,获得形式并非易事,但也不是特别难以获得。如果您选择有限元方法并导出方程的弱形式,您应该能够将 FEniCS(https://fenicsproject.org/)用于其他所有方法。
求解所得到的线性方程组耦合系统并不困难(使用牛顿或牛顿-坎托罗维奇方法),但如果您想要获得可接受的执行时间,则需要一些思考。总而言之:求解器的定制实现将非常耗时(您必须对其进行测试),因此请尽量避免它,除非您真的想了解求解器可能出现的问题。
我的背景:我在一位朋友(数值数学)的硕士论文中建议了他如何解释他从解决 Nernst-Planck-Poisson 方程的最优控制问题中获得的数值结果(这基本上是你提供的方程)。不过,他正在用 2D 解决它(如果你也算时间的话,也可以用 2+1 D 解决它),而我们正在使用我的 C++。
我开发了一个开源,它使用 Python 前端以脚本形式指定 PDE。
所有这一切的一个关键点是,Scharfetter-Gummel 方法在历史上一直是求解漂移扩散方程的最成功的方法。这种方法与使用有限体积方法最兼容。有一些混合方法使用有限元和有限体积的组合形式。
请在此处查看接受的答案:
二极管仿真结果如下所示:
https://devsim.com/1d-diode-junction/ https://devsim.com/1d-diode-junction-part-ii/
无论您是想编写解决方案,还是尝试我的项目,请随时联系项目邮件列表。