개요
PyroCEA는 NASA CEA(Chemical Equilibrium with Applications)와 동일한 깁스 자유에너지 최소화 알고리즘을 Python으로 구현한 오픈소스 열화학 계산기다. 이 글에서는 액체 산소/메탄(LOX/LCH4) 추진제 조합으로 PyroCEA와 CEA의 계산 결과를 직접 비교한다.
계산 조건
추진제 : O2(L) / CH4(L)
O/F 비 : 4.0 (근화학량론비, φ = 0.997)
Pc : 1000 psia (68.95 bar)
팽창 면적비: Ae/At = 10, 25, 50
팽창 방식 : 평형 팽창 (equilibrium expansion)

CEA 입력 파일은 다음과 같다.
problem o/f=4.0,
rocket equilibrium frozen nfz=1 tcest,k=3800
p,psia=1000.0,
sub,ae/at=3.0,
sup,ae/at=10.0,25.0,50.0,
react
fuel=CH4(L)
oxid=O2(L)
output transport
plot aeat t p ivac isp mach cf
end

Cf 정의
CEA 출력의 Cf는 속도 성분만을 의미한다.
Cf = Ve / c* (압력 추력항 제외, Pa = 0 기준)
PyroCEA의 전체 추력계수(속도 + 압력항)와는 정의가 다르므로, 이 글에서는 CEA와 동일한 기준으로 통일하여 비교한다.

연소실 조건
| 파라미터 | PyroCEA | CEA (평형) | 오차 |
| Tc [K] | 3557.8 | 3557.7 | +0.00% |
| Tt [K] | 3393.9 | 3393.9 | −0.00% |
| Pt [bar] | 39.986 | 39.984 | +0.01% |
| Mw [g/mol] | 23.088 | 23.089 | −0.00% |
| γ (isentropic) | 1.1275 | 1.1272 | +0.03% |
| c* [m/s] | 1785.6 | 1786.6 | −0.05% |
노즐 출구 성능
Ae/At = 10
| 파라미터 | PyroCEA | CEA (평형) | 오차 |
| Te [K] | 2538.0 | 2537.7 | +0.01% |
| Pe [bar] | 1.0994 | 1.0985 | +0.08% |
| Mach | 3.050 | 3.046 | +0.13% |
| Isp [m/s] | 2928.6 | 2928.9 | −0.01% |
| Ivac [m/s] | 3213.3 | 3213.6 | −0.01% |
| Cf | 1.6401 | 1.6394 | +0.04% |
Ae/At = 25
| 파라미터 | PyroCEA | CEA (평형) | 오차 |
| Te [K] | 2315.5 | 2315.3 | +0.01% |
| Pe [bar] | 0.3583 | 0.3580 | +0.08% |
| Mach | 3.557 | 3.533 | +0.68% |
| Isp [m/s] | 3216.7 | 3216.8 | −0.00% |
| Ivac [m/s] | 3448.6 | 3448.8 | −0.01% |
| Cf | 1.8014 | 1.8006 | +0.04% |
Ae/At = 50
| 파라미터 | PyroCEA | CEA (평형) | 오차 |
| Te [K] | 2152.8 | 2152.7 | +0.00% |
| Pe [bar] | 0.1558 | 0.1557 | +0.06% |
| Mach | 3.879 | 3.883 | −0.10% |
| Isp [m/s] | 3396.9 | 3397.0 | −0.00% |
| Ivac [m/s] | 3598.7 | 3598.7 | 0.00% |
| Cf | 1.9024 | 1.9014 | +0.05% |
화학종 조성 (연소실)

| 화학종 | PyroCEA | CEA | 차이 |
| H₂O | 0.47376 | 0.47378 | −0.00002 |
| CO₂ | 0.15496 | 0.15496 | 0.00000 |
| CO | 0.13288 | 0.13286 | +0.00002 |
| OH | 0.08848 | 0.08847 | +0.00001 |
| O₂ | 0.06563 | 0.06563 | 0.00000 |
| H₂ | 0.04858 | 0.04857 | +0.00001 |
| H | 0.01786 | 0.01785 | +0.00001 |
| O | 0.01755 | 0.01754 | +0.00001 |
소수점 5자리까지 완전히 일치한다. 깁스 최소화 알고리즘 구현이 CEA와 동등한 수준임을 보여준다.
오차 분석
구조적 차이 (제거 불가)
CEA는 200종 이상의 탄화수소 화학종(C₂H₂, C₃H₈, C₆H₆ 등)을 생성물 후보로 포함하지만, PyroCEA는 주요 13종만 사용한다. O/F=4.0 조건(산화제 과잉)에서는 탄화수소 화학종의 분율이 1 ppm 미만으로 무시 가능하여 결과에 영향이 없다.
γ 미세 오차 (+0.03%)
PyroCEA의 isentropic exponent γ는 수치 미분 방식으로 계산한다.
γ_s = d(ln P) / d(ln ρ)|_S
≈ 2ε / [(ρ(P+ε) − ρ(P−ε)) / ρ] (ε = 0.5%)
이 방식은 단순 cp/cv 공식보다 CEA의 실제 정의에 더 가깝다. 잔여 +0.03% 오차는 수치 미분 스텝 크기에 따른 이산화 오차다.
결론
PyroCEA는 CEA와 동일한 조건에서 다음 정밀도를 달성한다.

| 항목 | 달성 정밀도 |
| 연소실 온도 Tc | ±0.01% |
| 특성속도 c* | ±0.05% |
| 비추력 Isp / Ivac | ±0.01% |
| 추력계수 Cf | ±0.05% |
| 화학종 조성 | 소수점 5자리 일치 |
NASA CEA 수준의 정확도를 순수 Python으로 재현하였으며, 화학종 DB·추진제 성분 DB·GUI를 갖춘 독립적인 계산 환경으로 동작한다.
참고: NASA RP-1311, Gordon & McBride (1994)
'현장과 프로젝트 > pyroCEA' 카테고리의 다른 글
| NASA CEA 기반 Python 열화학 계산 프레임워크 (0) | 2026.06.05 |
|---|---|
| 화학평형계산 CEA 말고 RPA 사용하기 (0) | 2026.01.23 |
| NASA CEA로 이해하는 로켓 성능 계산: 동결 평형과 이동 평형 (0) | 2025.03.22 |
| NASA CEA: 로켓 연구의 황금 표준, 화학 평형 계산 프로그램 (0) | 2024.03.25 |