Strona główna Przykłady Zrzuty ekranu Instrukcja obsługi Logo Bluesky. YouTube ☰
OghmaNano Platforma do symulacji wielofizycznych procesów zachodzących w optoelektronicznych urządzeniach i systemach fotonicznych. POBIERZ Przewodnik szybkiego uruchomienia

Konfiguracja solvera wykorzystującego metody dryfu i dyfuzji

Rozwiązywacz oparty na modelu dryfu i dyfuzji można skonfigurować, wybierając opcję „Konfiguruj” na pasku narzędzi „Elektryczne”. Otwiera to okno konfiguracji, w którym można dostosować parametry numeryczne, takie jak limity iteracji, dopuszczalne wartości błędów i strategie konwergencji. Te opcje pozwalają użytkownikowi kontrolować wydajność i stabilność rozwiązywacza w różnych symulacjach urządzeń.

Konfiguracja modułu obliczeniowego dla układów elektrycznych.

Silnik elektryczny firmy OghmaNano rozwiązuje ściśle powiązany zestaw nieliniowych równań (równanie Poissona + równanie dyfuzji, a także wszelkie włączone równania kinetyczne). Równania te zawierają funkcje wykładnicze i silne zależności, dlatego są rozwiązywane iteracyjnie za pomocą metody Newtona-Raphsona na jednym, globalnym jakobianie. Zazwyczaj nie będzie konieczne zmienianie domyślnych ustawień, ale panel konfiguracyjny umożliwia stabilizację trudnych przypadków, przyspieszenie rozwiązywania prostych przypadków lub analizę zachowania obliczeń.

Otwórz okno konfiguracji, przechodząc do zakładki „Electrical”, wybierając opcję „Drift–diffusion”, a następnie klikając „Configure” – zobacz DD Solver Open. Spowoduje to wyświetlenie okna przedstawionego na ilustracji DD Solver Window, w którym można dostosować sposób działania solvera i jego proces iteracji oraz konwergencji.

Za co odpowiada każda sekcja.

Panel podzielony jest na cztery główne bloki, które kontrolują różne etapy działania: pierwsza iteracja, kolejne iteracje, regulacja napięcia i strategia zakończenia. We wszystkich etapach podstawowa zasada jest taka sama: rozpoczynamy od przybliżonego rozwiązania, aktualizujemy nieznane wartości za pomocą kroków Newtona i zatrzymujemy się, gdy globalny błąd jest wystarczająco mały. Ogranicznik kontroluje maksymalną zmianę w każdym kroku, aby zapobiec przejściu solvera do obszarów, w których wyniki nie mają sensu fizycznego. Małe ograniczniki → wolniejsze, ale bardzo stabilne działanie; duże ograniczniki → szybsze, ale potencjalnie mniej stabilne.

Pierwsza iteracja

Późniejsze wersje/edycje.

Zmiana napięcia w czasie.

Podczas przechodzenia z początkowego punktu odniesienia (np. 0 V) do docelowego punktu pracy (który może wymagać wysokiego napięcia), pośrednie wartości są często jedynie punktami pośrednimi. Ten moduł umożliwia stosowanie szerszych tolerancji lub innych ograniczeń, co pozwala szybciej przechodzić przez zakres zmian, przy jednoczesnym zachowaniu ścisłych wymagań dotyczących ostatecznego punktu pracy.

Plan wyjścia z sytuacji/inwestycji.

Typ i narzędzia rozwiązywania problemów

Praktyczne wskazówki.

Jeśli dany przypadek jest problematyczny (wysokie stężenie domieszek, ekstremalne pola, silne wstrzykiwanie), obniż zacisk i zaostrz tolerancję pierwszego kroku. W przypadku łatwych, dobrze zachowujących się przypadków, podnieś zacisk, aby zwiększyć szybkość. Użyj bloku rampowego, aby szybko przejść do pożądanego punktu pracy, a następnie zastosuj tam bardziej rygorystyczne tolerancje.

Zobacz także: punkt początkowy konfiguracji wyświetlany w DD Solver Open oraz pełne okno dialogowe w DD Solver Window.

