NASA의 화학 평형 및 응용(CEA) 코드 - 현재 사용자 대부분이 태어나기 전부터 로켓 성능, 충격파, 폭발을 계산해 온 계산 작업의 핵심 - 마침내 오랫동안 미뤄온 현대화를 겪었다. 해당 기관의 공학 및 안전 센터(NESC)는 레거시 CEA2 Fortran 코드를 CEA v3로 이끌었는데, 이는 Fortran 2008, 객체 지향 소프트웨어 패키지로 이제 파이썬, C, MATLAB, 그리고 심지어 엑셀까지 유창하게 구사한다. 스프레드시트 인터페이스가 '로켓 과학'을 의미한다면 말이지.

2002년에 출시된 CEA2는 추진 및 열화학 분석의 표준 도구였지만, 원래의 절차적 Fortran 구현은 서브루틴 인터페이스가 없는 20년 된 코드베이스를 유지하는 것만큼 재미있었다고 한다. 적절한 인터페이스의 부재로 인해 확장하고 현대 공학 워크플로우에 통합하는 것이 점점 더 어려워졌는데, 이제 자동화된 매개변수 스윕, 다른 모델링 도구와의 통합, 그리고 친환경 추진제 및 지속 가능한 항공 연료와 같은 새로운 추진제에 대한 지원이 요구된다. 그래서 NASA는 검증된 기술 기반을 보존하면서 현대 시대로 끌고 오기로 결정했다.

CEA v3는 객체 지향 데이터 구조, 더 엄격한 타입, 그리고 스레드 안전 평형 솔버 아키텍처를 기반으로 구축되었다. Fortran, C, Python, MATLAB, Excel 인터페이스를 지원하여 자동화된 분석 파이프라인, 다분야 설계 프레임워크, 대용량 실험 설계 연구에 직접 연결할 수 있다. 그리고 향수를 느끼는 사람들을 위해 레거시 명령줄 인터페이스를 통해 하위 호환성이 유지되므로 기존 입력 파일과 워크플로우를 최소한의 중단으로 이어갈 수 있다. 진보라고 하면서 옛 명령줄을 유지하는 것보다 더 좋은 건 없으니까.

열역학 데이터베이스도 현재 NASA 응용 분야와 관련된 추가 추진제와 연료를 포함하도록 확장되었으며, ADN, HAN, LMP-103S와 같은 친환경 추진제 성분과 n-부탄올과 같은 지속 가능한 항공 연료 후보가 포함된다. 이는 CEA v3가 이제 지구에 더 나은, 또는 적어도 덜 나쁜 물질을 태우는 방법을 알아내는 데 도움을 줄 수 있다는 뜻이다.

이제 세부 사항: CEA v3의 개별 평형 계산은 CEA2보다 약간 느리다. 현대화된 아키텍처와 추가된 견고성에는 약간의 계산 오버헤드가 따르기 때문이다. 대표적인 테스트에서 단일 계산은 약 40% 느렸지만, 절대 차이는 케이스당 약 0.004초에 불과했다. 스톱워치와 악의를 가지고 시간을 재지 않는 한 눈치채지 못할 수도 있다.

하지만 현대화가 진정으로 빛을 발하는 곳은 다중 케이스 워크플로우에서다. 실험 설계 연구, 매개변수 스윕, 최적화, 불확실성 분석에서 흔히 볼 수 있는 이러한 워크플로우에서 CEA v3는 게임 체인저다. 한 벤치마크에서 108,500케이스의 스윕이 CEA v3로 약 1.11초 만에 완료된 반면, CEA2는 약 15분이 걸렸다. 이는 해당 워크플로우에서 약 800배의 런타임 감소다. 그렇다, 제대로 읽은 것이다: 800배 빠르다. 대규모 추진 교역 연구와 자동화된 설계 공간 탐색이 훨씬 더 실용적이 되었고, 컴퓨터 팬이 감사할 것이다.

NASA 엔지니어 사용자는 다음 지침을 고려해야 한다: 미래를 받아들이되, 레거시 입력 파일은 가까이 두라. 그리고 질문이 있으면 Glenn Research Center의 Mark K. Leader(mark.leader@nasa.gov)에게 연락하라. 20년 된 코드의 새 파이썬 바인딩에 대한 이메일에 답하는 것보다 그에게 할 일이 없으니까.