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

광자결정 튜토리얼: 광자결정 및 광도파로 시뮬레이션하기

Scanning electron microscope style image of a two-dimensional photonic crystal consisting of a periodic array of air holes etched into a dielectric slab, illustrating the type of structure commonly used to control and guide light
광자결정의 주사전자현미경(SEM) 형태 이미지입니다. 주기적으로 배열된 구멍들로 인해 공간적으로 변화하는 굴절률이 형성되며, 이를 통해 빛을 가두거나 안내하고 조작할 수 있습니다. 광자결정은 도파관, 공진기, 광학 필터를 비롯한 다양한 집적 광자 소자의 기초가 됩니다.

1. 광자결정과 광도파로에 대한 소개

광자결정이란 빛의 파장 규모에서 굴절률이 주기적으로 변하는 광학 구조물을 말한다. 대표적인 예로는 ??에 나타난 바와 같이 규칙적인 공기 구멍 배열이 형성된 유전체 판이 있다. 이러한 주기적 구조는 광자밴드갭을 생성하는데, 이는 빛이 결정 내부로 전파될 수 없는 파장 영역을 의미한다. 이 현상은 반도체에서 나타나는 전자 밴드갭과 유사하나, 전자 대신 광자에 영향을 미친다는 점에서 차이가 있다. 격자 내에 일정한 결함, 예컨대 일렬의 구멍을 제거하는 방식으로 광자밴드갭 내에 광학 모드를 생성할 수 있다. 이를 통해 빛은 결함 영역 내에서 제한되며, 심지어 손실이 매우 적은 상태로 급격한 굴곡 구간을 따라도 전파될 수 있다. 이러한 광자결정 도파관은 광학 인터커넥트, 공진기, 필터, 센서 및 파장 선택형 소자 등 다양한 집적 광학 소자의 기반이 된다.

이 튜토리얼에서는 OghmaNano의 유한차분 시간영역법(FDTD) 솔버를 활용하여 2차원 광자결정 구조를 생성하고 시뮬레이션하게 됩니다. 스텝 편집기를 이용해 주기적 격자를 생성하고 FDTD 광원을 통해 구조 내에 빛을 입사시킨 뒤, 전자기장 분포를 시각화하며 FDTD 검출기 및 스펙트럼 추출 기능을 사용해 파장별 투과스펙트럼을 계산하는 방법을 배우게 됩니다. 격자 형상을 변경하면 광자밴드갭이 어떻게 이동하는지 확인할 수 있으며, 결함을 도입하면 광자결정 도파관이 형성되어 구조 내에서 빛이 어떻게 전파되는지도 관찰할 수 있습니다.

광자결정은 칩 상에서 차지하는 면적이 매우 작으면서도 빛의 전파 경로를 정밀하게 제어할 수 있기 때문에 현대 집적 광학 기술에 널리 활용되고 있습니다. 따라서 광자밴드갭이 어떻게 형성되는지와 결함을 이용해 광학 모드를 어떻게 조작할 수 있는지를 이해하는 것은 고성능 광학 소자 설계를 위한 필수적인 과정입니다.

2. 새로운 광자결정 시뮬레이션 생성하기

Windows 시작 메뉴에서 OghmaNano를 실행한 뒤 ‘새 시뮬레이션’을 클릭하면 ??에 표시된 이용 가능한 소자 유형 목록이 나타납니다.

‘새 시뮬레이션’ 창(??)에서 ‘FDTD 예제’를 더블클릭하십시오. 그러면 ??에 나타나는 광학/FDTD 템플릿 목록이 열리며, 여기에는 파브리-페로 공진기, 진공 공간, 집적 광학 링 공진기, 마하-첸더 변조기 및 여러 도파관이 포함됩니다. 본 튜토리얼에서는 ‘광자결정’ 항목을 더블클릭하십시오. 이후 메시지가 나타나면 쓰기 권한이 있는 폴더에 시뮬레이션 파일을 저장하시기 바랍니다.

💡 팁: 최적의 성능을 얻으려면 C:\과 같은 로컬 드라이브에 시뮬레이션 데이터를 저장하십시오. 네트워크 드라이브, USB 또는 클라우드 폴더(예: OneDrive)에 저장된 시뮬레이션은 많은 읽기/쓰기 작업으로 인해 느리게 실행될 수 있습니다.