Stabilność algorytmu rozwiązywania.

OghmaNano to program do symulacji numerycznych, który rozwiązuje zestaw ściśle powiązanych równań różniczkowych opisujących ładunek, potencjał i rekombinację. Podobnie jak każdy program do rozwiązywania problemów numerycznych, wymaga on realistycznych parametrów wejściowych, aby symulacja zakończyła się pomyślnie. Wartości dokładnie równe zero, nieskończenie duże lub rozłożone na zbyt szerokim zakresie mogą spowodować niestabilność podstawowych operacji macierzowych. Aby pomóc w uniknięciu tych problemów, w tej sekcji omówiono kilka praktycznych aspektów, które należy wziąć pod uwagę podczas konfigurowania symulacji.

Unikanie bardzo dużych i bardzo małych liczb.

Uruchom program MATLAB (lub Octave w systemie Linux) i wpisz następujące wyrażenie: \(((1e-1+1e1)-1e1)/1e-1\). Zanim naciśniesz Enter, oblicz je w pamięci: \(1e1\) i \(-1e1\) się znoszą, pozostawiając \(\frac{1e-1}{1e-1}=1\). Teraz zastąp potęgi liczby 10 przez 19 i spróbuj: \(((1e-19+1e19)-1e19)/1e-19\). Ponownie, na papierze wynik powinien wynosić \(1\).

Jednak gdy pozwolisz komputerowi na wykonanie obliczeń, wynikiem będzie \(0\), a nie \(1\). Dzieje się tak, ponieważ komputery przechowują liczby z ograniczoną precyzją (około 15–16 cyfr dziesiętnych w nowoczesnym urządzeniu). Dodając \(1e-19\) do \(1e19\), mniejsza wartość jest tracona podczas zaokrąglania, więc komputer widzi \(1.000000000000000e19\) zamiast \(1.0000000000000000001e19\). Odjęcie \(1e19\) daje dokładnie zero, a wpływ \(1e-19\) znika.

Precyzja obliczeń ma znaczenie.

Jeśli w symulacji używasz parametrów o zbyt szerokim zakresie wartości, algorytm może zacząć generować niedokładne wyniki. Staraj się unikać skrajnych wartości, zwłaszcza w przypadku parametrów związanych z mobilnością lub gęstością stanów, aby zapewnić stabilność symulacji.

Na wszystkie komputery wpływa ten problem, niezależnie od ich mocy obliczeniowej. W przypadku symulacji urządzeń oznacza to, że należy unikać zakresów parametrów, które prowadzą do tworzenia macierzy zawierających obok siebie bardzo duże i bardzo małe liczby. Na przykład, zestawienie ruchliwości \(1e-19\) i \(1e5\) spowoduje problemy numeryczne. Jest to szczególnie ważne podczas symulacji izolatorów.

Unikaj używania zer.

Wartości zerowe powodują błędy związane z dzieleniem przez zero. Nie należy ustawiać wartości zerowych dla parametrów takich jak: ruchliwość, przekrój czynny, nachylenie krzywej rozkładu lub gęstość stanów. Można natomiast stosować wartość zero dla stałych rekombinacji.

⚠️ Unikaj wartości dokładnie równych zero.

Zastąp zera bardzo małymi wartościami (np. \(1e-30\)), aby zapobiec problemom z niestabilnością numeryczną, zachowując jednocześnie przybliżenie wartości „bliskiej zeru”.

Bardzo duże zmiany w szerokości pasma wzbronionego.

Duże skoki energii w paśmie zabronionym generują gęstości nośników, które są albo bardzo małe, albo bardzo duże, co bezpośrednio prowadzi do tych samych problemów z precyzją, o których mowa w Unikanie bardzo dużych i bardzo małych liczb. Należy zapewnić wystarczająco drobny podział energii, aby uniknąć niefizycznych skoków.

🔍 Sprawdź swoją siatkę.

Jeśli dyskretyzacja przerw energetycznych jest zbyt gruba, możesz uzyskać nierealistyczne wartości gęstości nośników. Zastosuj bardziej szczegółową siatkę, aby wartości mieściły się w numerycznie stabilnym zakresie.