파라미터 스캔 창
시뮬레이션 파라미터를 체계적으로 변화시키는 가장 직접적인 방법은 스캔 창을 사용하는 것입니다. 이 예에서는 PM6:Y6 태양전지의 활성층 이동도를 체계적으로 변화시킬 것이며, 이 예제는 예제 시뮬레이션의 Scripting and fitting/Scan demo (PM6:Y6 OPV) 아래에서 찾을 수 있습니다. 이 시뮬레이션을 찾고 연 다음에는 파라미터 스캔 창을 띄워야 하며, 이는 Automation 리본의 Parameter scan 아이콘을 클릭하여 수행할 수 있습니다( ?? 참조). 그런 다음 new scan 버튼 (1)을 클릭하여 새 스캔을 만드십시오(예제 시뮬레이션에서는 이것이 이미 준비되어 있습니다). 스캔을 나타내는 아이콘을 더블 클릭하여 새 스캔을 여십시오 (2), ?? 참조. 그러면 스캔 창이 나타납니다. ??를 참조하십시오.
1. 변화시킬 파라미터 선택하기
스캔 창이 열리면 그림 17.1의 플러스 아이콘 (1)을 클릭하여 새 스캔 줄을 만든 다음, 이 줄이 강조 표시되도록 선택하고 (2), 세 개의 점 (3)을 클릭하여 스캔할 파라미터를 선택하십시오. 예제 시뮬레이션을 사용 중이라면 이것도 이미 준비되어 있습니다.
이 예에서는 PM6:Y6 태양전지의 전자 이동도를 스캔 대상으로 선택합니다. 이는 epitaxy\(\rightarrow\) PM6:Y6\(\rightarrow\) Drift diffusion\(\rightarrow\) Electron mobility y 로 이동하여 수행합니다. 파라미터를 강조 표시한 뒤 OK를 클릭하십시오. 그러면 선택한 파라미터가 스캔 목록에 나타납니다. 이 파라미터 경로의 각 수준의 의미는 아래에 설명되어 있습니다:
-
epitaxy:
.oghma파일에 정의된 모든 파라미터는 파라미터 선택 창을 통해 노출됩니다 ( [fig:scanselect] 참조). 전체 장치 구조와 그 층들은 epitaxy 제목 아래에 정의됩니다. -
PM6:Y6: epitaxy 내부에서 각 장치 층은 이름으로 식별됩니다. 이 예에서 활성층의 이름은 PM6:Y6입니다. 활성층의 이름이 다르다면(예를 들어 Perovskite 또는 P3HT:PCBM), 그 층 이름을 대신 선택하게 됩니다.
-
Drift diffusion: 주어진 층과 연관된 모든 전기적 수송 파라미터는 drift diffusion 하위 제목 아래에 그룹화되어 있습니다.
-
Electron mobility y: z, x 및 y 방향에 대해 비대칭 이동도를 정의할 수 있습니다 - 이것은 OFET 시뮬레이션에 유용합니다. 그러나 기본적으로 모델은 모든 방향에서 동일한 대칭 이동도를 가정합니다. 이 값은 Electron mobility y로 정의됩니다.
이 워크플로우는 처음에는 비교적 복잡해 보일 수 있지만, 본질적으로는
기저의 .oghma JSON 파일 안의 값과 경로를 구조화된 방식으로
편집하는 것입니다.
파라미터 선택 창은 이 파일을 안전하고 일관되게 탐색하고 수정하기 위한 그래픽 인터페이스를
제공할 뿐입니다.
파일 구조에 대한 자세한 설명은 다음 문서에서 확인할 수 있습니다:
OghmaNano 파일 형식
.
2. 값 설정하기
다음으로 스캔하려는 이동도 값을 입력합니다. 이 경우에는 1e-5 1-6 1e-7 1e-8 1e-9를 입력한 다음 run scan을 클릭합니다(그림 17.2 2 참조). OghmaNano는 모든 시뮬레이션이 끝날 때까지 컴퓨터의 각 코어에서 하나의 시뮬레이션씩 실행합니다.
3. 시뮬레이션 결과 보기
시뮬레이션 결과를 보려면 output 탭을 클릭하십시오. 그러면 시뮬레이션 출력이 나타납니다. 그림 17.3을 참조하십시오. 스캔한 각 변수에 대해 디렉터리가 생성된 것을 볼 수 있으며, 즉 1e-5, 1e-6, 1e-7, 1e-8 및 1e-9입니다. 각 디렉터리 안을 보면 기본 시뮬레이션 디렉터리의 정확한 복사본이 들어 있습니다. 여러 색상의 JV 곡선이 있는 파일을 더블 클릭하면, 그림 17.3의 빨간 상자를 참조하십시오. OghmaNano는 각 시뮬레이션의 모든 곡선을 하나의 그래프에 자동으로 플로팅합니다. 그림 17.4를 참조하십시오.
4. 파라미터 복제하기 – 활성층 두께 변경
매우 자주, 하나의 파라미터를 변화시킨 다음 다른 파라미터를 그 변화된 값과 같게 설정하고자 할 때가 있습니다. 간단한 예는 대칭 수송 특성을 가진 장치를 시뮬레이션할 때 전자 이동도와 정공 이동도를 함께 스캔하는 것입니다. 이는 ??에 나온 것처럼 스캔 창의 Duplicate 기능을 사용하여 수행할 수 있습니다. 이 예에서는 약간 더 미묘한 문제를 다룹니다. 이동도를 복제하는 대신, 활성층의 물리적 두께를 바꾸고 동시에 그것에 맞도록 전기 메시도 조정합니다. 메시 섹션에서 설명한 바와 같이, 활성층의 너비는 전기 메시의 너비와 일치해야 합니다. 시뮬레이션의 수치적 및 기하학적 불일치를 피하기 위해서는 이 둘을 일관되게 유지하는 것이 더 좋습니다.
레이어 편집기에서 층 너비를 수동으로 변경하면 OghmaNano는 전기 메시를 자동으로 업데이트합니다. 그러나 스크립팅이나 파라미터 스캔을 통해 모델을 수정하는 경우에는 이 업데이트가 자동으로 수행되지 않을 수 있습니다. 따라서 아래 예에서는 관련 파라미터를 명시적으로 복제합니다.
먼저 다음을 스캔합니다:
epitaxy\(\rightarrow\)PM6:Y6\(\rightarrow\)dy of the object
다음으로 또 다른 스캔 줄을 추가하고, Parameter to scan 아래에서 다음을 선택합니다:
mesh\(\rightarrow\)mesh_y\(\rightarrow\)segment0\(\rightarrow\)len
그런 다음 이 파라미터를 다음으로 설정합니다:
epitaxy\(\rightarrow\)PM6:Y6\(\rightarrow\)dy of the object
이는 Operation 드롭다운 메뉴를 사용하여 수행합니다. 선택하면 Values 열 아래에 duplicate라는 단어가 나타납니다.
시뮬레이션을 실행하면 “epitaxy\(\rightarrow\)PM6:Y6\(\rightarrow\)dy of the object” 파라미터가 스캔되고, “mesh\(\rightarrow\)mesh_y\(\rightarrow\)segment0\(\rightarrow\)len” 은 자동으로 이를 따라가므로, 메시 두께가 물리적 층 두께와 일관되게 유지됩니다.
5. 상수 값 설정하기
파라미터를 스캔하는 것 외에도, 파라미터 스캔 편집기를 사용하여 constant 연산을 통해 파라미터를 명시적으로 고정 값으로 설정할 수 있습니다. 이는 하나의 파라미터를 변화시키는 동안 다른 여러 파라미터를 변경되지 않게 유지해야 할 때 유용합니다.
이 예에서는 장치 층의 dy 파라미터를 스캔하여 활성층의 두께를 변화시킵니다. 동시에, 해당하는 수직 메시 세그먼트 길이를 복제하여 전기 메시가 변화하는 층 두께와 일관되도록 유지합니다. 이러한 스캔된 파라미터와 함께, 전자 이동도와 정공 이동도는 모두 Operation 열의 constant 옵션을 사용하여 고정 값으로 설정됩니다.
constant를 사용하면 다른 파라미터가 어떻게 바뀌는지와 상관없이 스캔의 모든 시뮬레이션에서 해당 파라미터가 지정된 값을 갖도록 할 수 있습니다. 이는 기하 구조 변화 (예: 층 두께)와 수송 파라미터의 효과를 깔끔하게 분리할 수 있게 해 주며, 스캔된 양들 사이의 의도하지 않은 결합을 방지합니다.
6. 루프와 동등한 기능
파라미터 범위를 스캔할 때는 종종 많은 수의 시뮬레이션을 실행하고자 합니다. 이러한 경우 모든 값을 수동으로 입력하는 것은 비현실적입니다. 이를 해결하기 위해 OghmaNano는 스캔 창 내에서 루프와 동등한 기능을 제공합니다.
예를 들어, 파라미터를 100에서 400까지 1 간격으로 변화시키려면 다음을 입력할 수 있습니다:
[100 400 1]
7. 스캔 창의 한계
스캔 창은 재료 또는 장치 파라미터를 변화시키고 결과를 빠르게 시각화할 수 있는 실용적이고 쉬운 방법을 제공합니다. 단순한 연구, 즉 어떤 양이 어떻게 변하는지 이해하고 수 초 내에 결과를 얻는 것이 목표인 경우에는, 이것이 종종 가장 효과적인 접근 방식입니다.
그러나 시뮬레이션 수가 많아지거나 더 복잡한 파라미터 상호작용이 필요해지면, 스캔 창이 제한적이 될 수 있습니다. 이러한 경우에는 예를 들어 Python 또는 MATLAB을 통한 스크립팅 인터페이스를 사용하여 OghmaNano를 프로그래밍 방식으로 구동하는 것이 더 적절할 수 있으며, 이들은 파라미터 생성, 실행 로직 및 데이터 수집에 대한 완전한 제어를 허용합니다.
마찬가지로, 목표가 단순히 곡선이 파라미터에 따라 어떻게 변하는지 관찰하는 것이 아니라 장치 스택을 최적화하는 것이라면, 일반적으로 내장 최적화 도구를 사용하는 편이 더 좋습니다. 이는 매뉴얼의 다중 파라미터 장치 최적화기 섹션에 설명되어 있습니다.
👉 다음 단계: 이제 다중 파라미터 최적화로 계속 진행하십시오. 여기에서 여러 장치 파라미터를 동시에 최적화하는 방법을 배울 수 있습니다.