Skip to content

벤치마크 & 검증 데이터 (Benchmarks & Validation)

COMPASS 프로젝트에서 EM 솔버의 정확도와 성능을 검증하기 위한 방법론, 기준 데이터, 벤치마크 결과를 정리한 문서이다.


1. 검증 방법론

EM 솔버의 신뢰성을 확보하기 위해 COMPASS는 네 가지 계층의 검증 체계를 사용한다.

1.1 검증 피라미드

        /\
       /  \        Level 4: 실험 데이터 비교 (발표된 QE 측정값)
      /    \
     /------\      Level 3: 솔버 간 교차 검증 (torcwa vs grcwa vs meent vs FDTD)
    /        \
   /----------\    Level 2: 해석적 기준해 비교 (프레넬, TMM)
  /            \
 /--------------\  Level 1: 기본 물리 법칙 검증 (에너지 보존, QE 범위)

각 검증 수준은 독립적으로 작동하며, 상위 수준의 검증이 하위 수준을 대체하지 않는다.

1.2 검증 원칙

원칙설명
에너지 보존R + T + A = 1 (허용 오차 < 1%)
QE 물리적 범위0 <= QE <= 1 (모든 픽셀, 모든 파장)
NaN/Inf 없음모든 출력값에 수치 이상 없음
수렴성 확인해상도/차수 증가 시 결과 수렴
재현성동일 입력에 대해 동일 결과

2. 해석적 기준해

해석해가 존재하는 간단한 구조에 대해 솔버 출력을 검증한다.

2.1 프레넬 방정식 -- 단일 계면 반사율

평면 계면에서의 반사율은 정확한 해석해가 존재한다.

수직 입사 프레넬 반사율:

R = |r|^2 = |(n1 - n2) / (n1 + n2)|^2

COMPASS 벤치마크 테스트(tests/benchmarks/test_fresnel_slab.py)에서 검증하는 기준값:

계면파장 (um)n1n2 (복소)이론 R허용 오차
Air -> Glass전체1.0001.500 + 0i0.04001e-6
Air -> Si (550nm)0.5501.0004.08 + 0.028i~0.3680.02
Air -> SiO20.5501.0001.46 + 0i~0.0351e-3
Glass -> Air (역)전체1.5001.0000.04001e-6

각도 의존 검증:

조건기대 결과테스트
브루스터 각도 (Air->Glass, 56.31도)R_p = 0test_brewster_angle
스침 입사 (89.9도)R_s > 0.99, R_p > 0.98test_grazing_incidence
역수성 (reciprocity)R(n1->n2) = R(n2->n1)test_reciprocity

2.2 전달 행렬법 (TMM) -- 다층 박막 기준해

균일 다층 구조에 대해 TMM(Transfer Matrix Method)은 RCWA의 Fourier order = 0일 때와 동일한 결과를 제공한다. 이를 기준해로 사용하여 솔버의 기본 동작을 검증한다.

단일층 반사방지 코팅 검증:

구조조건이론값비고
Air / SiO2 (93nm) / Si550nm, 수직입사R ~ 0.12단일 ARC
Air / Si3N4 (69nm) / Si550nm, 수직입사R ~ 0.08고굴절률 ARC
Air / MgF2 / SiO2 / Si550nm, 수직입사R < 0.02이중층 ARC

이 기준해들은 RCWA 솔버가 균일층에서 올바르게 동작하는지 확인하는 데 사용된다.

Interactive Thin Film Reflectance Calculator

Compute reflectance spectra using the transfer matrix method for common anti-reflection coating configurations.

Layer 1Si3N4 (n=2.00)
Min Reflectance
0.00%
At Wavelength
552 nm
Substrate
Si (n=4.0)
Incident Medium
Air (n=1.0)
Reflectance (%)05101520400450500550600650700750Wavelength (nm)

2.3 재료 물성 검증

tests/benchmarks/test_fresnel_slab.pyTestMaterialDBProperties에서 내장 재료의 물리적 타당성을 검증한다: Silicon (n~4.08 at 550nm, Green 2008), Air (n=1, k=0), SiO2 (n~1.46), Si3N4 (n~2.0), Polymer의 Cauchy 분산(단파장에서 n 증가) 등.


3. 수렴성 분석

3.1 RCWA 푸리에 차수 수렴

RCWA의 정확도는 푸리에 차수(Fourier order)에 의존한다. 차수를 높이면 정확도가 향상되지만, 계산 비용이 O(M^3)으로 증가한다 (M = (2N+1)^2 for 2D).

1um 피치 BSI 픽셀의 전형적 수렴 거동:

