FDTD 튜토리얼: 실리콘 Mach–Zehnder 변조기
1. 개요: 무엇을 시뮬레이션할 것인가
Mach–Zehnder modulator (MZM)는 전기적 제어 신호를 광학 진폭(또는 세기) 변화로 변환하는 간섭형 광자 부품입니다. 빛은 두 도파관 팔로 분기되고, 상대적인 위상차를 축적한 뒤 다시 결합됩니다. 출력 전력은 두 팔 사이의 위상 관계에 의존합니다: 두 팔이 동위상으로 재결합하면 출력은 밝고, 역위상으로 재결합하면 출력은 억제됩니다.
실리콘 포토닉스에서 MZM은 고속 데이터 통신, 코히런트 광학, 광 상호연결, 집적 마이크로파 포토닉스에 널리 사용됩니다. 실제 장치는 일반적으로 플랫폼에서 가능한 전기광학 메커니즘을 사용하여 위상 제어를 구현합니다 (실리콘의 경우 이는 종종 PN 접합, MOS 커패시터를 통한 캐리어 분산 또는 열광학 조정을 위한 히터입니다). 구동 메커니즘과 무관하게, 장치의 광학 코어는 동일합니다: 분기기, 두 개의 유도 팔, 그리고 재결합기입니다.
이 튜토리얼에서는 대표적인 실리콘 Mach–Zehnder 변조기 구조의 FDTD 시뮬레이션을 실행합니다. 여기서의 목표는 완전한 전기 공동 시뮬레이션을 구축하는 것이 아니라, 시간 영역 장 전파를 사용하여 유도된 에너지가 어떻게 분기되고, 두 팔을 따라 이동하며, 출력에서 다시 결합하는지에 대한 직관을 기르는 것입니다. 전력 밀도 스냅샷을 확인하고 검출기 시간 추적을 해석할 것이며, 여기에는 팔에 위치한 검출기들과 두 팔이 다시 합쳐지는 더 하류에 위치한 검출기 사이의 전파 지연이 포함됩니다.
수치적 관점에서 이 예제는 의도적으로 “무거운” 예제입니다: 시뮬레이션 도메인이 비교적 크고 디스크에 상당한 양의 데이터를 덤프합니다. 따라서 이는 전체 FDTD 스택의 좋은 스트레스 테스트가 됩니다: 기하 정의, 소스 주입, CPML 흡수 경계, 시간 스텝 진행, 검출기 추출, 그리고 출력 파이프라인 (스냅샷과 검출기 뷰어)을 포함합니다.
2. 새 시뮬레이션 만들기
새 시뮬레이션 버튼을 클릭하여 New simulation 창을 엽니다. 이 창에서 FDTD examples 카테고리를 선택한 다음 Silicon Mach–Zehnder modulator 데모를 더블클릭합니다 (목록의 맨 아래에 있습니다). 메시지가 나타나면 시뮬레이션을 로컬 디스크에 저장합니다.
이 예제는 실행 중 많은 파일을 기록합니다 (스냅샷, 검출기 출력, 중간 데이터). 따라서 네트워크 드라이브나 가상화/클라우드 동기화 디렉터리(예: OneDrive)에 저장하지 마십시오. 로컬 SSD가 이상적입니다. 느린 저장소에 저장하면 실행 시간이 극적으로 증가하거나, 출력 기록 중 인터페이스가 느려질 수 있습니다.
3. 메인 창에서 방향 잡기
장치는 Device structure 탭의 3D 보기에 나타납니다 (??). 두 개의 간섭계 팔(racetrack 형태의 도파관 경로)과 구조를 따라 배치된 색이 다른 검출기 객체(보라색, 녹색, 빨간색)를 식별할 수 있어야 합니다. 정확한 색은 중요하지 않지만, 기하 구조에서 신호가 어디서 모니터링되는지 쉽게 볼 수 있게 해 줍니다.
이 예제에서 주로 사용할 것은 다음과 같습니다:
- FDTD 계산을 시작하는 Run simulation (▶) 또는 F9.
- 스냅샷과 검출기 디렉터리/파일을 여는 Output 탭.
- 시간을 따라 전력 밀도가 어떻게 변화하는지 관찰하는 Snapshot viewer.
- 각 검출기의
power.csv시간 추적을 플롯하는 Detector power viewer.
4. 시뮬레이션 실행
F9를 누르거나 파란색 재생 버튼(▶)을 클릭하여 실행을 시작합니다. 이 시뮬레이션은 비교적 크며, 격자가 크고 스냅샷 및 검출기 데이터를 디스크에 덤프하기 때문에 완료하는 데 상당한 시간이 걸립니다.
성능이 괜찮은 노트북에서는 일반적인 실행 시간이 약 10–15분입니다. 실행이 진행되는 동안
Output 탭을 열어 파일이 나타나는 것을 볼 수 있습니다. 특히 snapshots/ 디렉터리가 보이고,
시뮬레이션이 진행됨에 따라 검출기 출력(Detector 0, Detector 1, Detector 2)이 나타납니다.
5. 전력 밀도 스냅샷 보기
Output 탭에서 snapshots/ 폴더를 엽니다
(??)
그러면 snapshot viewer가 실행됩니다. 대표적인 snapshot-viewer 창은
??에
나와 있습니다.
파란색 플러스 버튼을 사용하여 powerdensity.csv를 뷰어에 추가합니다. 그 다음 슬라이더를 사용하여 시간을 따라 이동할 수 있습니다.
이 시뮬레이션을 보는 가장 유용한 방법은 장치 내부를 전파하는 유도 에너지를 따라가는 것입니다. 초기 시간에는 소스가 입력 도파관으로 주입되고 분기기 영역에 도달하는 것을 볼 수 있습니다. 시간이 진행됨에 따라 전력은 두 팔로 나뉩니다. 이후 스냅샷에서는 전력이 racetrack 팔을 따라 계속 전파되는 것이 보입니다. 더 나중에는 두 팔이 다시 결합하고, 에너지가 출력 섹션으로 라우팅되는 것을 볼 수 있습니다.
대표적인 스냅샷은 ??– ??에 나와 있습니다. 장치 매개변수를 바꾸지 않더라도, 이 스냅샷들은 이것이 간섭 구조라는 점을 분명하게 보여줍니다: 에너지가 분기되고, 물리적으로 분리된 두 경로를 따라가며, 그다음 다시 합쳐집니다.
snapshots/에서 연 Snapshot viewer. powerdensity.csv를 추가하고 시간을 따라 이동합니다.
6. 검출기 출력 보기
시뮬레이션이 실행되는 동안(그리고 완료 후에도) Output 탭에 검출기 출력이 나타납니다
(??).
각 검출기 항목은 작은 CCD 스타일 아이콘처럼 보입니다. 검출기를 열려면 이를 더블클릭한 다음,
해당 검출기 디렉터리 안의 power.csv를 더블클릭하여 detector power viewer를 엽니다.
이 예제는 세 개의 검출기를 사용합니다. 두 개의 검출기는 두 간섭계 팔을 모니터링하고(그래서 유도 에너지가 각 팔 모니터에 도달하는 시간을 비교할 수 있음), 세 번째 검출기는 두 팔이 재결합하는 최종 출력 단계의 더 하류에 배치됩니다. 세 개의 검출기 플롯은 ??, ??, 그리고 ??에 나와 있습니다.
이 실행에서는 두 팔 검출기에서 전력이 대략 \(3 \times 10^{-13}\,\mathrm{s}\) 부근에서 상승하기 시작하는 반면, 더 하류에 있는 검출기는 (대략 그 두 배 정도의 시간에) 더 늦게 시작하는 것을 볼 수 있습니다. 이는 두 팔이 이동하고 재결합한 뒤의 전파 경로에 더 하류에 배치되었기 때문입니다. 이것은 구조를 통한 전파 지연을 직접적이고 직관적으로 보여줍니다: 팔 모니터가 먼저 응답하고, 최종 단계 모니터는 유도 에너지가 물리적으로 더 멀리 이동해야 하므로 나중에 응답합니다.
추적이 완전히 매끄럽지는 않은데, 이는 우리가 강한 시간 평균을 하지 않기 때문입니다; 대신 모니터를 통과하는 시간 의존 유도 성분을 볼 수 있습니다. 이러한 플롯을 “순간적인” 전력으로 해석하는 것은 보통 바람직하지 않으며; 이 튜토리얼에서 더 유용한 해석은 도달 시간과 유도 에너지가 계속 전파되고 간섭함에 따라 신호 외피가 어떻게 진화하는가입니다.
7. 유도 모드 확인
시뮬레이션이 무엇을 하고 있는지 더 잘 이해하기 위해서는 도파관 내부의 유도 모드를 확대해서 보는 것이 유용합니다. 그 예가 ??에 나와 있습니다. 이 이미지에서는 검출기가 도파관의 유도 모드 내부에 위치해 있습니다.
모드는 점들의 연속 또는 짧은 선분처럼 보입니다. 이러한 모양은 단지 snapshot viewer에서 사용되는 렌더링 방법의 인공적인 결과입니다: 장은 GPU 부하를 줄이고 대규모 시뮬레이션을 상호작용적으로 시각화할 수 있도록 이산 샘플링 점으로 플로팅됩니다. 이러한 렌더링 스타일에도 불구하고, 유도 모드의 전파는 매우 분명하며 장이 도파관을 따라 이동하는 것을 쉽게 볼 수 있습니다.
snapshot viewer 도구 모음의 colour wheel 버튼을 사용하여 다양한 시각 스타일을 실험할 수 있습니다. 이는 전력 밀도 장을 시각화하는 데 사용되는 색상 맵을 변경하며, 때로는 간섭 패턴이나 약한 복사 특징을 더 쉽게 볼 수 있게 해 줍니다.
8. 여기 파장의 변경
Mach–Zehnder 간섭계와 같은 광자 구조의 거동은 주입된 빛의 파장에 강하게 의존합니다. OghmaNano와 함께 제공되는 예제에서는 파장이 실리콘 도파관의 유도 모드에 맞도록 선택되어 있습니다. 이제 실험으로, 구조가 더 이상 유도 전파를 지지하지 않도록 의도적으로 파장을 변경해 보겠습니다.
??에 표시된 Optical 리본으로 이동하여 optical mesh editor를 엽니다. 파장 설정에서 (??) 시뮬레이션이 녹색광에서 실행되도록 파장 범위를 변경합니다.
start wavelength를 530 nm로, stop wavelength를 531 nm로 설정합니다. 이는 예제에서 원래 사용된 파장보다 훨씬 짧습니다.
이 변경 후 시뮬레이션을 다시 실행하십시오. 결과는 ??에 나와 있습니다. 광장이 도파관에 갇혀 있는 대신, 광학 장이 이제 시뮬레이션 도메인 전체로 퍼져 나갑니다. 결과는 나비나 간섭 부채처럼 보이는 인상적인 복사 패턴입니다.
이는 파장이 이제 도파관 기하에 비해 훨씬 더 작아져서, 구조가 더 이상 잘 구속된 유도 모드를 지지하지 않기 때문에 발생합니다. 따라서 Mach–Zehnder 간섭계는 더 이상 광자 회로처럼 동작하지 않고, 단순한 복사 개구처럼 동작하게 됩니다.
이 실험은 집적 포토닉스의 중요한 설계 원리를 강조합니다: 도파관 구조는 파장에 매우 민감합니다. 이 기하에서 어떤 스펙트럼 영역이 유도 전파를 지지하는지 알아보기 위해 다른 파장으로 이 실험을 반복할 수 있습니다.
9. 메쉬 해상도와 복사 모드
기본 예제에서는 도파관 굽힘이 매우 매끄럽게 보이는 것을 알 수 있습니다. 이것은 의도된 것입니다. 매끄러운 굽힘은 광 모드가 도파관 내부에 구속되도록 돕고, 광장이 방향을 바꿀 때 복사 손실을 방지합니다.
이 튜토리얼의 Mach–Zehnder 구조는 racetrack 형태의 간섭계를 형성하는 네 개의 곡선 도파관 세그먼트로 구성됩니다. 매끄러운 기하의 중요성을 보여주기 위해, 가장 가까운 곡선 도파관 요소를 마우스 오른쪽 버튼으로 클릭하고 Mesh editor를 선택합니다 (??).
그러면 ??에 표시된 mesh editor 창이 열립니다. Arc segments라는 매개변수를 찾으십시오. 원래 예제에서는 이 값이 32로 설정되어 있어 매끄러운 곡선 도파관을 만듭니다.
arc segments 수를 1로 줄입니다. 이는 허용되는 최소 세그먼트 수이며, 사실상 매끄러운 굽힘을 직사각형 구간으로 구성된 조잡한 다각형으로 바꿔 버립니다.
시뮬레이션을 다시 실행하면, ??에 나온 것처럼 도파관의 코너 주변에서 강한 복사 손실을 볼 수 있습니다. 광장이 각 날카로운 방향 변화에 도달할 때마다, 일부 에너지는 더 이상 유도되지 않고 복사로 빠져나갑니다.
소스 주입 영역 근처에서도 일부 복사를 볼 수 있습니다. 이 복사는 단순히 주입된 소스 고유 모드와 도파관의 정확한 고유 모드 사이의 불일치 때문에 생기며, 이 시연에서는 무시해도 됩니다.
10. 광원 편집
마지막으로, 여기 소스를 어떻게 수정할 수 있는지 간단히 살펴보겠습니다. 기본적으로 시뮬레이션은 연속적인 사인파 소스를 사용합니다. 그러나 OghmaNano에서는 매우 다양한 소스 유형과 매개변수를 구성할 수 있습니다.
??에 나온 보기로 전환하면 도파관 아래쪽에서 나오는 녹색 화살표로 여기 소스를 볼 수 있습니다. 이 화살표를 마우스 오른쪽 버튼으로 클릭하고 Edit object를 선택합니다 (??).
그러면 light source editor가 열리며 (??), 여기 파형을 구성할 수 있습니다. 연속 사인 파 대신 펄스를 지정하거나, 시작 및 종료 시간을 바꾸거나, 다른 장 성분을 여기할 수 있습니다.
유용한 실험은 소스 지속 시간을 펨토초가 아니라 simulation steps 단위로 설정하는 것입니다. 예를 들어, 종료 시간을 약 400 steps로 설정해 보십시오. 시뮬레이션이 실행되면 소스는 도파관에 빛의 버스트를 주입한 뒤 꺼집니다. 그러면 결과적인 파동 묶음이 간섭계를 통해 전파되고 마침내 구조를 떠나는 것을 볼 수 있습니다.
x, y, 또는 z 편광과 같은 서로 다른 장 성분을 여기하거나 다른 펄스 형태를 시험해 볼 수도 있습니다. 이러한 변화는 광자 장치의 과도 거동, 군 지연 또는 펄스 왜곡을 연구할 때 매우 유용합니다.
이것으로 Mach–Zehnder 변조기 튜토리얼을 마칩니다. 파장, 메쉬 해상도 및 소스 매개변수를 실험함으로써, 광자 구조가 집적 광자 회로에서 광학 장을 어떻게 유도하고, 구속하고, 조작하는지 탐색할 수 있습니다.