광자결정 튜토리얼: 광자결정 및 광도파로 시뮬레이션하기
1. 광자결정과 광도파로에 대한 소개
광자결정이란 빛의 파장 규모에서 굴절률이 주기적으로 변하는 광학 구조물을 말한다. 대표적인 예로는 ??에 나타난 바와 같이 규칙적인 공기 구멍 배열이 형성된 유전체 판이 있다. 이러한 주기적 구조는 광자밴드갭을 생성하는데, 이는 빛이 결정 내부로 전파될 수 없는 파장 영역을 의미한다. 이 현상은 반도체에서 나타나는 전자 밴드갭과 유사하나, 전자 대신 광자에 영향을 미친다는 점에서 차이가 있다. 격자 내에 일정한 결함, 예컨대 일렬의 구멍을 제거하는 방식으로 광자밴드갭 내에 광학 모드를 생성할 수 있다. 이를 통해 빛은 결함 영역 내에서 제한되며, 심지어 손실이 매우 적은 상태로 급격한 굴곡 구간을 따라도 전파될 수 있다. 이러한 광자결정 도파관은 광학 인터커넥트, 공진기, 필터, 센서 및 파장 선택형 소자 등 다양한 집적 광학 소자의 기반이 된다.
이 튜토리얼에서는 OghmaNano의 유한차분 시간영역법(FDTD) 솔버를 활용하여 2차원 광자결정 구조를 생성하고 시뮬레이션하게 됩니다. 스텝 편집기를 이용해 주기적 격자를 생성하고 FDTD 광원을 통해 구조 내에 빛을 입사시킨 뒤, 전자기장 분포를 시각화하며 FDTD 검출기 및 스펙트럼 추출 기능을 사용해 파장별 투과스펙트럼을 계산하는 방법을 배우게 됩니다. 격자 형상을 변경하면 광자밴드갭이 어떻게 이동하는지 확인할 수 있으며, 결함을 도입하면 광자결정 도파관이 형성되어 구조 내에서 빛이 어떻게 전파되는지도 관찰할 수 있습니다.
광자결정은 칩 상에서 차지하는 면적이 매우 작으면서도 빛의 전파 경로를 정밀하게 제어할 수 있기 때문에 현대 집적 광학 기술에 널리 활용되고 있습니다. 따라서 광자밴드갭이 어떻게 형성되는지와 결함을 이용해 광학 모드를 어떻게 조작할 수 있는지를 이해하는 것은 고성능 광학 소자 설계를 위한 필수적인 과정입니다.
2. 새로운 광자결정 시뮬레이션 생성하기
Windows 시작 메뉴에서 OghmaNano를 실행한 뒤 ‘새 시뮬레이션’을 클릭하면 ??에 표시된 이용 가능한 소자 유형 목록이 나타납니다.
‘새 시뮬레이션’ 창(??)에서 ‘FDTD 예제’를 더블클릭하십시오. 그러면 ??에 나타나는 광학/FDTD 템플릿 목록이 열리며, 여기에는 파브리-페로 공진기, 진공 공간, 집적 광학 링 공진기, 마하-첸더 변조기 및 여러 도파관이 포함됩니다. 본 튜토리얼에서는 ‘광자결정’ 항목을 더블클릭하십시오. 이후 메시지가 나타나면 쓰기 권한이 있는 폴더에 시뮬레이션 파일을 저장하시기 바랍니다.
💡 팁: 최적의 성능을 얻으려면 C:\과 같은 로컬 드라이브에 시뮬레이션 데이터를 저장하십시오. 네트워크 드라이브, USB 또는 클라우드 폴더(예: OneDrive)에 저장된 시뮬레이션은 많은 읽기/쓰기 작업으로 인해 느리게 실행될 수 있습니다.
3. 시뮬레이션 실행하기
저장이 완료되면 메인 창이 열립니다(?? 참조). 이 장치는 두 개의 얇은 검출기 평면 사이에 배치된 유전체 기둥들(빨간색 튜브 형태)로 구성된 배열입니다. 광원 근처에는 보라색 입력 검출기가 있고, 반대편에는 녹색 출력 검출기가 위치합니다. xy/yz/xz 버튼을 이용해 시각화 방향을 조정할 수 있습니다. ‘시뮬레이션 실행’ 버튼(파란색 재생 아이콘)을 클릭하거나 F9 키를 누르면 시뮬레이션이 시작됩니다. 사양이 낮은 컴퓨터에서는 FDTD 계산에 다소 시간이 소요될 수 있습니다.
시뮬레이션이 완료되면 Output 탭(??)을 열어 솔버가 생성한 파일들을 확인하십시오. 원하는 파일을 더블클릭하면 해당 뷰어에서 파일이 열립니다.
snapshots 폴더와 입력 및 출력 검출기에 의해 기록된 스펙트럼 데이터가 저장된 detector0 및 detector1 폴더가 있습니다. 파일이나 폴더를 더블클릭하면 해당 항목이 열립니다.4. 전기장의 전파 현상을 관찰하십시오
snapshots 폴더를 더블클릭하여 스냅샷 뷰어(??)를 열어보세요. 표시된 파일은 Ey.csv로서 전기장의 한 성분을 나타내며, 색상과 높이가 각각 V/m 단위의 전기장 세기를 표현하는 컬러 와이어프레임 표면 형태로 나타납니다.
플롯 아래에 있는 슬라이더를 조작하여 시간을 단계별로 진행시켜 보세요. 그러면 좌측의 광원에서 방출된 펄스가 광자결정에 도달하여 일부는 산란되고 일부는 투과하는 모습을 관찰할 수 있습니다. 전기장의 변화 양상을 살펴보는 것은 시뮬레이션 결과가 예상대로 나오고 있는지를 확인하는 가장 직관적인 방법이며, 이를 통해 수치 결과에 대한 신뢰도를 판단할 수 있습니다.
Ey.csv을 와이어프레임 형태로 표시합니다.
5. 검출기와 투과 스펙트럼
이제 두 검출기가 기록한 결과를 살펴보겠습니다. Output 탭에서 detector0 및 detector1 폴더를 열면 각각 lam_E.csv라는 파일이 존재하는데, 이는 해당 검출기에 도달한 파장별 전기장 세기 |E|2 값을 나타냅니다. 이 두 검출기는 디바이스 뷰에서 보이는 보라색 및 녹색 격자 형태의 구조물입니다.
detector0에서 lam_E.csv을 열면 입력 스펙트럼(??)을 확인할 수 있습니다. 이는 구조물에 입사된 광대역 펄스로서 대부분의 에너지가 900 nm 부근에 분포합니다. detector1에서 lam_E.csv을 열면 출력 스펙트럼(??)이 로그 축을 기준으로 표시됩니다. 대부분의 파장에서 빛이 크게 감쇠하는 것을 알 수 있는데, 이는 광자결정이 해당 파장의 빛을 차단하기 때문입니다.
두 개의 원본 스펙트럼을 육안으로 비교하는 것은 번거롭기 때문에, 디텍터 폴더에는 |EOutput|2/|EInput|2 비율값을 나타내는 lam_norm.csv도 포함되어 있습니다. 이 값이 바로 광자결정의 투과 스펙트럼입니다. 해당 항목을 더블클릭하면 ??을 얻을 수 있습니다.
1000nm 직후에 나타나는 뚜렷한 피크는 광자결정이 투과시키는 파장대를 나타내며, 그 양측에 위치한 전파가 억제된 영역들은 광자밴드갭으로서 전자기파의 전파이 불가능한 구간입니다. 다시 말해, 이 단일 곡선 하나만으로도 광자결정이 투과시키는 파장과 밴드갭의 위치를 모두 파악할 수 있습니다.
detector0/lam_E.csv): 광자결정에 입사하는 광대역 펄스로서 파장 약 900 nm 부근에서 최댓값을 가집니다. 이 값이 출력값과 비교되는 기준값입니다.
detector1/lam_E.csv)에서 측정된 값을 로그 스케일로 나타낸 결과입니다. 대부분의 파장 영역은 광자밴드갭 내에 위치하므로 수십 배에서 수백 배에 달하는 수준으로 억제되고 있습니다.
lam_norm.csv에서 얻은 투과스펙트럼 |EOutput|2/|EInput|2 값입니다. 1000 nm 직전에 나타나는 피크는 광자결정이 투과시키는 파장들을 나타내며, 반면에 억제된 파장들은 광자밴드갭 내에 위치합니다.6. 유전체 기둥의 반지름 조절
광자밴드갭의 위치는 격자의 기하학적 구조에 의해 결정됩니다. 이를 확인하려면 디바이스 뷰에서 광자결정을 마우스 오른쪽 버튼으로 클릭한 뒤 메뉴에서 메시 편집기(??)를 선택하십시오. 메시 편집기(??)를 이용하면 결정을 구성하는 반복 요소의 형상을 변경할 수 있는데, 여기서는 반지름 100 nm, 높이 400 nm인 원통형 기둥이 사용되며 원하는 수의 링과 세그먼트를 지정하여 메시의 세밀도를 조절할 수 있습니다.
기둥의 반지름을 150 nm로 변경합니다. 디바이스 뷰에서 기둥들이 눈에 띄게 두꺼워집니다(??). 시뮬레이션을 다시 실행한 뒤 lam_norm.csv을 열어 업데이트된 투과 스펙트럼을 생성합니다(??).
이어서 기둥 반지름을 120 nm로 설정한 뒤 시뮬레이션을 다시 수행합니다. 그 결과 얻어진 투과 스펙트럼(??)은 약 1200 nm 부근에서 피크를 보이며, 이는 기존의 100 nm 결과와 150 nm 결과 사이의 값입니다. 명확한 경향성이 나타나는데, 기둥 반지름을 키울수록 광자밴드갭이 장파장 쪽으로 이동합니다. 단 하나의 기하학적 변수만 조정함으로써 광자결정의 밴드갭 위치 및 투과되는 파장 범위를 자유롭게 조절할 수 있습니다.
7. 광자결정 도파관 제작하기
지금까지는 격자가 자동으로 생성되었습니다. 그 생성 과정을 확인하고 직접 제어하려면 광자결정을 마우스 오른쪽 버튼으로 클릭한 뒤 ‘객체 편집’(??)을 선택하십시오. 객체 편집기(??)에는 해당 객체에 관한 모든 정보가 포함되어 있습니다: 위치, 튜브 형태, 광학적 재료(여기서는 실리콘) 등이며, ‘단계’ 행에는 격자 형태를 생성하는 규칙도 명시되어 있습니다. 이 행의 ‘…’ 버튼을 클릭하면 단계 편집기가 열리며, 여기서 광자결정 격자나 반복 구조, 스크립트로 정의된 기하학적 형태를 생성 및 수정할 수 있습니다.
‘Steps’ 행에 있는 ... 버튼을 클릭하면 단계 편집기가 열립니다. ‘Crystal’ 탭(??)에서는 세 개의 격자 벡터와 객체 개수를 통해 격자를 정의합니다. 여기서 a1 = (400 nm, 0, 0)은 x축 방향으로 400 nm 간격을 설정하며, a2 = (0, 1 µm, 0)은 y축 방향으로 단일 층을 형성합니다. 또한 a3 = (200 nm, 0, 346 nm)는 각 행을 절반 간격만큼 오프셋시켜 200 nm의 수평 이동과 346 nm = 400 nm × √3/2에 해당하는 수직 간격을 만듭니다. 이를 통해 흔히 볼 수 있는 삼각형(육각형) 밀집 격자 구조가 형성됩니다. 이 격자는 x축 방향으로 10회, y축 방향으로 1회, z축 방향으로 10회 반복됩니다.
clear_points()와 add_point()이며 모든 좌표값은 미터 단위로 지정됩니다.
규칙적인 격자는 가장 단순한 경우이지만 유일한 가능성은 아닙니다. Lua 스크립트 버튼을 클릭하면 편집기가 스크립팅 뷰로 전환됩니다(??). 이곳에서는 미리 정의된 결정격자 대신 프로그래밍 방식으로 기둥 위치가 생성됩니다. 필요한 명령어는 단 두 개뿐입니다. clear_points()은 기존에 존재하는 모든 기둥 위치를 삭제하며, add_point(x, y, z)는 지정된 좌표에 새로운 기둥을 추가합니다. 이러한 명령어들을 반복문 및 조건문과 결합하면 거의 모든 형태의 광자결정 기하구조를 생성할 수 있습니다.
??에 제시된 예제 스크립트는 격자 간격이 400nm인 13×10 크기의 격자를 생성합니다. 소수의 if 명령문을 사용해 특정 기둥들에 대해 skip=true 값을 지정함으로써 해당 기둥들이 구조물에 추가되지 않도록 합니다. 이렇게 생성된 기둥이 없는 선형 경로가 광자결정 내에 결함 채널을 형성하게 됩니다. 본 예제에서는 이 결함 경로가 U자 형태를 이루어 ??에 나타난 광자결정 광도파로가 만들어집니다.
시뮬레이션을 다시 실행한 뒤 lam_norm.csv을 다시 열어보십시오. 이제 도파관의 투과 스펙트럼(??)에는 단일한 넓은 대역이 아닌 여러 개의 좁은 투과 피크들이 나타납니다. 이 피크들은 광자밴드갭 내에 존재하는 결함 채널에 의해 지원되는 유도 모드에 대응합니다. 해당 파장대의 빛은 도파관 내에 갇혀서 굴곡부를 따라 원활히 전파되는 반면, 유도 모드에 해당하지 않는 파장대의 빛은 주변 광자결정 구조에 의해 차단됩니다.
축하합니다! 사용자는 광자결정에 대한 FDTD 시뮬레이션을 수행하고 그 투과 스펙트럼을 측정했으며, 격자 구조 변화에 따른 광자밴드갭의 이동 양상을 살펴보았습니다. 또한 격자 내에 결함을 도입함으로써 실제로 작동하는 광자결정 도파관도 제작해냈습니다.
8. FDTD 시뮬레이션의 출력 결과
각각의 FDTD 시뮬레이션 실행 결과로는 광학적 특성의 다양한 측면을 나타내는 다수의 출력 파일이 생성됩니다. 여기에는 전기장 분포의 시간별 스냅샷, 각 검출기에 의해 기록된 스펙트럼, 그리고 소자의 기하학적 구조 정보 등이 포함됩니다. 이러한 파일들은 대개 일반적인 CSV 형식으로, OghmaNano에 내장된 뷰어에서 직접 열어볼 수 있으며 외부 프로그램(예: Excel 또는 Python)을 통해서도 처리가 가능합니다. 본 광자결정 연구에서 가장 중요한 출력 결과들은 아래 표 1에 요약되어 있습니다.
| 파일 이름 | 설명 |
|---|---|
| detector0/lam_E.csv | 입력 스펙트럼 |E|2과 파장 간의 관계 (보라색 검출기) |
| detector1/lam_E.csv | 파장에 따른 출력 스펙트럼 |E|2 값 (녹색 검출기) |
| detectorN/lam_norm.csv | 파장에 따른 투과도 |Eout|2/|Ein|2 |
| 스냅샷/ | 전기장의 시간별 스냅샷 예시(Ey.csv); ?? 참조 |
| device.csv | 3차원 소자/기하학 모델 |
| escape.csv | 시뮬레이션 영역에서 빠져나가는 에너지 |
| power.dat | 시간에 따른 전계의 세기 |
| conv.dat | 시간영역유한차분법(FDTD) 솔버의 수렴성 |
| gui_config.json | 저장된 뷰/플롯 설정 내용은 ??을 참조하십시오. |