푸리에 차수하모닉 수 (2D)행렬 크기상대 QE 변화율수렴 판정
34998x98기준미수렴
5121242x242~5%미수렴
7225450x450~2%근접수렴
9361722x722~0.5%수렴 (권장)
115291058x1058~0.2%수렴
137291458x1458< 0.1%충분수렴
159611922x1922< 0.05%고정밀

수렴 기준: 연속 두 차수 간 QE 변화가 1% 미만이면 수렴으로 판정한다.

RCWA Convergence Demo

See how increasing the Fourier order N improves the accuracy of permittivity reconstruction and RCWA reflectance/transmittance convergence for a binary grating.

Total Harmonics:11
Matrix Size:11×11 = 121
Computational Cost (O(M³)):~1.3K
Gibbs Overshoot:9.4%
Permittivity Profile Reconstruction
14710120L/2LεPosition in unit cellOriginalFourier (N=5)
R, T Convergence vs Fourier Order
0%10%20%30%40%50%15101520Fourier Order NR (reflectance)T (transmittance)

구조 유형별 권장 차수:

구조최소 차수권장 차수비고
단순 컬러필터 패턴79CF 경계만 존재
금속 그리드 포함1113--15높은 유전율 대비
DTI 포함911--13SiO2/Si 경계
미세 나노구조1517--21파장 이하 피처

3.2 FDTD 격자 간격 수렴

FDTD의 정확도는 공간 격자 간격(dx, dy, dz)에 의존한다. 일반적으로 dx < lambda/(20*n_max)이 권장된다. 550nm, Si 포함 구조에서 dx=20nm이면 QE 변화율 ~1.5% (근접수렴), dx=10nm이면 ~0.2% (충분수렴)이다.

3.3 마이크로렌즈 계단근사 수렴

RCWA에서 마이크로렌즈는 계단 근사(staircase approximation)로 표현된다. 슬라이스 수를 늘리면 렌즈 체적의 정확도가 향상된다.

COMPASS 벤치마크(tests/benchmarks/test_convergence.py)에서 확인된 수렴 거동:

슬라이스 수렌즈 체적 오차수렴 판정
5기준부정확
10< 10% (vs 80)근접
20< 5% (vs 80)수렴
40< 2% (vs 80)충분수렴
80기준 (최고해상도)참조값

연속 슬라이스 수 간 체적 차이가 단조 감소해야 올바른 수렴을 나타낸다. COMPASS는 기본값으로 30 슬라이스를 사용한다.


4. 솔버 간 교차 검증

4.1 RCWA 솔버 비교 (torcwa vs grcwa vs meent)

동일한 픽셀 구조와 동일한 푸리에 차수에서 세 RCWA 솔버의 결과를 비교한다. 세 솔버 모두 동일한 수학적 알고리즘(RCWA)을 구현하므로, 수치 오차 범위 내에서 결과가 일치해야 한다.

허용 불일치 범위:

비교 항목허용 범위비고
QE 절대 차이< 0.005 (0.5%)동일 차수, 동일 인수분해
QE 상대 오차< 1%피크 QE 기준
반사율 차이< 0.002전체 파장 범위
에너지 보존 편차< 0.01

전형적 비교 결과 (2x2 BSI 픽셀, 1um 피치, 푸리에 차수 9):

파장 (nm)torcwa QE(G)grcwa QE(G)meent QE(G)최대 차이
420~0.15~0.15~0.15< 0.005
450~0.32~0.32~0.32< 0.003
500~0.52~0.52~0.52< 0.003
550~0.58~0.58~0.58< 0.002
600~0.45~0.45~0.45< 0.003
650~0.28~0.28~0.28< 0.004
680~0.18~0.18~0.18< 0.005

주: 위 값은 대표적인 수치이며, 실제 구조 및 재료 파라미터에 따라 달라진다.

RCWA vs FDTD Solver Comparison

Compare simulated quantum efficiency (QE) curves from RCWA and FDTD solvers. Adjust pixel pitch and solver parameters to see how results and performance change.

RCWA (Fourier order = 9)
0%20%40%60%80%100%400500600700Wavelength (nm)QE (%)RedGreenBlue
FDTD (grid = 20 nm)
0%20%40%60%80%100%400500600700Wavelength (nm)QE (%)RedGreenBlue
RCWA
Time estimate:137 ms
Memory:6 MB
Periodic structures:Yes
Arbitrary geometry:Limited
FDTD
Time estimate:188 ms
Memory:3 MB
Periodic structures:Yes
Arbitrary geometry:Yes
Agreement
Max |Delta QE|:2.2%
Avg |Delta QE|:0.9%
Status:Good agreement

4.2 RCWA vs FDTD 비교

