변경 이력
COMPASS 프로젝트의 모든 주요 변경 사항은 이 문서에 기록됩니다. 이 프로젝트는 유의적 버전 관리(Semantic Versioning)를 따릅니다.
v0.1.0 -- 최초 릴리스
릴리스 날짜: 2025-02-10
멀티 솔버 지원, 물질 데이터베이스, 시각화 도구를 갖춘 핵심 시뮬레이션 프레임워크를 확립한 COMPASS의 첫 번째 공개 릴리스입니다.
핵심 프레임워크
- 완전한 유효성 검증을 갖춘 Pydantic 기반 설정 스키마 (
CompassConfig) - YAML 설정 로딩 및 CLI 오버라이드를 위한 Hydra/OmegaConf 통합
- 내부 좌표계: 모든 길이에 마이크로미터, 외부 각도에 도(degree), 내부 각도에 라디안(radian) 사용
- 빛 전파 규약: -z 방향 (z_max에 공기, z_min에 실리콘)
기하학 엔진
- 솔버 비의존적 픽셀 구조 정의를 위한
PixelStack및GeometryBuilder - 높이, 반경, 직각도, CRA 시프트를 설정할 수 있는 초타원 마이크로렌즈 프로파일
- 다층 BARL 지원
- 베이어 패턴(RGGB)과 설정 가능한 메탈 그리드를 갖춘 컬러 필터
- 내장 포토다이오드 및 DTI를 갖춘 실리콘 층
- 평탄화(오버코트) 층
- RCWA용 층 슬라이스 생성 (각 z 높이에서의 2D 유전율 그리드)
솔버
- 모든 EM 솔버를 위한
SolverBase추상 인터페이스 - 지연 임포트 및 플러그인 등록을 갖춘
SolverFactory - torcwa RCWA 솔버 어댑터 (PyTorch, CUDA GPU)
- grcwa RCWA 솔버 어댑터 (NumPy/JAX)
- meent RCWA 솔버 어댑터 (NumPy/JAX/PyTorch 멀티 백엔드)
- fdtd_flaport FDTD 솔버 어댑터 (PyTorch, CUDA GPU)
- 모든 솔버에 걸친 통합
SimulationResult출력 형식
수치 안정성 (5중 방어)
PrecisionManager: TF32 비활성화, 혼합 정밀도 고유값 분해StableSMatrixAlgorithm: Redheffer 별곱(T-행렬 발산 없음)LiFactorization: 고대비 경계를 위한 Li 역규칙EigenvalueStabilizer: 축퇴 고유값 처리, 분기 선택AdaptivePrecisionRunner: 자동 float32 -> float64 -> CPU 폴백
소스
PlanewaveSource: 단일 파장, 스윕, 목록 모드- TE, TM, 비편광(TE+TM 평균) 편광 지원
ConeIllumination: CRA, F-수(F-number), 각도 샘플링(피보나치, 그리드), 가중 함수(균일, 코사인, cos4, 가우시안)를 갖춘 사출 동공 조명 모델
분석
QECalculator: 픽셀별 양자 효율 추출EnergyBalance: R + T + A = 1 검증SolverComparison: QE 차이 쌍별 비교, 상대 오차, 실행 시간 비교
러너
SingleRunner: 설정에서 단일 시뮬레이션 실행SweepRunner: 파장 스윕 오케스트레이션ComparisonRunner: 멀티 솔버 비교 워크플로ROISweepRunner: CRA 보간 및 마이크로렌즈 시프트를 갖춘 센서 위치 스윕
시각화
plot_pixel_cross_section: 2D 단면도 (XZ, YZ, XY 평면)plot_qe_spectrum: 색상 채널별 QE 대 파장plot_qe_comparison: 다중 결과 QE 오버레이 및 차이 플롯plot_crosstalk_heatmap: 픽셀 간 에너지 분포field_plot_2d: EM 필드 분포 시각화- 3D 픽셀 스택 뷰어 (PyVista/Plotly)
입출력
- 내장 메타데이터 및 설정을 포함한 HDF5 결과 저장
- 후처리를 위한 CSV/JSON 내보내기
물질 데이터베이스
- 내장 물질: air, silicon (Green 2008), SiO2, Si3N4, HfO2, TiO2, tungsten, polymer (n=1.56), 컬러 필터 염료 (R/G/B)
- CSV를 통한 사용자 정의 물질 (파장, n, k)
- 해석적 분산 모델: 셀마이어(Sellmeier), 코시(Cauchy)
인프라
- 전체에 타입 힌트를 적용한 Python 3.10+
- 단위 및 통합 테스트를 포함한 pytest 테스트 스위트
- ruff 린팅 (E, F, W, I 규칙)
- mypy 정적 타입 검사
- Google 스타일 독스트링