파브리-페로 공진기 시뮬레이션(FDTD): 1차원 광공동 시뮬레이션 튜토리얼
1. 서론
파브리-페로 공진기는 광학 및 광자공학 분야에서 가장 중요한 공진 구조물 중 하나입니다. 가장 단순한 형태로는 두 개의 반사면으로 둘러싸인 영역으로서, 빛이 그 사이에서 반복적으로 반사되며 정상파 공진이 형성됩니다. 기계적 측면에서는 ??에 나타난 진동하는 기타 현을 예로 들 수 있습니다. 고정된 현에서는 특정 파장 및 주파수(즉, 음계)에 해당하는 진동 패턴만 허용되는 것처럼, 파브리-페로 공진기 내부에서도 오직 특정 광학 모드들만이 존재할 수 있습니다.
??에서 이 원리의 광학적 구현 예시를 볼 수 있다. 빛은 두 표면 사이에서 반복적으로 반사되며, 이러한 여러 번의 반사 경로에 의해 파동들이 서로 간섭한다. 왕복 경로에 따른 위상차가 적절할 경우 파동들은 일관되게 합쳐져 파브리-페로 공동 내에 공진 모드가 형성된다. 이러한 기본 원리는 광필터, 유전체 미러, 간섭계 및 레이저 공동을 포함한 다양한 광자 소자들의 작동 기반이 된다.
파브리-페로 공진기 내에서는 오직 공동의 크기에 맞는 파장을 갖는 광모드만이 존재할 수 있다. 입사각이 0도일 때 이 조건은 다음과 같은 공진 조건을 만족할 때 성립된다.
\(2nL = m\lambda\)
여기서 \(n\)은 공동 영역의 굴절률이며, \(L\)는 공동 길이, \(\lambda\)는 파장, 그리고 \(m\)는 정수인 모드 번호입니다. 그림에서는 세 가지 모드가 나타나는데, 기본 모드(m = 1, 연한 파란색), 제2 고조파(m = 2, 파란색), 그리고 제3 고조파(m = 3, 짙은 파란색)입니다. 이는 해당 공동이 임의의 연속적인 파장값이 아닌, 이산적인 정지파 해들만을 지원함을 의미합니다.
동일하게, 허용되는 파장들은 다음과 같이 표현될 수 있다
\(\lambda_m = \dfrac{2nL}{m}\)
고차 모드들은 각각 서로 다른 \(m\) 정수값에 대응하며, 이에 따라 서로 다른 공진 전자기장 패턴이 형성된다. 이는 정상파 모델에서 예측된 바와 정확히 일치하는 현상이며, 바로 이러한 이유로 파브리-페로 공진기는 광학 공진기, 파장 선택 소자 및 레이저 공동으로 널리 활용되고 있다.
이 튜토리얼에서는 유한차분 시간영역법(FDTD)을 활용하여 간단한 1차원 파브리-페로 공동을 시뮬레이션합니다. 해당 시뮬레이션 모델에는 광원, 두 개의 반사 영역, 그 사이에 위치한 공동, 그리고 광학적 반응을 기록하는 검출기 평면(??)이 포함됩니다. 이 모델을 실행하면 광대역 광펄스가 공동을 여기시키는 과정, 정상파가 형성되는 양상, 그리고 투과 및 반사 스펙트럼을 통해 공동의 공진 모드가 어떻게 드러나는지를 확인할 수 있습니다.
2. 새로운 시뮬레이션 생성하기
새로운 시뮬레이션 창을 열고 FDTD 예제 카테고리(??)를 선택합니다. 그 다음 파브리-페로 공동 예제(??)를 고르면 ??에 나타난 메인 인터페이스가 로드됩니다.
시뮬레이션을 불러온 뒤 ??에 나타난 바와 같이 메인 창이 표시됩니다. 구조물은 ‘디바이스 구조’ 탭 내의 3차원 뷰에 나타나며, 이 뷰에서는 파브리-페로 공진기 시뮬레이션에 필요한 모든 주요 구성 요소들이 보여집니다.
왼쪽에 위치한 녹색 화살표들은 광펄스가 주입되는 FDTD 광원을 나타냅니다. 구조물을 관통하는 얇은 보라색 선은 FDTD 격자입니다. 본 예시에서는 시뮬레이션이 사실상 1차원적이므로 해당 격자는 공동을 통과하는 단일 선 형태로 나타납니다.
광원의 바로 오른쪽에 위치한 보라색 평면은 입사 및 반사된 전자기장을 기록하는 입력 검출기입니다. 구조물 중앙부에는 파브리-페로 공진기를 형성하는 두 개의 반사 영역이 존재합니다. 오른쪽 끝에 위치한 녹색 평면은 공동을 통과한 후 전달된 빛을 측정하는 출력 검출기입니다. 이 검출기들은 전파의 전파 과정에 영향을 주지 않으며, 단지 시간에 따라 변화하는 전자기장을 기록할 뿐입니다.
곧 시뮬레이션을 실행하여 빛이 구조물을 통과하며 공진기와 어떻게 상호작용하는지 관찰하게 됩니다. 파동이 어느 정도 반사되고, 일부는 공진기 내부으로 들어가서 두 반사면 사이에서 형성되는 과정을 보게 될 것입니다. 또한 이러한 현상이 구조물 양측에 위치한 두 검출기에 어떻게 기록되는지도 확인할 수 있습니다.
3. 시뮬레이션 실행하기
시뮬레이션을 저장하고 구조물을 살펴본 뒤, 계산을 시작하려면 실행(▶) 버튼을 클릭하십시오. 시뮬레이션이 진행되는 동안 ??에 표시된 터미널 탭에서 진행 상황을 모니터링할 수 있습니다. 여기에는 시간 단계, 파장 범위, 사용 중인 백엔드 정보 등이 나타납니다. 계산 초기 단계에서는 Searching for OpenCL devices이라는 문구가 표시됩니다. 이는 시뮬레이션 속도 향상을 위해 활용 가능한 하드웨어 가속 장치들을 의미합니다. 예시 그림에서처럼 적합한 OpenCL 장치가 감지되면 OghmaNano는 이를 자동으로 활용하여 CPU 대신 GPU에서 시뮬레이션을 수행합니다.
시뮬레이션이 완료되면 ??에 표시된 출력 탭으로 전환하십시오. 이곳에서 시뮬레이션 실행 중 생성된 데이터를 확인할 수 있습니다. 본 튜토리얼에서 주요 출력 데이터는 두 검출기에 의해 기록된 신호를 담고 있는 detector_0 및 detector_1입니다. 또한 device을 열어 3차원 기하학적 구조를 살펴보거나 snapshots/ 디렉터리에서 전자기장이 시간에 따라 어떻게 변화하는지 확인할 수도 있습니다. 이 시뮬레이션은 매우 빠르게 실행되는 점에 주목하시기 바랍니다. 1차원 문제이므로 일반적으로 실행 시간은 단 몇 초에 불과합니다. 만약 예상보다 훨씬 오랜 시간이 소요된다면, 앞서 언급된 내용대로 시뮬레이션 데이터를 속도가 빠른 로컬 드라이브에 저장하는 방법을 참고하시기 바랍니다.
5. 전자기장 스냅샷 확인하기
[출력] 탭에서 snapshots/ 출력 디렉터리를 열고 더블클릭하여 스냅샷 뷰어를 실행하십시오. 이를 통해 시간에 따른 시뮬레이션 결과를 확인할 수 있습니다. + 버튼을 한 번 클릭하여 데이터셋을 추가한 뒤 Ey를 선택하십시오. 본 시뮬레이션에서는 전자기장이 y방향으로 여기되므로 이 성분을 통해 파동 전파 현상을 가장 직접적으로 관찰할 수 있습니다. 이후 슬라이더 바를 이용해 시간을 단계별로 조절함으로써 전자기장의 변화 양상을 살펴볼 수 있습니다. ??부터 ??까지 세 개의 대표적인 스냅샷이 제시되어 있습니다.
초기 시점(왼쪽 패널)에서는 초기의 광대역 광펄스가 구조물 내부로 진입하는 모습을 볼 수 있습니다. 이때 전자기장은 공간적으로 국소화된 상태이며, 주입된 자극에 해당하는 날카로운 전면부가 형성됩니다. 시간이 경과하면서(중간 패널) 해당 광펄스는 공동 영역과 상호작용하게 됩니다. 그 결과 파형은 보다 구조화되고 공간적으로 확장되는 양상을 보이는데, 이는 여러 주파수 성분들이 각기 다른 위상으로 전파되고 있음을 의미합니다. 이러한 현상은 구조물 내부에서 발생하는 부분적 반사 및 간섭 현상의 특징입니다.
시간이 지남에 따라 (오른쪽 패널 참조), 전자기장은 더 이상 단일 이동형 펄스의 형태를 보이지 않는다. 대신 서로 다른 공간 주파수를 갖는 여러 파동들의 중첩 형태로 나타난다. 이러한 현상은 공동 구조가 특정 파장의 빛을 선택적으로 증폭시키는 반면 다른 파장은 반사하거나 투과시키기 때문이다. 그 결과 단순한 정상파가 아닌 복잡한 간섭 패턴이 형성된다. 특히 이번 시뮬레이션에서는 광대역 펄스를 사용해 시간영역에서 관측하였으므로, 공동 공진 현상이 즉각적으로 깨끗한 정상파 모드로 나타나지는 않는다. 대신 여러 번의 반사와 간섭 과정을 거쳐 공동 조건을 만족하는 다양한 주파수 성분들이 점진적으로 형성되며 공진 상태로 진화하는 과정이 관찰된다.
6. 검출기 출력값 확인하기
Output 탭으로 돌아가면(??) Detector0와 Detector1이라는 두 개의 검출기 폴더가 작은 CCD 센서 아이콘 형태로 나타납니다. Detector0는 공동의 광원 측에 위치하며, Detector1은 빛이 구조물을 통과한 후 반대편에 위치합니다. Detector0를 더블클릭하면 ??에 나타난 내용을 확인할 수 있습니다. 해당 디렉터리에는 lam_E.csv과 power.csv라는 두 개의 파일이 존재합니다. 우선 시간에 따른 검출기를 통과하는 전력값을 보여주는 power.csv 파일을 열어보세요. 그 결과는 ??에 표시됩니다. 이 값이 바로 입력측 검출기에서 기록된 전력값입니다.
이제 Detector1에 대해서도 동일한 과정을 반복할 수 있습니다. 해당 폴더에서 power.csv을 열면 ??에 나타난 결과를 확인할 수 있습니다. 이 경우 전달된 신호는 광펄스가 공동을 통과하는 데 소요된 시간만큼의 짧은 지연 후에 나타납니다. 입력측 신호와 비교했을 때 전달된 펄스는 훨씬 더 매끄럽고 규칙적인 형태를 보입니다. 이는 공동이 특정 좁은 주파수 대역의 성분만을 우선적으로 전달하고 나머지는 반사시키기 때문입니다. 그 결과 출력 신호는 원래의 광대역 펄스가 필터링된 형태가 됩니다.
lam_E.csv 및 power.csv가 포함되어 있습니다.
이제 시간영역 신호에서 주파수영역 응답으로 넘어가보겠습니다. 앞서 제시된 신호들을 푸리에 변환하면 각 검출기를 통과하는 빛의 스펙트럼 성분을 얻을 수 있습니다. 주파수영역 데이터는 Detector0 및 Detector1 내부에 있는 lam_E.csv 파일에서 확인할 수 있습니다.
입력 스펙트럼: 입력측 스펙트럼은 ??에 나타나 있습니다. 이는 공진기의 광원 측에 위치한 검출기에서 기록된 스펙트럼입니다. 주된 특징은 400 nm 부근에 위치한 강한 피크로, 이는 주입된 광펄스의 주요 스펙트럼 성분에 해당합니다. 해당 검출기는 공진기 앞쪽에 배치되어 있으므로 기록된 스펙트럼은 주로 입사 전자기장을 나타내지만 구조물에서 반사된 빛의 영향도 일부 포함될 수 있습니다. 주 피크에서 벗어난 영역에서는 신호 강도가 약해지므로 이 부분에 나타나는 미세한 특징들을 과도하게 해석해서는 안 됩니다.
출력 스펙트럼: ??에 출력측 스펙트럼이 나타나 있습니다. 입력 스펙트럼과 마찬가지로 400 nm 부근에 강한 피크가 존재하는데, 이는 시스템의 주요 여기 현상을 반영합니다. 그러나 이 피크의 장파장 측에서는 500 nm 부근에 보다 작은 어깨 형태의 피크가 관찰됩니다. 이 피크는 파브리-페로 공동이 특정 파장의 빛을 선호적으로 투과시키는 특성에 기인합니다. 광원의 파장이 이 공진 조건과 일치하지 않기 때문에 공동 관련 피크는 주요 피크가 아닌 상대적으로 약한 2차적 성분으로만 나타나게 됩니다.
입력/출력 비율: 위에 제시된 스펙트럼들은 광원의 스펙트럼 특성에 의해 지배되므로 공진기의 효과를 명확히 파악하기 어렵습니다. 공진기의 반응을 보다 명확히 확인하기 위해 광원 스펙트럼의 영향을 최대한 제거해야 합니다. 이를 위해 출력 신호를 입력 신호로 나누어 입사장에 대한 투과장을 정규화합니다. 전력은 \(|E|^2\)에 비례하므로 이 과정을 통해 구조물의 대략적인 투과 함수를 얻게 되며 그 값은 \(T(\lambda) = \frac{|E_{\mathrm{output}}(\lambda)|^2}{|E_{\mathrm{input}}(\lambda)|^2}\)가 됩니다. 최종 결과는 ??에 나타나 있습니다.
이 방법으로는 광원의 영향을 완벽하게 제거할 수는 없으나 그 효과를 상당히 줄일 수 있다. 그 결과 공동과 관련된 특성들이 훨씬 뚜렷하게 나타난다. 특히 원본 출력 스펙트럼에서는 약한 어깨 형태로만 나타났던 500 nm 부근의 공진 현상이 정규화된 결과에서는 명확하게 강화된다. 다만 입력 신호가 매우 미미한 경우 비율값이 커지면서 노이즈가 발생할 수 있다는 점에 유의해야 한다. 이러한 현상들은 실제 물리적 공진이 아니라 아주 작은 수치로 나누어짐에 따라 생기는 결과이다. 보다 깨끗한 투과 스펙트럼을 얻기 위해 공동이 없는 별도의 기준 시뮬레이션을 정규화에 활용할 수도 있으나, 여기서 주요 효과를 관찰하는 데에는 반드시 필요하지는 않다.
7. 공동의 치수 조절 실험
파브리-페로 공동의 특성이 구조에 따라 어떻게 달라지는지 살펴보기 위해 ??에 나타난 바와 같이 공동의 미러 중 하나를 마우스 오른쪽 클릭한 뒤 ‘Edit object’를 선택한다. 그러면 객체 편집기가 열리며 ??에서 보듯이 공동의 기하학적 구조를 조정할 수 있다. 본 시뮬레이션에서는 두 개의 두께가 각각 10 nm인 얇은 미러가 250 nm 간격으로 배치되어 공동이 형성된다. OghmaNano는 두 개의 독립된 객체를 정의하는 대신 복제 기능을 활용한다. 즉, 하나의 객체만 정의한 뒤 원하는 방향으로 반복시키는 방식이다. 이 경우 미러가 z축 방향으로 복제된다. 이때 ‘Number of objects’ 필드를 통해 z축 방향으로 생성될 객체의 개수를 2로 설정한다. ‘Step’ 매개변수는 연속된 객체들 간의 간격을 결정하는데, 여기서는 z축 방향의 간격이 260 nm로 지정된다. 이 값은 공동 간격과 첫 번째 미러의 두께를 모두 포함한다. 각 미러의 두께가 10 nm이므로 두 미러 사이의 실제 간격은 \(260 - 10 = 250\) nm가 되며, 이 값이 바로 공동의 길이가 된다. 이러한 구조를 통해 단 하나의 객체만 편집함으로써 두 미러를 일관되게 제어할 수 있다.
To change the cavity length, modify the z-step from 260 nm to 360 nm in the object editor. This increases the mirror-to-mirror spacing from 250 nm to 350 nm. After applying this change, the structure should appear as shown in ??, where the cavity region is visibly larger. The resonant wavelengths of a Fabry–Pérot cavity are determined by the round-trip phase condition, \[ 2 n L = m \lambda, \] where \(n\) is the refractive index inside the cavity, \(L\) is the cavity length, and \(m\) is an integer mode number. Rearranging this gives \[ \lambda = \frac{2 n L}{m}. \]
기존 구조에서 \(L = 250\)나노미터 및 \(n \approx 1\) 조건 하에 기본 모드(\(m=1\))는 \[ \lambda \approx 2 \times 1 \times 250 = 500\ \text{nm}. \]에서 발생합니다. 공동 길이를 \(L = 350\)나노미터로 늘린 후에는 해당 파장이 \[ \lambda \approx 2 \times 1 \times 350 = 700\ \text{nm}. \]으로 변하게 됩니다. 이는 주요 공진 현상에서 예상되는 파장 이동과 일치합니다.
이제 시뮬레이션을 다시 실행한 뒤 Detector1에서 얻은 출력 스펙트럼을 확인하십시오. 그 결과는 ??에 나타나 있습니다. 기대했던 바와 같이 공동과 관련된 주요 피크가 약 500 nm 지점에서 약 700 nm 지점으로 이동한 것을 확인할 수 있습니다.
주요 공진 외에도 보다 약한 강도를 갖는 여러 모드들도 관찰할 수 있습니다. 이들은 파브리-페로 조건의 고차 해에 해당합니다(\(m = 2, 3, \dots\)). 예를 들어 \(m=2\)일 때 파장은 대략 \(\lambda = 2 n L / 2 = nL\)으로서 더 짧은 파장을 갖는 모드가 됩니다. 여기서 사용된 광원이 광대역 스펙트럼을 가지므로 여러 \(m\) 값에 해당하는 모드들이 약하게 여기될 수 있으며, 그 결과 스펙트럼상에 다수의 피크가 나타나게 됩니다. 다만 각 모드의 강도는 광원의 스펙트럼 구성과 얼마나 잘 일치하는지, 그리고 미러들을 통해 얼마나 효율적으로 결합되는지에 따라 결정됩니다.
9. 2차원으로의 확장
지금까지는 전자기장이 전파 방향으로만 변화하는 1차원 파브리-페로 공동에 대해 살펴보았습니다. 유한차분 시간영역법(FDTD)의 장점 중 하나는 이 방법을 자연스럽게 더 높은 차원으로 확장할 수 있다는 점입니다. 본 절에서는 시뮬레이션을 2차원으로 확장하여 전자기장의 거동이 어떻게 변화하는지 관찰합니다.
이를 위해 Optical 리본(??)을 열고 광학 메쉬 편집기를 실행합니다. 메쉬 편집기(??)에서 x 차원을 활성화하여 시뮬레이션이 x 및 z 방향의 변화까지 계산하도록 설정합니다. 해당 변경 사항을 적용한 뒤 편집기를 닫고 시뮬레이션을 다시 실행합니다.
추가적인 공간 차원을 활성화하면 계산 비용이 현저히 증가한다는 점에 유의해야 한다. 차원 수가 증가함에 따라 격자점의 개수와 전자기장 업데이트 횟수가 급격히 늘어나므로 실행 시간이 최대 10배까지 증가할 수 있다. 이러한 현상은 유한차분 시간영역법(FDTD)의 일반적인 특성으로, 물리적 현상의 현실성을 높이려면 그만큼 더 많은 계산 자원이 필요하다.
시뮬레이션이 완료된 후 snapshots/ 디렉터리를 열어보세요. 예시 결과는 ??–??에 나타나 있습니다. 슬라이더를 조작하면 시간을 단계별로 진행시켜 광펄스가 광원에서 방출되어 측면으로 퍼져나가고 공진기 내부에서 상호작용한 뒤 검출기에 도달하는 과정을 관찰할 수 있습니다.
1차원 경우와는 달리 파면은 더 이상 평면 형태를 유지하지 않는다. 대신 측면으로 퍼져나가면서 곡면 형태의 파면과 복잡한 간섭 패턴을 형성한다. 이로 인해 빛은 두 거울 사이를 직선으로만 이동하는 것이 아니라 공동 내에서 여러 경로를 따라 전파될 수 있다. 따라서 유효 광경로 길이는 단순히 기하학적 공동 길이와 일치하지 않게 된다.
1차원 경우에서 공진 조건은 다음과 같습니다.
\(2nL = m\lambda\)
하지만 2차원에서는 파동이 특정 각도로도 전파될 수 있다. 만약 광선이 법선에 대해 \(\theta\) 각도로 진행한다면, 그 경로 길이는 다음과 같이 된다.
\(L_{\mathrm{eff}} = \frac{L}{\cos\theta}\)
그리고 공진 조건은 다음과 같이 수정된다
\(2n \frac{L}{\cos\theta} = m\lambda\)
\(\cos\theta\) 값에 따라 파장 조건이 달라지기 때문입니다 < 1\), the effective cavity length is larger than the physical length. This shifts the resonance to longer wavelengths, which explains why the peak in the 2D simulation appears around 600 nm 단순한 1차원 모델에서 예측된 값과는 다름??).
이 결과는 중요한 시사점을 보여줍니다. 즉, 1차원 시뮬레이션으로는 파브리-페로 공진기의 기본 물리 현상을 파악할 수 있지만, 고차원 시뮬레이션에서는 각도에 따른 파동 전파, 회절 현상 및 공간적 모드 구조와 같은 추가적인 효과들이 나타납니다. 이러한 효과들은 빛이 거의 한 차원으로만 전파되지 않는 실제 광학 시스템을 이해하는 데 필수적입니다.