Technical Specification

MZI 광 변조기 & 오실로스코프 시뮬레이터 수식 명세서

단일 포켈스(Pockels) 공통 연산 엔진 및 SI 기본 단위 기반 통합 물리 로직 명세

1. 개요 (Overview)

본 문서는 Mach-Zehnder Interferometer (MZI) 전기광학 변조기 시뮬레이터(main.js)의 핵심 광학 물리 엔진과 UI 연동 로직을 정의합니다. 시뮬레이터 내부의 모든 재질 presets(LiNbO3, Polymer, Si/SiN 등)은 단일 포켈스 효과(Pockels Effect) 모델을 공유하며, 단위계 표준화 및 동적 $V_\pi$ 역산 로직을 통해 3D 웹 환경에서 정밀한 노드 간 위상 응답을 실시간으로 계산합니다.

2. 물리 모델 및 수식 (Physical Model & Formulas)

2.1 단위 정규화 (SI Unit Normalization)

연산 시작 전, 사용자가 UI 슬라이더로 입력한 제반 변수들을 SI 기본 단위로 통합 환산합니다.

2.2 1V 당 위상 변위 연산 엔진 (Common Phase Engine)

단일 포켈스 일차 광전 효과(Linear Electro-Optic Effect) 수식을 이용해 $1\text{V}$ 인가 시 도파로 코어에 발생하는 굴절률 변화량($\Delta n_{1\text{V}}$)과 단위 위상 변화량($\Delta\Phi_{1\text{V}}$)을 도출합니다.

Δn1V = 0.5 × ncore3 × r33 × γ × (1.0 / g)
ΔΦ1V = (2π / λ) × Δn1V × Lelec

2.3 $V_\pi$ 동적 역산 (Dynamic $V_\pi$ Calculation)

별도의 예외 수식을 적용하지 않고, 두 Arm 간의 위상차가 정확히 $\pi \, [\text{rad}]$가 되기 위해 필요한 스위칭 전압 $V_\pi$를 1V당 위상 변화 엔진으로부터 역산합니다.

Vπ = π / ΔΦ1V = (λ × g) / (ncore3 × r33 × γ × Lelec)

2.4 Push-Pull 위상 누적 및 간섭 (Phase Accumulation & Interference)

상/하단 Arm에 인가된 동적 전압($V_1, V_2$)에 따른 위상 변위를 양의 부호($+$)로 통합 적용하여, $V_2$ 전압 상승 시 전체 위상차($\Delta\Phi$)가 차감(감소)되도록 설계되었습니다.

upper = + (V1 × ΔΦ1V)
lower = + (V2 × ΔΦ1V)
ΔΦ = |dΦupper - dΦlower|
Pout = I0 × cos2(ΔΦ / 2)

3. 재질 프리셋 파라미터 (Material Presets)

재질 Preset 코어 굴절률 ($n_{\text{core}}$) Pockels 계수 ($r_{33}$) 특징
LiNbO3 2.21 $30 \times 10^{-12} \, \text{m/V}$ 전형적인 리튬나이오베이트 광변조기 특성
Polymer 1.55 $70 \times 10^{-12} \, \text{m/V}$ 유기 고분자 기반, 높은 Electro-Optic 계수 적용
Silicon / SiN 3.45 $30 \times 10^{-12} \, \text{m/V}$ 실리콘 포토닉스 통합 굴절률 체계 적용

4. 주요 모듈 및 Canvas 렌더링 로직 (Module Architecture)

4.1 calculateSupermodePhases(time)

입력 전압 신호와 도파로 결합(Coupling) 상수를 조합하여 기수/우수(Supermode) 유효 굴절률과 상/하단 Arm의 최종 위상 상태를 실시간 업데이트합니다.

4.2 drawCrossSectionField(time)

출력 포트의 TE00 모드 단면 출력 강도($P_{\text{out}}$)를 2D Canvas상에 가우시안 프로파일 형태의 픽셀 배율 매핑으로 visualizing 합니다.

4.3 drawScopeWaveform(time)

3D 오실로스코프 화면에 인가 전압 파형을 렌더링합니다. $V_1 = V_2 = 0\text{V}$ 일 때 진폭 $amp = 0$이 엄격 보장되어 완벽한 $0\text{V}$ 평면(Flatline)을 출력합니다.

4.4 drawTimePeakGraph()

광학 시간 스케일($T_0 = \lambda / c \approx 5.16 \, \text{fs}$) 단위 기반으로 출력 광파워 Peak 피드백 데이터를 100 step 히스토리 버퍼로 표시합니다.