OghmaNano new simulation window listing device categories such as organic solar cells, OLEDs, OFETs, perovskites, ray tracing, and FDTD examples
새 시뮬레이션 창에는 다양한 소자 유형 및 예제 프로젝트들이 포함된 라이브러리가 제공됩니다. 원하는 아이콘을 더블클릭하면 미리 설정된 시뮬레이션이 열립니다. 광자결정 관련 시뮬레이션의 경우, FDTD 예제 아이콘을 더블클릭하면 관련 광학 템플릿들이 표시됩니다.
OghmaNano FDTD examples list showing Fabry-Perot cavity, free space, integrated photonics ring resonator, photonic crystal, photonic-xtal trumpet, silicon Mach-Zehnder modulator, and tapered 975 nm waveguide
FDTD 예제 폴더에는 즉시 실행 가능한 광학 구조물들이 포함되어 있습니다. 각 항목을 선택하면 미리 설정된 FDTD 시뮬레이션이 열리며 이를 사용자가 수정할 수 있습니다. 이 튜토리얼에서 활용되는 구조물을 불러오려면 ‘광자결정’ 항목을 더블클릭하십시오.

3. 시뮬레이션 실행하기

저장이 완료되면 메인 창이 열립니다(?? 참조). 이 장치는 두 개의 얇은 검출기 평면 사이에 배치된 유전체 기둥들(빨간색 튜브 형태)로 구성된 배열입니다. 광원 근처에는 보라색 입력 검출기가 있고, 반대편에는 녹색 출력 검출기가 위치합니다. xy/yz/xz 버튼을 이용해 시각화 방향을 조정할 수 있습니다. ‘시뮬레이션 실행’ 버튼(파란색 재생 아이콘)을 클릭하거나 F9 키를 누르면 시뮬레이션이 시작됩니다. 사양이 낮은 컴퓨터에서는 FDTD 계산에 다소 시간이 소요될 수 있습니다.

시뮬레이션이 완료되면 Output 탭(??)을 열어 솔버가 생성한 파일들을 확인하십시오. 원하는 파일을 더블클릭하면 해당 뷰어에서 파일이 열립니다.

Main OghmaNano interface showing the Run Simulation button and a 3D view of a photonic crystal made from a square array of red dielectric pillars, with purple and green detector planes.
주요 내용 오그마나노 광자결정을 불러온 후의 인터페이스입니다. 3D 패널에는 유전체 기둥 배열과 입사광 감지용(보라색) 및 투과광 감지용(녹색) 검출기 면이 표시됩니다. 버튼을 누르세요. 시뮬레이션 실행 버튼 (또는 F9)를 클릭하여 FDTD 계산을 시작합니다.
OghmaNano Output tab while the FDTD simulation is running, showing progress messages, solver initialization and time-step information.
시뮬레이션이 실행되는 동안 Output 탭에는 FDTD 솔버로부터의 진행 정보가 표시되는데, 여기에는 소자 초기화 과정, 검출기 설정 및 현재 시뮬레이션 시간 단계가 포함됩니다.
OghmaNano Output tab displaying the simulation working directory with result files such as detector0, detector1, snapshots, power.dat, and device.csv.
출력 탭에서는 시뮬레이션의 작업 디렉터리가 표시됩니다. 주요 항목으로는 필드의 시간별 스냅샷이 저장된 snapshots 폴더와 입력 및 출력 검출기에 의해 기록된 스펙트럼 데이터가 저장된 detector0 및 detector1 폴더가 있습니다. 파일이나 폴더를 더블클릭하면 해당 항목이 열립니다.

4. 전기장의 전파 현상을 관찰하십시오

snapshots 폴더를 더블클릭하여 스냅샷 뷰어(??)를 열어보세요. 표시된 파일은 Ey.csv로서 전기장의 한 성분을 나타내며, 색상과 높이가 각각 V/m 단위의 전기장 세기를 표현하는 컬러 와이어프레임 표면 형태로 나타납니다.

플롯 아래에 있는 슬라이더를 조작하여 시간을 단계별로 진행시켜 보세요. 그러면 좌측의 광원에서 방출된 펄스가 광자결정에 도달하여 일부는 산란되고 일부는 투과하는 모습을 관찰할 수 있습니다. 전기장의 변화 양상을 살펴보는 것은 시뮬레이션 결과가 예상대로 나오고 있는지를 확인하는 가장 직관적인 방법이며, 이를 통해 수치 결과에 대한 신뢰도를 판단할 수 있습니다.

