1. З’єднання/переплетення.
1. Що таке сітка?
Сіткування – це процес поділу неперервної фізичної області на набір дискретних точок, з якими може працювати комп’ютер. Наприклад, уявіть собі, як тепло поширюється вздовж металевого стрижня від полум’я свічки на одному кінці до шматка льоду на іншому. У реальності температура неперервно змінюється вздовж стрижня, але в моделюванні неможливо зберегти нескінченну кількість значень. Натомість стрижень представляється скінченною кількістю контрольних точок (сіткою), і обчислення виконуються лише в цих точках (див. ??). Працюючи з сіткою, ми перетворюємо неперервну задачу на дискретну, яку можна розв’язати за допомогою чисельних методів. Цей принцип лежить в основі методів скінченних різниць, скінченних елементів та інших обчислювальних підходів, які широко використовуються у фізиці та інженерії.
2. Різні сітки для розв’язання різних задач.
У OghmaNano розв’язуються три основні фізичні моделі: оптична модель (поглинання та поширення світла), термічна модель (генерація та потік тепла) та електрична модель (транспорт і рекомбінація заряду). Кожен із цих процесів зазвичай відбувається в різних масштабах довжини, тому для кожного з них потрібна окрема обчислювальна сітка. Наприклад:
- Органічна сонячна батарея: електрично значущі ефекти зосереджені в активному шарі (товщиною приблизно 100 нм), тому рівняння переносу та дифузії потрібно розв’язувати лише для цього шару. Однак світло взаємодіє з усіма шарами пристрою (товщиною приблизно 1 мкм), тому оптичну задачу необхідно розв’язувати для всього пристрою. У цьому випадку оптична сітка охоплює весь пристрій, тоді як електрична сітка зосереджена на активному шарі.
- Квантовий гетероструктурний лазер: пристрій може генерувати значну кількість тепла в своїх квантових ямах (товщиною близько 30 нм) і хвилеводних шарах (товщиною близько 1 мкм), але це тепло зрештою розсіюється через великий мідний радіатор, товщина якого становить кілька сантиметрів. У цьому випадку електричні ефекти необхідно моделювати в масштабі від нанометра до мікрометра всередині пристрою, тоді як для моделювання теплових ефектів потрібна сітка, яка охоплює область до сантиметрового масштабу радіатора.
На практиці це означає, що різні фізичні ефекти необхідно моделювати в різних масштабах довжини. Крім того, конструкції пристроїв часто містять дуже тонкі контактні або інтерфейсні шари, товщина яких становить лише кілька нанометрів. З оптичної точки зору, такі шари значно менші за довжину хвилі світла, і їх часто можна ігнорувати, але з точки зору електрики вони мають вирішальне значення, оскільки визначають вольт-амперну характеристику пристрою. Щоб врахувати ці ефекти, у цих областях слід використовувати дуже дрібну електричну сітку, тоді як оптичну сітку можна зробити більш грубою і розмістити над нею.
OghmaNano автоматично виконує інтерполяцію між сітками під час об’єднання моделей. Наприклад, якщо ви визначаєте температурний профіль на тепловій сітці, але для розв’язувача електричних задач потрібні локальні значення температури, вони передаються шляхом інтерполяції. Те саме стосується оптичних величин, таких як швидкість генерації носіїв заряду, які за потреби інтерполюються з оптичної сітки на електричну сітку. Як користувач, вам не потрібно вручну керувати цими передачами.
3. Три шари ОгмаНано.
OghmaNano пропонує три незалежні сітки: теплову, оптичну та електричну, які можна визначити окремо, залежно від задачі, що вирішується. Доступ до кожної сітки здійснюється через відповідну вкладку на стрічці інструментів, як показано на рисунку ??.
3.1 Електрична мережа
Натиснувши кнопку «Електрична сітка» на панелі інструментів «Електрика», відкривається вікно редактора сітки (??). У верхній частині цього вікна розташовані кнопки X, Y і Z. Ці кнопки визначають, які просторові розміри активні в моделюванні. Наприклад, якщо активувати лише Y, то увімкнеться одномірне (1D) моделювання, а якщо активувати X і Y разом, то налаштується двомірне (2D) моделювання. На прикладі, який наведено, активні обидві кнопки – X і Y, тому сітка налаштована для двомірного (2D) моделювання OFET. Центральні таблиці функціонують як електронні таблиці та визначають структуру сітки для кожного активного виміру. Їхні основні стовпці:
- Товщина: фізична товщина кожної ділянки сітки.
- Вузли сітки: кількість точок дискретизації в цій області.
- Зміна кроку: наскільки збільшується крок сітки в межах заданої області. Наприклад, значення
1.1збільшується на кожному кроці на 10 % порівняно з попереднім значенням. - Ліворуч/праворуч: визначає сторону пристрою, з якої генерується сітка.
Отримані сітки відображаються на графіках у нижній частині вікна, що дає змогу одразу оцінити відстань між точками та їх розподіл. Кнопка «Імпорт із редактора шарів» забезпечує швидкий доступ для складних пристроїв. Вона очищає Y-сітку та автоматично імпортує всі шари з редактора шарів, призначаючи чотири точки сітки для кожного шару. Це особливо корисно для конструкцій із великою кількістю шарів, наприклад, для лазерних діодів.
Детальний опис електричної сітки: ?? ілюструє, як будується електрична сітка. Сітка не починається точно на межі пристрою, а натомість починається на половину кроку сітки всередині пристрою. Це забезпечує розташування першої обчислювальної точки в межах активної області моделювання, що дозволяє застосовувати граничні умови (наприклад, електричні контакти) у чітко визначених точках, розташованих безпосередньо за межами сітки. Та сама схема застосовується і до віддаленого краю пристрою, тому сітка поширюється на половину кроку за межі останньої фізичної точки.
- Це дозволяє уникнути числових проблем, які виникають під час спроби безпосередньо обчислити похідні на межах області.
- Він розміщує першу та останню точки сітки в таких позиціях, які найкраще відображають внутрішню структуру фізичного пристрою, водночас забезпечуючи можливість послідовного впливу зовнішніх умов.
Автоматичне створення сітки: товщина шарів визначається в редакторі шарів. Після визначення фізичної структури пристрою користувач повинен оновити електричну сітку, щоб геометрія сітки відповідала фізичним розмірам пристрою. На практиці нові користувачі часто не усвідомлюють, що електрична сітка, як і будь-яке CAD-представлення, має відповідати розмірам фізичного об’єкта.
Щоб зменшити кількість помилок під час налаштування, OghmaNano застосовує автоматичні параметри сітки під час роботи програми. Моделювання передбачає, що задані в редакторі шарів значення ширини та висоти шарів є правильними, і намагається автоматично відобразити ці розміри на електричну сітку. Наприклад, якщо пристрій складається з одного шару, а відповідна висота сітки вказана неправильно, програма моделювання внутрішньо використовуватиме значення товщини шару з редактора шарів під час створення сітки.
Якщо кількість шарів пристрою збігається з кількістю шарів вертикальної сітки, кожен шар сітки автоматично пов’язується з відповідною товщиною шару пристрою. Ці налаштування застосовуються внутрішньо під час моделювання і не змінюють видимі параметри сітки в редакторі. Якщо кількість шарів сітки не збігається з кількістю активних шарів пристрою або якщо відповідність не є однозначною, автоматичне створення сітки не застосовується, і моделювання завершується з помилкою, яка вказує на те, що визначення сітки не відповідає структурі пристрою.
3.2 Оптична сітка
Редактор оптичної сітки (??) має схожий інтерфейс із редактором електричної сітки, але містить додаткову панель для визначення довжини хвилі сітки. У верхній частині вікна кнопки X, Y і Z дозволяють перемикати активні просторові виміри, а кнопка λ (Довжина хвилі) активує спектральну сітку.
Ліва панель визначає просторову дискретизацію в нанометрах, використовуючи ті самі стовпці, що й для електричної сітки (товщина, кількість точок сітки, множник кроку та лівий/правий край). Права панель визначає спектральний діапазон шляхом встановлення початкової та кінцевої довжин хвиль, кількості точок і множника кроку. Ці точки довжин хвиль послідовно використовуються у всіх оптичних розв’язувачах, зокрема в алгоритмах трасування променів, FDTD та моделюванні за допомогою матриці передачі.
Автоматичне створення сітки: для оптичних моделювань програмне забезпечення намагатиметься автоматично налаштувати оптичну сітку таким чином, щоб її розміри відповідали параметрам оптичної задачі. У складніших дво- або тривимірних моделюваннях, якщо оптична та електрична сітки не збігаються, обчислювальний модуль намагатиметься автоматично оновити їх. Якщо це неможливо або якщо бажану конфігурацію сітки неможливо однозначно визначити, моделювання буде припинено з чітким повідомленням про помилку, яке вказуватиме на несумісність визначень сітки.
3.3 Термостійка сітка
Редактор теплової сітки (??) працює так само, як редактори електричної та оптичної сіток, з кнопками X, Y і Z для активації просторових вимірів. Крім того, він містить спеціальну сітку T (для температури).
Температурна сітка використовується в тих випадках, коли в моделюванні необхідно враховувати температурну залежність, наприклад, під час увімкнення функції самонагрівання або під час оцінки електричних властивостей у певному діапазоні температур. Перед запуском моделювання OghmaNano попередньо обчислює та створює таблиці таких величин, як концентрація носіїв заряду в залежності від рівня Фермі та температури, або інтегралів Фермі–Дірака. Ці таблиці дозволяють обчислювальному модулю швидко знаходити значення під час роботи, замість того, щоб обчислювати їх повторно.
У більшості випадків термосітка обробляється автоматично, але досвідчені користувачі можуть налаштувати діапазон і роздільну здатність, щоб забезпечити достатню точність для задач, які сильно залежать від температури.
4. Коли мені слід почати перейматися щодо створення сітки в OghmaNano?
Електрична сітка: редактор шарів розділяє пристрій на шари з різних матеріалів (див. розділ 3.1.3). Шари, позначені як активні, є тими, до яких застосовується електрична модель. Для цих шарів необхідно визначити скінченно-різницеву сітку. Довжина сітки має точно відповідати довжині активного шару, інакше виникне помилка. OghmaNano зазвичай автоматично генерує відповідну сітку, тому для більшості простих пристроїв це не потребує ручного втручання. Однак, якщо присутні кілька активних шарів або якщо кількість точок сітки потрібно зменшити для прискорення моделювання (або збільшити для підвищення точності), електричну сітку може знадобитися налаштувати вручну.
Оптична сітка: оптична сітка контролює як просторову, так і довжину хвилі. Можливо, її потрібно буде відрегулювати, щоб змінити змодельований діапазон довжин хвиль або уточнити спосіб взаємодії світла з різними шарами пристрою. Збільшення кількості точок сітки покращує оптичну точність, але збільшує час моделювання.
Теплова сітка: теплова сітка використовується лише тоді, коли ввімкнено функцію самонагрівання. У цьому випадку вона забезпечує необхідну роздільну здатність для моделювання змін температури по всій площі пристрою та взаємозв’язку теплових ефектів із пастками та процесами рекомбінації. В іншому випадку OghmaNano автоматично обробляє ці дані.
5. Корисні поради щодо створення сіток.
Чи варто мені використовувати одномірне, двомірне чи тримірне моделювання?
Вибір правильної розмірності є одним із найважливіших рішень під час налаштування моделювання. Завжди використовуйте мінімальну кількість розмірностей, необхідну для відображення відповідних фізичних процесів – це дозволить заощадити час і обчислювальні ресурси.
- Сонячні елементи: зазвичай потребують лише одновимірних сіток, оскільки зміни відбуваються переважно у вертикальному напрямку (за товщиною).
- Оптичні фільтри: зазвичай також мають одновимірну структуру, оскільки основна оптична інтерференція відбувається у напрямку шарів.
- OFET-транзистори: потребують двовимірної структури, оскільки необхідно забезпечити як вертикальний рух струму через напівпровідник, так і латеральний рух струму між виводом-джерелом і виводом-стоком.
Швидкість проти точності
Спокуса припустити, що збільшення кількості вузлів у сітці завжди покращує точність, є великою. На практиці, збільшення кількості вузлів може бути корисним – до певної межі – але воно також може призвести до зниження точності або стабільності моделювання. Обмежуючим фактором часто є не обчислювальна потужність, а числова обумовленість: багато моделей пристроїв містять величини, які відрізняються на кілька порядків (наприклад, дуже малі значення щільності або швидкості рекомбінації поряд із дуже великими значеннями поля, струму або концентрації домішок). Оскільки комп’ютери використовують арифметику з обмеженою точністю, операції, що включають надзвичайно великі та надзвичайно малі числа, можуть призводити до втрати значущих цифр. Ця втрата точності може домінувати в загальній похибці та спричиняти небажані коливання, шумні струми або погану збіжність.
Збільшення щільності сітки може погіршити цю проблему, а не покращити її. Більш дрібна сітка часто призводить до крутіших локальних градієнтів, більших похідних і сильнішого зв’язку між сусідніми вузлами, що може збільшити розбіжність між найменшим і найбільшим значеннями в лінійній системі, яку необхідно розв’язати. В результаті може виникнути проблема, яка гірше піддається розв’язанню, і розв’язувач матиме труднощі з розрізненням реальної фізики від числових похибок. У таких випадках дещо грубіша сітка може забезпечити більш плавні поля, кращу стабільність і, отже, більш надійні результати, навіть якщо вона містить менше точок.
Ефективний робочий процес передбачає початок із створення грубої сітки для перевірки налаштувань і підтвердження того, що якісні характеристики відповідають очікуваним. Потім слід уточнювати сітку лише в міру необхідності. Уточнення сітки має ґрунтуватися на даних: якщо ключові параметри (наприклад, криві залежності струму від напруги, профілі носіїв заряду, оптичне генерування) перестають суттєво змінюватися при додаванні додаткових точок, подальше уточнення, ймовірно, не покращить точність.
Під час налаштування пристрою в OghmaNano, будь ласка, дотримуйтеся таких рекомендацій:
- Використовуйте найменшу можливу кількість вимірів: за можливості – 1D; переходьте до 2D/3D лише тоді, коли це вимагають фізичні умови.
- За можливості, зменште кількість вузлів сітки: прагніть до мінімальної кількості вузлів, яка все ще дозволяє адекватно відобразити основні фізичні процеси. Це покращує швидкість обчислень і може підвищити чисельну стійкість.
- Більша кількість точок ≠ завжди краще: якщо збільшення щільності сітки призводить до появи шумних струмів, проблем зі збіжністю або нестабільних профілів, спробуйте зменшити кількість точок та/або вдосконалюйте лише ті ділянки, які мають значення.
- Для початкового дослідження використовуйте грубіші сітки: під час перевірки відповідності розмірів або вивчення загальної поведінки пристрою зменште щільність сітки, щоб швидко отримати первинні результати, а потім вибірково збільште її для підвищення точності.
- Удосконалюйте з певною метою: додавайте точки там, де градієнти є реальними (на межах, у зонах висначення, у тонких шарах), а не всюди. Рівномірне уточнення часто є найменш ефективним варіантом.