RCWA와 FDTD는 서로 다른 수치 방법을 사용하므로, RCWA 솔버 간 비교보다 큰 차이가 예상된다. 그러나 수렴된 결과끼리 비교하면 좋은 일치를 보여야 한다.

허용 불일치 범위:

비교 항목허용 범위비고
QE 절대 차이< 0.02 (2%)수렴된 결과 기준
QE 상대 오차< 5%피크 QE 기준
반사율 차이< 0.01
스펙트럼 형상 일치피크 위치 10nm 이내

RCWA와 FDTD 간 차이의 주요 원인은 마이크로렌즈 표현 차이(계단근사 vs 소격자 근사), 분산 매질 처리 방식, 경계 조건(주기 vs PML), 수렴 기준의 차이이다.


5. 에너지 보존 검증

5.1 기본 원칙

에너지 보존 법칙에 의해 입사광의 에너지는 반사(R), 투과(T), 흡수(A)로 나누어져야 한다:

R + T + A = 1

COMPASS는 compass/analysis/energy_balance.pyEnergyBalance.check() 메서드를 통해 모든 시뮬레이션 결과에 대해 에너지 보존을 검증한다.

Energy Balance: R + T + A = 1

Adjust silicon thickness and BARL quality to see how reflection, transmission, and absorption partition the incident light across the visible spectrum.

Max error:0.00e+0
Mean error:0.00e+0
Validation:✓ Pass
Peak absorption:380 nm
0.00.20.40.60.81.0400450500550600650700750Wavelength (nm)FractionReflection (R)Transmission (T)Absorption (A)

5.2 허용 오차 기준

조건허용 오차동작
R+T+A-1< 0.01 (1%)
0.01 <R+T+A-1< 0.02
0.02 <R+T+A-1< 0.05
R+T+A-1> 0.05

5.3 에너지 보존 위반의 원인과 대처

위반 유형주요 원인대처 방법
R+T+A > 1 (에너지 생성)고유값 분해 오류, TF32 사용float64 전환, TF32 비활성화
R+T+A << 1 (에너지 손실)T-matrix 오버플로우, PML 반사S-matrix 사용, PML 두께 증가
특정 파장만 위반축퇴 고유값, 높은 Q-factor고유값 브로드닝, 정밀도 상향

tests/benchmarks/test_energy_conservation.py에서 완벽 보존, 전반사/전흡수, 흡수 자동 추론, 허용 오차 경계, 단위 초과/미달, 단일 파장 위반 등 11개 테스트를 수행한다.


6. 성능 벤치마크

6.1 핵심 연산 성능

tests/benchmarks/test_performance.py에서 측정되는 핵심 연산의 성능 기준:

연산조건상한
get_epsilon_spectrumSi, 41 파장1.0 s
전체 재료 스펙트럼내장 재료 x 41 파장2.0 s
PixelStack 생성2x2 unit cell1.0 s
PixelStack 생성4x4 unit cell2.0 s
get_layer_slicesnx=12810 s
get_permittivity_grid128x128x12860 s

6.2 솔버 실행 시간 (대표 값)

구성: 2x2 BSI 픽셀, 1um 피치, 단일 파장 (550nm), 비편광

솔버차수/해상도CPU 시간GPU 시간 (NVIDIA A100)비고
torcwa차수 9~5 s~0.3 s기본 솔버
torcwa차수 15~40 s~2 s고정밀
grcwa차수 9~8 s~0.5 s
meent차수 9~6 s~0.4 s해석적 고유값 분해
flaport FDTDdx=20nm~60 s~5 s시간영역
flaport FDTDdx=10nm~300 s~25 s고정밀

주: 위 시간은 대표적인 추정치이며, 하드웨어 및 구성에 따라 크게 달라질 수 있다.

FDTD는 시간영역 방법이므로 단일 실행으로 전체 스펙트럼을 얻을 수 있다. RCWA는 파장별로 독립 실행해야 하지만 병렬화가 용이하다. 파장 스윕 (14파장) 시 GPU 기준 RCWA ~4--7s, FDTD ~5s 수준이다.

6.3 메모리 및 스케일링

RCWA 메모리 사용량은 푸리에 차수에 따라 증가한다: 차수 9에서 GPU ~0.3GB(f32), 차수 15에서 ~1.2GB(f32), 차수 21에서 ~5GB(f32). float64 사용 시 약 2배 증가한다. FDTD는 격자 간격에 따라 크게 변하며, dx=10nm에서 GPU ~8GB를 사용한다.

RCWA 런타임 스케일링은 행렬 크기 M = (2N+1)^2에 대해 O(M^3), 즉 차수 N에 대해 약 O(N^6)이다. 차수 9 대비 차수 15는 약 11배, 차수 17은 약 20배 느리다.