OghmaNano simulation snapshot viewer showing the Ey component of the electric field as a coloured wireframe surface, with a time slider beneath the plot.
스냅샷 뷰어에서 Ey.csv을 와이어프레임 형태로 표시합니다.
Early-time snapshot of the electric field interacting with the photonic crystal.
광자결정 내부로 펄스가 진입하는 초기 시점의 스냅샷입니다.
Later-time snapshot showing the electric field after propagating through the photonic crystal.
시간이 지난 뒤의 스냅샷으로, 광자결정 내부를 통과하여 전파된 전자기장의 모습을 보여줍니다.

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 직후에 나타나는 뚜렷한 피크는 광자결정이 투과시키는 파장대를 나타내며, 그 양측에 위치한 전파가 억제된 영역들은 광자밴드갭으로서 전자기파의 전파이 불가능한 구간입니다. 다시 말해, 이 단일 곡선 하나만으로도 광자결정이 투과시키는 파장과 밴드갭의 위치를 모두 파악할 수 있습니다.

Input detector spectrum lam_E.csv showing |E| squared versus wavelength on a linear axis, with a broad peak near 900 nm.
입력 감지기(detector0/lam_E.csv): 광자결정에 입사하는 광대역 펄스로서 파장 약 900 nm 부근에서 최댓값을 가집니다. 이 값이 출력값과 비교되는 기준값입니다.
Output detector spectrum lam_E.csv showing |E| squared versus wavelength on a logarithmic axis, strongly attenuated across most of the band.
출력 감지기(detector1/lam_E.csv)에서 측정된 값을 로그 스케일로 나타낸 결과입니다. 대부분의 파장 영역은 광자밴드갭 내에 위치하므로 수십 배에서 수백 배에 달하는 수준으로 억제되고 있습니다.
Transmission spectrum, the ratio of output to input field intensity, showing a single sharp peak just above 1000 nm.
lam_norm.csv에서 얻은 투과스펙트럼 |EOutput|2/|EInput|2 값입니다. 1000 nm 직전에 나타나는 피크는 광자결정이 투과시키는 파장들을 나타내며, 반면에 억제된 파장들은 광자밴드갭 내에 위치합니다.

6. 유전체 기둥의 반지름 조절

광자밴드갭의 위치는 격자의 기하학적 구조에 의해 결정됩니다. 이를 확인하려면 디바이스 뷰에서 광자결정을 마우스 오른쪽 버튼으로 클릭한 뒤 메뉴에서 메시 편집기(??)를 선택하십시오. 메시 편집기(??)를 이용하면 결정을 구성하는 반복 요소의 형상을 변경할 수 있는데, 여기서는 반지름 100 nm, 높이 400 nm인 원통형 기둥이 사용되며 원하는 수의 링과 세그먼트를 지정하여 메시의 세밀도를 조절할 수 있습니다.

Right-click context menu on the photonic crystal with the Mesh editor option highlighted.
광자결정을 마우스 오른쪽 버튼으로 클릭하면 컨텍스트 메뉴가 나타납니다. 메뉴에서 메시 편집기를 선택하여 반복되는 객체의 기하학적 형상을 변경할 수 있습니다.
Mesh editor showing a Tube primitive with radius 100 nm, height 400 nm, 10 rings and 32 segments.
튜브 프리미티브가 선택된 상태의 메쉬 편집기입니다. 반지름 필드(현재 값은 100 nm)는 배열 내 모든 유전체 기둥의 두께를 결정합니다.
Device view of the photonic crystal after increasing the pillar radius to 150 nm, showing visibly fatter pillars.
기둥 반지름을 150 nm로 증가시킨 후의 동일한 광자결정 구조입니다. 이 경우 기둥들이 현저히 두꺼워졌으며 격자 내에 더 많은 양의 유전체가 포함되게 되었습니다.

기둥의 반지름을 150 nm로 변경합니다. 디바이스 뷰에서 기둥들이 눈에 띄게 두꺼워집니다(??). 시뮬레이션을 다시 실행한 뒤 lam_norm.csv을 열어 업데이트된 투과 스펙트럼을 생성합니다(??).

이어서 기둥 반지름을 120 nm로 설정한 뒤 시뮬레이션을 다시 수행합니다. 그 결과 얻어진 투과 스펙트럼(??)은 약 1200 nm 부근에서 피크를 보이며, 이는 기존의 100 nm 결과와 150 nm 결과 사이의 값입니다. 명확한 경향성이 나타나는데, 기둥 반지름을 키울수록 광자밴드갭이 장파장 쪽으로 이동합니다. 단 하나의 기하학적 변수만 조정함으로써 광자결정의 밴드갭 위치 및 투과되는 파장 범위를 자유롭게 조절할 수 있습니다.

