Fer evolucionar codis de simulació
Afegir noves físiques, condicions de contorn, lleis de materials, lògiques d'acoblament o classes de problemes sense fragilitzar el codi existent.
PROGRAMARI CIENTÍFIC
Connectem ciència, matemàtiques, física i desenvolupament de programari per crear sistemes de simulació fiables en condicions reals.
El desenvolupament de programari científic transforma models matemàtics i físics en eines que els equips d'enginyeria poden executar, verificar, ampliar i fer servir cada dia. No és només posar codi al voltant d'una equació: també cal pensar el mètode numèric, les estructures de dades, el comportament dels solvers, l'acoblament entre físiques, l'execució paral·lela i la validació dels resultats.
En codis multifísics a gran escala, decisions petites d'implementació poden alterar el rendiment, l'estabilitat o fins i tot el resultat. Un bon programari científic fa explícita la ciència i alhora deixa el sistema prou clar per evolucionar.
Afegir noves físiques, condicions de contorn, lleis de materials, lògiques d'acoblament o classes de problemes sense fragilitzar el codi existent.
Convertir un model de recerca en un flux de treball per a estudis de disseny, decisions operatives, bucles d'optimització o anàlisi de sensibilitat.
Construir proves de regressió, casos de verificació, controls de validació i benchmarks reproduïbles al voltant de les hipòtesis científiques.
Analitzar moviments de memòria, escalabilitat paral·lela, cost dels solvers, I/O i organització de dades per fer més predictible el treball HPC.
Refactoritzar codi Fortran, C, C++, Python o mixt preservant el comportament numèric i els fluxos de treball dels usuaris.
Crear eines per generar entrades, gestionar malles, postprocessar resultats, executar estudis d'incertesa, conduir campanyes i preparar informes.
Intervenim quan el problema no es pot separar netament entre "ciència" d'una banda i "programari" de l'altra. Podem treballar del model fins al codi, o incorporar-nos a una base existent per desbloquejar les parts que frenen l'avanç.
Traduir equacions, algorismes i hipòtesis físiques en plans d'implementació robustos i codi de producció provat.
Treballar en l'acoblament entre dominis, solvers, malles, camps i escales temporals en grans sistemes de simulació d'enginyeria.
Clarificar arquitectures existents, eliminar camins fràgils, millorar sistemes de build i fer més segur modificar codi científic.
Implantar proves, casos de referència, integració contínua i procediments de validació que detectin aviat regressions numèriques i de programari.
Analitzar, reestructurar i optimitzar càlcul, comunicació i I/O per a entorns HPC i grans campanyes de simulació.
Desenvolupar eines que ajudin els equips a llançar estudis, comparar resultats, automatitzar escenaris i usar simulacions en les seves decisions.
Aquest treball és pertinent per a equips que necessiten convertir un model científic o d'enginyeria en programari fiable: laboratoris de recerca, grups industrials, equips de simulació, startups tècniques i institucions públiques amb sistemes computacionals complexos.
També ho és per a bases de codi madures que ja són importants. En aquests casos, sovint cal preservar la ciència validada mentre es milloren l'arquitectura, el rendiment, les proves i la capacitat d'afegir noves funcionalitats.