7. 산업 검증 데이터

7.1 발표된 BSI 픽셀 QE 데이터

학술 논문 및 산업 발표에서 보고된 BSI CMOS 이미지 센서의 전형적인 QE 값이다.

1.0--1.4um 피치 BSI 픽셀 전형적 QE 범위:

색상 채널피크 파장 (nm)QE 범위전형적 피크 QE출처
Blue (B)450--47030--55%~45%다수 문헌
Green (G)530--56045--70%~60%다수 문헌
Red (R)600--63035--60%~50%다수 문헌

고성능 과학용 BSI 센서 (피치 > 3um):

조건보고된 QE출처
가시광 피크 (400--700nm)> 75%산업 데이터시트
광대역 (260--400nm UV)> 50%학술 논문
최고 성능 (나노구조 적용)> 90%Small, 2023

7.2 COMPASS 시뮬레이션과 발표 데이터 비교

시뮬레이션 결과가 발표된 데이터와 일치하는지 정성적으로 비교한다.

기대되는 일치 수준:

비교 항목기대 일치도제한 요인
QE 스펙트럼 형상우수컬러 필터 모델 정확도
피크 QE 절대값양호 (+-10%)재료 데이터 정확도, 공정 변수
크로스토크 경향정성적 일치3D 구조 단순화
각도 의존성양호마이크로렌즈 프로파일 정확도

시뮬레이션과 실험 간 불일치의 주요 원인은 컬러 필터의 제조사별 n,k 차이, 비이상적 형상(기울어진 측벽, 거칠기), 조명 조건 재현의 어려움, 막 두께와 정렬 오차 등의 공정 변수이다.


8. COMPASS 벤치마크 스위트

8.1 테스트 파일 구조

tests/benchmarks/
  __init__.py
  test_fresnel_slab.py       # 프레넬 방정식 및 재료 물성 검증
  test_energy_conservation.py # 에너지 보존 검증기 테스트
  test_convergence.py         # 기하 수렴성 테스트
  test_performance.py         # 성능 벤치마크 (실행 시간)

8.2 각 테스트 파일 요약

파일클래스 수테스트 수주요 검증 내용
test_fresnel_slab.py314프레넬 반사율, 재료 물성, epsilon 관계
test_energy_conservation.py311에너지 보존 유효/위반/에지케이스
test_convergence.py39마이크로렌즈 수렴, 레이어 일관성, 베이어 패턴
test_performance.py48MaterialDB, PixelStack, 레이어슬라이스, 유전율 격자 성능

8.3 벤치마크 실행 방법

bash
# 전체 벤치마크 실행
PYTHONPATH=. python3.11 -m pytest tests/benchmarks/ -v

# 프레넬 검증만 실행
PYTHONPATH=. python3.11 -m pytest tests/benchmarks/test_fresnel_slab.py -v

# 성능 벤치마크 (타이밍 출력 포함)
PYTHONPATH=. python3.11 -m pytest tests/benchmarks/test_performance.py -v -s

# 느린 테스트 포함
PYTHONPATH=. python3.11 -m pytest tests/benchmarks/ -v --run-slow

8.4 솔버 비교 벤치마크 실행

docs/cookbook/solver-benchmark.md에 상세한 솔버 비교 워크플로우가 문서화되어 있다.

bash
# 솔버 비교 스크립트 실행
python scripts/compare_solvers.py experiment=solver_comparison

이 스크립트는 동일 픽셀 구조에 대해 torcwa/grcwa/meent를 실행하고, QE 비교, 실행 시간 비교, 에너지 보존 검증, 결과 시각화를 수행한다.


9. 검증 체크리스트

새로운 솔버 추가 또는 기존 솔버 수정 시 반드시 확인해야 하는 항목들이다.

필수 검증 (모든 변경):

  • [ ] tests/benchmarks/ 전체 테스트 통과
  • [ ] 에너지 보존: |R+T+A-1| < 0.01 (모든 파장)
  • [ ] QE 범위: 0 <= QE <= 1 (모든 픽셀)
  • [ ] NaN/Inf 없음 (모든 출력)

권장 검증 (주요 변경):

  • [ ] 기존 솔버와 교차 비교 (QE 차이 < 0.5%)
  • [ ] 푸리에 차수 수렴 확인 (차수 7->15 스윕)
  • [ ] GPU/CPU 및 float32/float64 결과 비교

선택 검증 (성능 변경):

  • [ ] 성능 벤치마크 회귀 없음
  • [ ] 메모리 사용량 회귀 없음