예제 스크린샷 사용자 매뉴얼 Bluesky 로고 YouTube
OghmaNano 유기/페로브스카이트 태양전지, OFET 및 OLED 시뮬레이션 다운로드

oghma 파일 형식

1. JSON이란 무엇인가?

OghmaNano sim.json file opened in the Firefox browser showing structured JSON parameters
Firefox에서 열린 sim.json 파일의 예로, OghmaNano 시뮬레이션의 기본 JSON 구조를 보여줍니다.

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 뷰어가 있습니다. Firefox에서 표시된 sim.json 파일의 예는 아래 ??에 나와 있습니다.

마지막으로 한 가지 중요한 점이 있습니다. sim.json은 핵심 설정 파일이지만 항상 단독으로 저장되는 것은 아닙니다. 대신 OghmaNano는 이를 종종 sim.oghma 파일 안에 포함시키며 이는 단순한 표준 ZIP 아카이브입니다 — 공간을 절약하기 위해서입니다. sim.oghma의 이름을 sim.zip으로 변경하면 Windows Explorer 또는 다른 zip 뷰어로 열어 sim.json을 추출할 수 있습니다. 동일한 시뮬레이션 디렉토리에 sim.json 사본을 넣고 아카이브 이름을 다시 sim.oghma로 변경하면 OghmaNano는 아카이브에 저장된 sim.json을 무시하고 대신 일반 텍스트 sim.json 파일을 사용합니다. 이 기능은 자동화에 매우 유용합니다. 어떤 프로그래밍 언어를 사용하든 zip 파일을 조작하지 않고 직접 sim.json을 편집할 수 있기 때문입니다.

2. OghmaNano 파일 형식

OghmaNano는 시뮬레이션 설정 파일인 sim.json에서 정확히 이러한 원칙을 적용합니다. 이 파일에는 장치 구조를 설명하고 실행할 시뮬레이션을 정의하며 솔버를 구성하는 데 필요한 모든 정보가 포함됩니다. 각 시뮬레이션 디렉토리에는 자체 sim.json 파일이 포함됩니다. 이 파일은 어떤 텍스트 편집기에서도 열 수 있지만 Firefox와 같은 JSON 뷰어를 사용하는 것이 더 편리할 수 있으며, 이 경우 데이터가 자동으로 정렬된 트리 형태로 표시됩니다.

최상위 수준에서 sim.json은 소수의 최상위 섹션으로 구성됩니다. 이러한 섹션은 JV 스윕, EQE 실행 또는 장치 레이어 정의와 같은 상세한 하위 섹션으로 확장됩니다. 현재 형식에 존재하는 주요 최상위 섹션은 아래 표에 요약되어 있습니다: ??.

sim.json의 현재 최상위 섹션
섹션 목적
sim일반 메타데이터 (예: 버전, 실행 모드, 메모)
sims모든 시뮬레이션 정의 (JV, Suns-Voc, EQE, PL, 시간 영역, ray, FDTD 등)
epitaxy장치 구조: 레이어, 접촉, 기하 구조, 재료
math수치 솔버 설정 및 허용 오차
optical광학 모델, 광원, 검출기, 메시
dump출력 제어: 상세도, 프로브, 파일 형식
server런타임/병렬화 (스레드, GPU, 시간 제한)
sim.json에서 감지된 주요 최상위 섹션.

3. OghmaNano json 형식의 특징

4. 인코딩

OghmaNano에서 읽고 쓰는 .json 파일은 항상 UTF-8 형식으로 저장됩니다. OghmaNano는 UTF-16이나 다른 텍스트 인코딩 표준을 처리할 수 없습니다. 오늘날 Windows 메모장과 대부분의 앱은 기본적으로 UTF-8을 사용하므로 이러한 텍스트 저장 형식을 잘 모른다면 크게 문제되지 않을 수 있습니다. 이는 C++와 같은 언어로 .oghma 파일을 프로그램적으로 생성하고 중국어 또는 러시아어와 같이 비라틴 문자를 사용하는 언어를 사용할 때 나타날 수 있습니다.

5. 파일 형식의 전방/후방 호환성

OghmaNano의 새 버전이 이전 버전에서 생성된 파일을 읽을 수 있도록 상당한 노력이 이루어지고 있습니다. 그러나 이전 버전의 OghmaNano는 최신 버전에서 생성된 파일을 읽지 못할 수 있습니다. 사용자가 GUI를 사용하여 sim.oghma 파일을 열 때마다 파일 형식이 확인되며 현재 버전과 다른 경우 파일이 업데이트되어 디스크에 다시 저장됩니다. \(oghma\_core.exe\)를 직접 호출하여 헤드리스 구성으로 OghmaNano를 사용하는 경우 이전 버전에서 생성된 sim.oghma 파일을 실행하기 전에 먼저 GUI에서 열어 파일 형식이 올바른지 확인해야 합니다.

6. 팁

OghmaNano sim.json 파일에서 특정 파라미터가 어디에 저장되는지 확실하지 않은 경우 매우 효과적인 방법은 파일의 두 버전을 비교하여 무엇이 변경되는지 확인하는 것입니다. 이를 위해 KDiff3와 같은 파일 비교 도구를 사용할 수 있습니다.

과정은 간단합니다:

  1. OghmaNano 사용자 인터페이스에서 시뮬레이션을 엽니다.
  2. 관심 있는 파라미터를 조정합니다 (예: 활성층 두께 또는 전압 설정 변경) 그리고 시뮬레이션을 저장합니다.
  3. KDiff3(또는 다른 diff 도구)를 사용하여 새 sim.json 파일을 이전 버전과 비교합니다.
  4. 차이가 있는 줄을 확인합니다: 이것이 JSON 구조에서 해당 파라미터가 저장된 정확한 위치를 보여줍니다.

이 방법은 파일에서 파라미터 경로를 확실히 모를 때 JSON 내부에서 위치를 찾는 빠르고 신뢰할 수 있는 방법입니다. 특히 많은 중첩 섹션을 가진 복잡한 시뮬레이션에서 유용합니다.

👉 다음 단계: 이제 계속하여 Parameter Scan 도구 탐색, 여기에서 시뮬레이션 파라미터를 체계적으로 변경하고 결과를 분석하는 방법을 배울 수 있습니다.