Transmission spectrum for 150 nm pillars, with the main transmission feature shifted to roughly 1400 to 1500 nm.
150 nm 크기의 유전체 기둥을 사용한 경우 투과 스펙트럼의 피크가 약 1400~1500 nm 영역으로 이동했으며, 이는 100 nm 구조에 비해 상당한 적색 편이 현상이 나타난 결과입니다.
Transmission spectrum for 120 nm pillars, with the main peak near 1200 nm.
120nm 크기의 유전체 기둥을 사용한 경우의 투과 특성을 살펴보면, 1200nm 부근에 나타나는 투과 피크는 100nm 및 150nm 기둥을 사용한 경우의 결과 사이에 위치합니다. 이는 기둥 반지름이 증가함에 따라 광자밴드가 매끄럽게 이동함을 보여줍니다.

7. 광자결정 도파관 제작하기

지금까지는 격자가 자동으로 생성되었습니다. 그 생성 과정을 확인하고 직접 제어하려면 광자결정을 마우스 오른쪽 버튼으로 클릭한 뒤 ‘객체 편집’(??)을 선택하십시오. 객체 편집기(??)에는 해당 객체에 관한 모든 정보가 포함되어 있습니다: 위치, 튜브 형태, 광학적 재료(여기서는 실리콘) 등이며, ‘단계’ 행에는 격자 형태를 생성하는 규칙도 명시되어 있습니다. 이 행의 ‘…’ 버튼을 클릭하면 단계 편집기가 열리며, 여기서 광자결정 격자나 반복 구조, 스크립트로 정의된 기하학적 형태를 생성 및 수정할 수 있습니다.

Right-click context menu on the photonic crystal with the Edit object option highlighted.
광자결정을 마우스 오른쪽 버튼으로 클릭한 뒤 ‘객체 편집’을 선택하면 전체 객체 편집기가 열립니다.
Object editor showing object type, offset, the Steps row labelled custom crystal lattice 10x1x10, colour, tube shape, and silicon optical material.
객체 편집기입니다. ‘단계’ 행에는 “Custom crystal lattice 10x1x10”이라는 문구가 표시되는데, 이는 튜브를 반복 배치하여 광자결정 구조를 생성하는 설정값입니다. 해당 설정을 수정하려면 행 오른쪽에 있는 … 버튼을 클릭하십시오.
Crystal editor showing lattice vectors a1, a2, a3, an origin, and a number of objects of 10 by 1 by 10.
단계 편집기의 결정 탭입니다. 격자 벡터인 a1, a2, a3와 객체 개수를 통해 광자결정을 생성하는 데 사용되는 삼각형 격자가 정의됩니다.

‘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회 반복됩니다.

Lua script editor generating the photonic crystal lattice with clear_points and add_point inside two nested for loops, with conditions that skip selected pillars.
Lua 스크립트 부분입니다. 일반적인 격자 구조 대신 코드를 통해 기둥 위치가 생성되므로 어떠한 배열도 구현할 수 있습니다. 핵심 명령어는 clear_points()와 add_point()이며 모든 좌표값은 미터 단위로 지정됩니다.
Device view of a photonic crystal with a U-shaped channel of missing pillars forming a photonic crystal waveguide.
광자결정 도파관의 경우, 제거된 유전체 기둥들이 U자형 결함 채널을 형성한다. 광자밴드갭 내에 속하는 파장을 가진 빛은 이 결함 내에 갇혀서 구부러진 경로를 따라 전파된다.
Transmission spectrum of the photonic crystal waveguide showing several sharp guided-mode peaks.
해당 도파관에 대한 투과율 |EOutput|2/|EInput|2 값입니다. 여러 개의 뾰족한 피크들은 U자형 결함 채널에서 발생하는 유도 모드에 해당하며, 이 파장대의 빛만이 모서리 주위로 안내되고 그 외의 스펙트럼은 차단됩니다.

규칙적인 격자는 가장 단순한 경우이지만 유일한 가능성은 아닙니다. 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에 요약되어 있습니다.

Table 1: Files produced by the photonic crystal FDTD simulation
파일 이름 설명
detector0/lam_E.csv입력 스펙트럼 |E|2과 파장 간의 관계 (보라색 검출기)
detector1/lam_E.csv파장에 따른 출력 스펙트럼 |E|2 값 (녹색 검출기)
detectorN/lam_norm.csv파장에 따른 투과도 |Eout|2/|Ein|2
스냅샷/전기장의 시간별 스냅샷 예시(Ey.csv); ?? 참조
device.csv3차원 소자/기하학 모델
escape.csv시뮬레이션 영역에서 빠져나가는 에너지
power.dat시간에 따른 전계의 세기
conv.dat시간영역유한차분법(FDTD) 솔버의 수렴성
gui_config.json저장된 뷰/플롯 설정 내용은 ??을 참조하십시오.