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

Формат файлу Oghma.

1. Що таке JSON?

OghmaNano sim.json file opened in the Firefox browser showing structured JSON parameters
Наведено приклад файлу sim.json, відкритого в браузері Firefox, який демонструє базову структуру JSON для моделювання OghmaNano.

OghmaNano зберігає інформацію про моделювання у файлі JSON. JSON (JavaScript Object Notation) — це дуже простий текстовий формат для зберігання та передавання структурованих даних. Він широко використовується в науковому програмному забезпеченні, оскільки його легко читати людині та обробляти комп’ютеру. Загальні приклади структур JSON можна переглянути за посиланням https://json.org/example.html.

Щоб проілюструвати, як працює JSON, наведено нижче простий приклад. Файл JSON складається з розділів, які починаються та закінчуються фігурними дужками { }. Кожен розділ містить маркери або позначки, наприклад "color_of_dog", "dog_age" або "dogs_toys". Ці маркери завжди мають бути записані в подвійних лапках, після них іде двокрапка :, а потім відповідне значення даних. Текстові значення розміщуються в подвійних лапках, тоді як числа, такі як цілі числа або дробові числа, записуються без лапок. У OghmaNano значення, подібні до булевих, зберігаються у вигляді рядків "true" або "false". Щоб файл був дійсним, усі відкриваючі та закриваючі дужки мають бути правильно розташовані. Елементи в межах розділу розділяються комами, за винятком останнього елемента, який не закінчується комою ??.


{
  "color_of_dog": "brown",
  "dog_age": 5,
  "dogs_toys":
  {
    "rabbit": "true",
    "stick": "false"
  }
}
Приклад простої структури JSON.

OghmaNano використовує ті самі принципи JSON для зберігання всіх даних моделювання. Ця інформація міститься у файлі під назвою sim.json, який містить усі параметри пристрою, налаштування моделювання та конфігурацію вихідних даних. Кожне моделювання матиме власний файл sim.json. Хоча ви можете відкрити цей файл у будь-якому текстовому редакторі, часто простіше використовувати спеціалізований переглядач JSON, оскільки він форматує дані у вигляді зручної для читання структури у вигляді дерева. У Firefox є вбудований зручний переглядач JSON. Приклад файлу sim.json, який переглядається у Firefox, показано нижче на ??.

Останній момент: хоча sim.json є основним файлом конфігурації, він не завжди зберігається окремо. Натомість, OghmaNano часто розміщує його всередині файлу sim.oghma, який є звичайним ZIP-архівом – це робиться для економії місця. Якщо ви перейменуєте sim.oghma на sim.zip, ви зможете відкрити його за допомогою провідника Windows або будь-якої програми для перегляду ZIP-архівів і витягти sim.json. Якщо ви розмістите копію sim.json в тій самій папці симуляції та перейменуєте архів назад на sim.oghma, OghmaNano ігноруватиме архівну версію sim.json і використовуватиме ваш звичайний текстовий файл sim.json. Ця функція надзвичайно корисна для автоматизації, оскільки ви можете безпосередньо редагувати sim.json, використовуючи будь-яку мову програмування, без необхідності маніпулювати ZIP-архівами.

2. Формат файлу OghmaNano.

OghmaNano застосовує саме ці принципи у файлі конфігурації для моделювання, який має назву sim.json. Цей файл містить усе необхідне для опису структури пристрою, визначення параметрів моделювання та налаштування алгоритмів розв’язання. У кожній папці моделювання буде свій файл sim.json. Хоча цей файл можна відкрити в будь-якому текстовому редакторі, часто зручніше використовувати переглядач JSON, наприклад, Firefox, який автоматично відображає дані у вигляді структурованого дерева.

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

Current top-level sections in sim.json
Розділ Мета
simЗагальні метадані (наприклад, версія, режим роботи, примітки).
simsУсі визначення для моделювання (JV, Suns-Voc, EQE, PL, часова область, променева модель, FDTD тощо).
epitaxyКонструкція пристрою: шари, контакти, геометрія, матеріали.
mathНалаштування та допустимі значення для чисельного розв’язувача
opticalОптичні моделі, джерела, детектори, сітки
dumpПараметри керування виводом: рівень деталізації, способи перевірки, формати файлів.
serverЧас виконання/паралелізація (потоки, графічний процесор, обмеження часу).
Виявлено основні розділи найвищого рівня в цьому sim.json.

3. Особливості формату JSON, що використовується в OghmaNano.

4. Кодування

Файли у форматі .json, які зчитує та записує OghmaNano, завжди зберігаються у форматі UTF-8. OghmaNano не підтримує UTF-16 або будь-які інші стандарти кодування тексту. Сьогодні текстовий редактор Windows і більшість інших програм за замовчуванням використовують UTF-8, тому, якщо ви не знаєте, що це за формати зберігання тексту, це, ймовірно, не матиме значення. Проблема виникне лише тоді, коли ви почнете програмно генерувати файли .oghma мовою, наприклад, C++, і використовуватимете мову, наприклад, китайську чи російську, в якій алфавіт містить символи, відмінні від латинських.

5. Зворотна сумісність файлового формату, тобто можливість відкриття та використання файлів, створених у попередніх версіях.

Докладаються значні зусилля, щоб забезпечити сумісність нових версій OghmaNano з файлами, створеними в попередніх версіях. Однак, старі версії OghmaNano можуть не підтримувати файли, створені в новіших версіях. Щоразу, коли користувач відкриває файл sim.oghma за допомогою графічного інтерфейсу, перевіряється формат файлу, і якщо він відрізняється від формату, який використовується в поточній версії, файл оновлюється та перезаписується на диску. Якщо ви використовуєте OghmaNano у конфігурації без графічного інтерфейсу, викликаючи \(oghma\_core.exe\) безпосередньо, то перед запуском \(oghma\_core.exe\) переконайтеся, що файли sim.oghma зі старих версій моделі спочатку були відкриті в графічному інтерфейсі, щоб перевірити, чи файл має правильний формат.

6. Поради

Якщо ви не впевнені, де саме в файлі OghmaNano sim.json зберігається певний параметр, дуже ефективним способом буде порівняння двох версій файлу, щоб побачити, які зміни були внесені. Один із способів зробити це – використати інструмент для порівняння файлів, наприклад KDiff3.

Процес досить простий:

  1. Відкрийте свою симуляцію в користувацькому інтерфейсі OghmaNano.
  2. Відрегулюйте потрібний параметр (наприклад, змініть товщину активного шару або встановіть інше значення напруги) та збережіть результати моделювання.
  3. Порівняйте новий файл sim.json з попередньою версією за допомогою KDiff3 (або іншого інструменту для порівняння файлів).
  4. Знайдіть рядки, які відрізняються: вони покажуть, де саме в структурі JSON зберігається цей параметр.

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

👉 Наступний крок: тепер перейдіть до інструменту «Параметричне сканування», де ви зможете дізнатися, як систематично змінювати параметри моделювання та аналізувати результати.