Solwery PDE dla dyfuzji dryfu i modeli pokrewnych

12

Próbuję symulować podstawowe modele półprzewodnikowe do celów pedagogicznych - zaczynając od modelu dyfuzyjnego Drifta. Chociaż nie chcę używać gotowego symulatora półprzewodników - nauczę się innych (powszechnych, najnowszych lub niejasnych) modeli, ale chcę używać gotowego solvera PDE.

Ale nawet w prostym przypadku 1D model dyfuzyjno-dyfuzyjny składa się z szeregu sprzężonych nieliniowych PDE:

Równania gęstości prądu J p = q p ( x ) μ p E ( x ) + q D pp

Jn=qn(x)μnE(x)+qDnn
Jp=qp(x)μpE(x)+qDpp

Równanie ciągłości str

nt=1qJn+Un
pt=1qJp+Up

Równanie Poissona

(ϵV)=(pn+ND+NA)

oraz szereg warunków brzegowych.

Wypróbowałem niektóre solwery FEM w Pythonie, FEniCS / Dolfin i SfePy , ale bez powodzenia, ponieważ nie byłem w stanie sformułować ich w słabej formie wariacyjnej z funkcjami testowymi.

Istnieje oczywiście opcja implementacji rozwiązania numerycznego od zera, ale nie studiowałem jeszcze FEM / Numerical dogłębnie, więc mam nadzieję, że nie jest to moja jedyna opcja, ponieważ nie chcę być przytłoczony problemami numerycznymi.

Czy jest więc pakiet (pref. Open source), który wziąłby te równania w tej formie i je rozwiązał? A może forma wariacyjna wymagana przez narzędzia nie jest tak trudna? W każdym razie, jakie są moje opcje?

Dzięki


Edycja: Próba sformułowania słabej formy wariacyjnej dla FEniCS / Dolfin lub SfePy

uV

nt=(C1nV+C2n)+U
C1,C2U,n,p,V

fn

Ωfnnn1ΔtdΩC1Ωfn(nV)dΩC2Ωfn2ndΩΩfnUdΩ

C1Ωfn(nV)dΩ

VV,un,nϕA=Aϕ+ϕA

C1Ωfn(nV)dΩ=C1Ωfn(Vn)+C1ΩfnnV

Skoro V rozwiązuje równanie Poissona, czy możemy wykorzystać ostatnio obliczoną wartość dozwoloną w oprogramowaniu Dolfin / FEniCS i uprościć sposób, w jaki traktujemy V w tym drugim równaniu sprzężonym? Tego rodzaju techniki działają przy dyskretyzacji (np. Gummel, ...), czego nie robię w tych gotowych rozwiązaniach!

JnnJn,Jp,n,p,VJn

Weaam
źródło
1
Dlaczego nie możesz zapisać ich słabych form?
Bill Barth
@BillBarth Zredagowałem moje pytanie, proszę spojrzeć. Dzięki.
Weaam,
2
Twoja integracja częściowa jest nieprawidłowa. Sprawdź wzór, brakuje znaków, masz więcej pochodnych po prawej niż po lewej i zapomniałeś o całce granicznej.
Wolfgang Bangerth,
un
Tak, powinienem był bardziej uważać. Proszę sprawdzić moją edycję, szczególnie moje pytanie dotyczące tego, jak traktujemy V, ponieważ powinno to być rozwiązane już w poprzednim PDE. Czy ma to jakiś wpływ na formę wariacyjną? Dziękuję Ci.
Weaam,

Odpowiedzi:

5

Formuła Scharfettera-Gummela (SG) jest powszechnie stosowana do rozwiązywania równań gęstości prądu. Jest to specjalna formuła, która eliminuje trudności w rozwiązaniu nieliniowej zależności między gęstością potencjału i prądu.

W tej książce znajduje się standardowy tekst omawiający, w jaki sposób równania te wykorzystują metody integracji pól: Selberherr, S., Analiza i symulacja urządzeń półprzewodnikowych. Springer-Verlag 1984

Ten typ symulacji o nazwie Technology Computer Aided Design (TCAD). W przeciwieństwie do metody elementów skończonych (FEM), do obliczenia prądów stosowana jest metoda objętości skończonej (FVM). Jest tak, ponieważ pasuje do sformułowania SG, które zostało wykazane (przez praktyków tej metody) do pracy przy rozwiązywaniu równań gęstości prądu.

Jeśli chcesz rozwiązać ten problem za pomocą ogólnych PDE, COMSOL ma moduł półprzewodnikowy, który rozwiązuje ten problem za pomocą hybrydowej metody FEM / FVM.

Ponadto wymienione są tutaj komercyjne i open source symulatory TCAD: http://www.tcadcentral.com

Według mojej wiedzy uogólnionymi rozwiązaniami TCAD są DEVSIM, FLOOPS, PROPHET. W narzędziach komercyjnych większość równań fizycznych jest zakodowanych na stałe w skompilowanym języku, takim jak C ++.

Juan
źródło
Przepraszam za wyjątkowo późną odpowiedź. Zdałem sobie sprawę, że takie bezpośrednie zastosowanie DD (nawet z SG) było dość niestabilne (przynajmniej moja implementacja w Fenics), więc zrezygnowałem z niego. Na późniejszym kursie VLSI rzeczywiście korzystałem z narzędzi Comsol i TCAD. Dziękujemy za wyczerpującą odpowiedź.
Weaam,