J'essaie de simuler des modèles de semi-conducteurs de base à des fins pédagogiques - à partir du modèle de diffusion en dérive. Bien que je ne veuille pas utiliser un simulateur de semi-conducteur standard - j'apprendrai d'autres modèles (courants, récents ou obscurs), je veux utiliser un solveur PDE standard.
Mais même pour le cas 1D simple, le modèle de dérive-diffusion se compose d'un certain nombre de PDE non linéaires couplés:
Équations de densité de courant J p = q p ( x ) μ p E ( x ) + q D p ∇ p
Équation de continuité ∂p
Équation de Poisson
et un certain nombre de conditions aux limites.
J'ai essayé des solveurs FEM python, FEniCS / Dolfin et SfePy , mais sans succès , car je n'ai pas pu les formuler sous la forme variationnelle faible avec des fonctions de test.
Il y a bien sûr la possibilité d'implémenter la solution numérique à partir de zéro, mais je n'ai pas encore étudié FEM / Numérique en profondeur, donc j'espère que ce n'est pas ma seule option car je ne veux pas être submergé par des problèmes numériques.
Existe-t-il un package (pref. Open source) qui prendrait ces équations, sous cette forme, et les résoudrait? Ou peut-être que la forme variationnelle requise par les outils n'est pas aussi difficile? Dans tous les cas, quelles sont mes options?
Merci
Edit: tentative de formulation de la forme variationnelle faible pour FEniCS / Dolfin ou SfePy
En utilisant trois PDE (Poisson + deux équations de continuité avec J substitué), nous recherchons V, n et p. L'équation de Poisson (en utilisant une fonction de test ) est simple. J'ai cependant du mal avec les équations de continuité.
Le deuxième PDE (forme forte) où sont des constantes, sont des fonctions scalaires
Soit une fonction de test pour le second PDE. alors
L'intégrale est particulièrement inquiétante:
Mais est un vecteur et sont des scalaires. Ensuite, en utilisant l'identité
Puisque V est résolu par l'équation de Poisson, pouvons-nous utiliser la valeur récemment calculée telle qu'elle est autorisée dans le logiciel Dolfin / FEniCS et simplifier la façon dont nous traitons V dans cette deuxième équation couplée? Ce genre de techniques fonctionne tout en discrétisant (par exemple Gummel, ...), ce que je ne fais pas dans ces solveurs prêts!
Les conditions aux limites sont également données en termes de non , comment implémentez-vous cela? Dois-je résoudre les cinq variables , même si est déterminé par V et n?