NASA's Chemical Equilibrium with Applications (CEA)-code - het rekenpaard dat al raketprestaties, schokgolven en detonaties berekent sinds vóór de meeste huidige gebruikers geboren waren - heeft eindelijk een langverwachte modernisering ondergaan. Het Engineering and Safety Center (NESC) van het agentschap heeft de legacy CEA2 Fortran-code omgevormd tot CEA v3, een objectgeoriënteerd softwarepakket in Fortran 2008 dat nu vloeiend Python, C, MATLAB en zelfs Excel spreekt, want niets zegt 'raketwetenschap' als een spreadsheetinterface.

CEA2, uitgebracht in 2002, is al het favoriete hulpmiddel voor voortstuwings- en thermochemische analyses, maar de oorspronkelijke procedurele Fortran-implementatie was blijkbaar even leuk om te onderhouden als een 20 jaar oude codebase zonder subroutine-interface. Het gebrek aan een goede interface maakte het steeds moeilijker om uit te breiden en te integreren in moderne technische workflows, die nu geautomatiseerde parametrische sweeps, integratie met andere modelleringstools en ondersteuning voor opkomende drijfgassen zoals groene drijfgassen en duurzame vliegtuigbrandstoffen vereisen. Dus besloot NASA om het naar het moderne tijdperk te slepen, terwijl de gevalideerde technische basis behouden bleef.

CEA v3 is gebouwd op objectgeoriënteerde datastructuren, strengere typering en een thread-veilige evenwichtsoplosserarchitectuur. Het ondersteunt Fortran, C, Python, MATLAB en Excel-interfaces, waardoor het hulpmiddel direct kan worden gekoppeld aan geautomatiseerde analysepijplijnen, multidisciplinaire ontwerpkaders en studies met hoog volume aan design-of-experiments. En voor de nostalgici blijft achterwaartse compatibiliteit behouden via een legacy commandoregelinterface, zodat bestaande invoerbestanden en workflows met minimale verstoring kunnen worden voortgezet - want niets zegt 'vooruitgang' als de oude commandoregel er nog is.

De thermodynamische database is ook uitgebreid met extra drijfgassen en brandstoffen die relevant zijn voor huidige NASA-toepassingen, waaronder groene drijfgasbestanddelen zoals ADN, HAN en LMP-103S, evenals duurzame vliegtuigbrandstofkandidaten zoals n-butanol. Dit betekent dat CEA v3 je nu kan helpen uitzoeken hoe je dingen verbrandt die beter zijn voor de planeet, of op zijn minst minder erg.

Nu het fijne print: individuele evenwichtsberekeningen in CEA v3 zijn matig langzamer dan hun CEA2-tegenhangers, omdat de gemoderniseerde architectuur en toegevoegde robuustheid wat rekenoverhead met zich meebrengen. In representatieve tests was een enkele berekening ongeveer 40 procent langzamer, maar het absolute verschil was slechts ongeveer 0,004 seconden per geval - dus je merkt het misschien niet eens, tenzij je het met een stopwatch en een wrok timet.

Maar hier betaalt de modernisering zich echt uit: voor workflows met meerdere gevallen, die gebruikelijk zijn in design-of-experiments-studies, parametrische sweeps, optimalisatie en onzekerheidsanalyses, is CEA v3 een gamechanger. In één benchmark werd een sweep van 108.500 gevallen in ongeveer 1,11 seconden voltooid met CEA v3, vergeleken met ongeveer 15 minuten met CEA2. Dat is een vermindering van de rekentijd met ongeveer 800 keer voor die workflow. Ja, je leest het goed: 800 keer sneller. Grootschalige voortstuwingsstudies en geautomatiseerde verkenning van de ontwerpruimte zijn een stuk praktischer geworden, en de ventilator van je computer zal je dankbaar zijn.

NASA-ingenieurs moeten de volgende richtlijn overwegen: omarm de toekomst, maar houd je legacy-invoerbestanden bij de hand. En als je vragen hebt, neem dan contact op met Mark K. Leader bij Glenn Research Center, mark.leader@nasa.gov, want hij heeft duidelijk niets beters te doen dan je e-mails beantwoorden over de nieuwe Python-bindingen van een 20 jaar oude code.