Головна Приклади Знімки екрана Інструкція користувача Логотип Bluesky. YouTube ☰
OghmaNano Мультифізична платформа для моделювання оптоелектронних пристроїв і фотонних систем. ЗАВАНТАЖИТИ Короткий посібник зі швидкого старту

Налаштування розв’язувача для моделі дрейфу–дифузії

Модуль розв’язувача рівнянь дрейфу-дифузії можна налаштувати, вибравши пункт «Налаштування» на стрічці інструментів «Електрика». Відкривається вікно налаштування модуля, де можна змінити числові параметри, такі як межі ітерацій, допустимі похибки та стратегії збіжності. Ці параметри дають користувачеві змогу контролювати продуктивність і стабільність модуля для різних моделей пристроїв.

Налаштування електричного розв’язувача.

Електричний двигун OghmaNano вирішує систему тісно пов’язаних нелінійних рівнянь (рівняння Пуассона + рівняння переносу-дифузії, а також будь-які увімкнені кінетичні рівняння). Ці рівняння містять експоненти та сильні зв’язки, тому їх вирішують ітеративно, використовуючи метод Ньютона-Рафсона на єдиному глобальному якобіані. Зазвичай вам не потрібно змінювати параметри за замовчуванням, але панель налаштувань дозволяє стабілізувати складні випадки, прискорити обчислення для простих випадків або перевірити, як поводяться числові методи.

Відкрийте налаштування, перейшовши на вкладку «Електрика», вибравши «Дрейф-дифузія» та натиснувши «Налаштувати» – див. DD Solver Open. Відкриється вікно, показане на DD Solver Window, де ви зможете налаштувати, як працює розв’язувач і як він досягає збіжності.

Які функції виконує кожен розділ.

Панель поділена на чотири основні блоки, які регулюють різні фази обчислення: перша ітерація, наступні ітерації, нарощування напруги та стратегія завершення. В усіх фазах основна ідея залишається незмінною: починаємо з припущення, оновлюємо невідомі значення за допомогою кроків Ньютона і зупиняємося, коли глобальна похибка стає достатньо малою. Обмежувач обмежує максимальне оновлення на кожному кроці, щоб запобігти переходу розв’язувача в нефізичні області. Невеликі обмежувачі → повільніша, але дуже стабільна робота; великі обмежувачі → швидша, але потенційно нестабільна робота.

Перша ітерація

Наступні версії/ітерації

Зміна напруги з часом.

Під час переходу від початкового значення зміщення (наприклад, 0 В) до цільової робочої точки (можливо, високої напруги), проміжні значення часто є лише проміжними етапами. Цей блок дозволяє використовувати ширші допустимі значення або різні обмеження, щоб швидше пройти цей перехід, зберігаючи при цьому точність кінцевих значень робочої точки.

Стратегія виходу з бізнесу/проекту/інвестицій.

Тип розв’язувача та інструменти

Практичні рекомендації

Якщо виникають проблеми (високе легування, екстремальні поля, сильне впорскування), опустіть затиск і послабте допуск першого етапу. Для простих випадків, коли все працює добре, підніміть затиск, щоб збільшити швидкість. Використовуйте перехідну секцію, щоб швидко перейти до потрібної робочої точки, а потім встановіть там більш жорсткі допуски.

Див. також: точку входу для налаштування, показану у DD Solver Open, і повне вікно діалогу у DD Solver Window.

Стабільність розв’язувача

OghmaNano — це чисельний симулятор, який розв’язує систему тісно пов’язаних диференціальних рівнянь для заряду, потенціалу та рекомбінації. Як і будь-який чисельний розв’язувач, він потребує фізично реалістичних вхідних параметрів для успішного досягнення збіжності. Значення, які дорівнюють точно нулю, нескінченно великі або розподілені на занадто великій кількості порядків величини, можуть призвести до нестабільності основних матричних операцій. Щоб допомогти вам уникнути цих проблем, у цьому розділі наведено деякі практичні міркування під час налаштування ваших симуляцій.

Уникайте використання надто великих і надто малих чисел.

Відкрийте MATLAB (або Octave у Linux) і введіть наступний вираз: \(((1e-1+1e1)-1e1)/1e-1\). Перш ніж натиснути Enter, подумки обчисліть його: \(1e1\) і \(-1e1\) скорочуються, залишаючи \(\frac{1e-1}{1e-1}=1\). Тепер замініть степені 10 на 19 і спробуйте: \(((1e-19+1e19)-1e19)/1e-19\). Знову ж таки, на папері результат має бути \(1\).

Однак, якщо дозволити комп’ютеру виконати обчислення, відповідь буде \(0\), а не \(1\). Це відбувається тому, що комп’ютери зберігають числа з обмеженою точністю (приблизно 15–16 десяткових знаків у сучасних пристроях). Коли ви додаєте \(1e-19\) до \(1e19\), менший доданок втрачається під час округлення, тому комп’ютер бачить \(1.000000000000000e19\) замість \(1.0000000000000000001e19\). Віднімання \(1e19\) дає в результаті точно нуль, і внесок \(1e-19\) зникає.

Важлива точність обчислень.

Якщо ваша модель передбачає параметри, що охоплюють надто великий діапазон значень, розв’язувач може втратити точність. Намагайтеся уникати екстремальних співвідношень, особливо щодо рухливості або щільності станів, щоб забезпечити стабільність.

На всі комп’ютери це впливає, незалежно від їхньої потужності. У випадку моделювання пристроїв це означає, що слід уникати діапазонів параметрів, які створюють матриці з дуже великими та дуже малими числами, розташованими поруч. Наприклад, якщо поруч використовувати рухливості \(1e-19\) і \(1e5\), це може спричинити чисельні труднощі. Це особливо важливо під час моделювання діелектриків.

Уникайте нулів.

Значення, що дорівнює нулю, спричиняє помилки ділення на нуль. Не встановлюйте значення рухливості, перерізу захоплення, нахилу кривої або щільності станів точно рівним нулю. Використання нуля для констант рекомбінації є допустимим.

⚠️ Уникайте точних значень, що дорівнюють нулю.

Замініть нулі на дуже малі значення (наприклад, \(1e-30\)), щоб запобігти числовим нестабільностям, зберігаючи при цьому наближене значення «майже нуль».

Значні зміни в ширині забороненої зони.

Значні зміни енергії в зоні заборонених енергій призводять до надзвичайно низької або надзвичайно високої концентрації носіїв заряду, що безпосередньо спричиняє ті самі проблеми з точністю, про які йдеться у Уникайте використання дуже великих і дуже малих чисел. Забезпечте достатньо дрібний крок дискретизації енергії, щоб уникнути нефізичних стрибків.

🔍 Перевірте свою мережу.

Якщо дискретизація ширини забороненої зони занадто груба, це може призвести до отримання нереалістичних значень концентрації носіїв заряду. Удоскональте сітку, щоб значення залишалися в межах чисельно стабільного діапазону.