Estou tentando simular modelos básicos de semicondutores para fins pedagógicos - a partir do modelo de difusão à deriva. Embora eu não queira usar um simulador de semicondutores pronto para uso - aprenderei outros modelos (comuns, recentes ou obscuros), quero usar um solucionador de PDE pronto para uso.
Mas mesmo para o caso 1D simples, o modelo de difusão à deriva consiste em um número de PDEs não lineares acoplados:
Equações de densidade atual
Equação de continuidade
Equação de Poisson
e várias condições de contorno.
Eu tentei alguns solucionadores python FEM, FEniCS / Dolfin e SfePy , mas sem sorte, devido à incapacidade de formulá-los na forma variacional fraca com funções de teste.
É claro que existe a opção de implementar a solução numérica do zero, mas ainda não estudei o FEM / Numérico, por isso espero que não seja a minha única opção, pois não quero ficar sobrecarregado com problemas numéricos.
Então, existe um pacote (pref. Código aberto) que pegaria essas equações dessa forma e as resolveria? Ou talvez a forma variacional exigida pelas ferramentas não seja tão difícil? De qualquer forma, quais são minhas opções?
obrigado
Edit: Tentativa de formular a forma variacional fraca para FEniCS / Dolfin ou SfePy
Usando três PDEs (Poisson + duas equações de continuidade com J substituído), procuramos V, ne p. A equação de Poisson (usando a função de teste ) é simples. Estou tendo dificuldades, no entanto, com as equações de continuidade.
O segundo PDE (formato forte) onde são constantes, são funções escalares
Deixe denotar uma função de teste para o segundo PDE. Então
Especialmente preocupante é a integral:
Mas é um vetor e são escalares. Em seguida, usando a identidade
Como V é resolvido pela equação de Poisson, podemos usar o valor recentemente calculado como permitido no software Dolfin / FEniCS e simplificar como tratamos V nesta segunda equação acoplada? Esse tipo de técnica funciona enquanto discretiza (por exemplo, Gummel, ...), o que não faço nesses solucionadores prontos!
Além disso, as condições de contorno são fornecidas em termos de não , como você implementa isso? Devo resolver as cinco variáveis , mesmo que seja determinado por V e n?
Respostas:
A formulação Scharfetter-Gummel (SG) é comumente usada para resolver as equações de densidade de corrente. Esta é uma formulação especial que supera dificuldades na resolução da dependência não linear entre a densidade potencial e a corrente.
Um texto padrão discutindo como essas equações usando métodos de integração de caixas estão neste livro: Selberherr, S., Análise e simulação de dispositivos semicondutores. Springer-Verlag 1984
Esse tipo de simulação chamado TCAD (Technology Computer Aided Design). Ao contrário do Método dos Elementos Finitos (FEM), o Método do Volume Finito (FVM) é usado para calcular as correntes. Isso ocorre porque ele se encaixa na formulação de SG que foi demonstrada (pelos profissionais deste método) para funcionar ao resolver as equações de densidade de corrente.
Se você deseja resolver isso usando PDE generalizados, o COMSOL possui um Módulo Semicondutor que resolve esse problema usando um método híbrido FEM / FVM.
Além disso, simuladores de TCAD comerciais e de código aberto estão listados aqui: http://www.tcadcentral.com
Que eu saiba, os solucionadores de PDAD-TCE generalizados são DEVSIM, FLOOPS, PROPHET. As ferramentas comerciais tendem a ter a maioria das equações físicas codificadas em uma linguagem compilada como C ++.
fonte