6 Conclusiones
Lejos está de mí la presunción de pretender dictar aquí el método que cada uno debe seguir para dirigir bien su razón. Sólo quiero mostrar el camino que he elegido para conducir la mía; porque los que se erigen en preceptores deben creerse más dotados que aquellos a quienes pretender aleccionar. Entonces ofrezco este escrito como una historia o fábula, algunos de cuyos ejemplos pueden seguirse, en tanto otros pueden ser desechados, tomando cada uno lo que le aproveche. Por eso pienso que este discurso, ha de ser útil para muchos y no hacer daño a nadie.
René Descartes, Discurso del método, 1637
Leí con incomprensión y fervor estas palabras que con minucioso pincel redactó un hombre de mi sangre:
Dejo a los varios porvenires (no a todos) mi jardín de senderos que se bifurcan.
Devolví en silencio la hoja.
Jorge Luis Borges, El jardín de senderos que se bifurcan, 1941
Con esta tesis de alguna manera cerramos dos lazos:
Uno estrictamente personal que involucra un poco más de quince años abarcando
- la tesis de grado sobre control de lazos de convección natural caóticos [7]
- la tesis de maestría sobre inestabilidades no lineales en el problema acoplado termohidráulico-neutrónico [8]
- este extenso trabajo, medido tanto en tiempo de desarrollo (principalmente entendiendo qué es lo que no hay que hacer) como en cantidad de texto.
Otro más general en el que agregamos el nivel de núcleo a las dos tesis de doctorado del Instituto Balseiro
En ella hemos recorrido los tres aspectos en el no tan tradicional y poco académico pero—a veces—útil orden
La idea del desarrollo se basa en comenzar con un documento ficticio (pero plausible) con un Software Requirements Specification (apéndice A) en el cual un cliente—que podría ser una entidad pública, un laboratorio o una compañía privada—especifica un pliego de condiciones técnicas que debe tener una herramienta computacional para ser comprada o financiada. FeenoX aparece como una “oferta” a dicho pliego, con un Software Design Specification (apéndice B). Este enfoque es muy común en la industria del software. Lo conocí justamente trabajando como consultor independiente donde de alguna manera estuve obligado interactuar con profesionales de otros ámbitos que “hablan otro idioma”. Una vez franqueada la primera barrera de potencial, la interacción es sumamente fructífera ya que no todas las profesiones dan por sentadas las mismas suposiciones y todos terminan enriqueciendo sus capacidades y experiencias.
En general, en términos de emprendedurismo, el unfair advantage consiste en que el la herramienta…
- es libre y abierta [9]—remarcando la importancia que esto tiene tanto en la academia como en la industria (Sección 4.4.1)
- está pensada como cloud-first, concepto que no solamente implica cloud-friendliness (Sección 4.4.6)
- puede escalar arbitrariamente en paralelo apalancándose en el estándar MPI (Sección 4.4.5)
- es un back end diseñado para poder ser manejado con diferentes front ends (figura 4.10)
- sigue la filosofía de diseño Unix (Apéndice C) que es perfectamente aplicable al concepto de cloud-first
- provee una interfaz amena a la simulación programática (Sección 4.4.3)
- es extremadamente flexible y puede resolver una gran variedad de problemas, desde los más simples con propiedades uniformes hasta los más complejos donde las propiedades de los materiales pueden depender del espacio de maneras no triviales (capítulo 5)
- es a los programas tradicionales (CalculiX, CodeAster) y a las bibliotecas de elementos finitos (Sparselizard, MoFEM) lo que Markdown es a procesadores de texto (Word, Google Docs) y a sistemas de tipografía (TeX), respectivamente (Sección B.1)
- está diseñada para que sea posible agregar más tipos de PDEs sin tener que escribir un solver desde cero (Sección 4.1.2)
En particular, para las aplicaciones de neutrónica a nivel de núcleo sus características distintivas son que…
- trabaja sobre mallas no estructuradas
- puede resolver transporte mediante el método de ordenadas discretas S_N
- es capaz de resolver problemas de tamaño arbitrario haciendo descomposición de dominio y resolviendo cada parte en un proceso MPI
En el capítulo 1 repasamos las motivaciones para escribir una herramienta computacional que pueda superar las limitaciones de los códigos neutrónicos tradicionales. Con dicho fin, en el capítulo 2 amalgamamos la literatura existente sobre transporte de neutrones para obtener las ecuaciones en derivadas parciales que debemos resolver. Y en el capítulo 3 desarrollamos posibles discretizaciones numéricas para poder resolver efectivamente neutrónica a nivel de núcleo con una (o más) computadoras digitales. Justamente, en el capítulo 4 discutimos y mostramos una de las virtualmente infinitas maneras de diseñar e implementar una herramienta computacional capaz de resolver estas ecuaciones discretizadas. Finalmente, en el capítulo 5 mostramos diez problemas que necesitan al menos una de las características distintivas de FeenoX para poder ser resueltos en forma satisfactoria.
6.1 Trabajos futuros
Es mi deseo que esta tesis dispare un jardín de senderos que se bifurquen para que las ideas y/o las implementaciones discutidas a lo largo de estos cientos de páginas (físicas en la Biblioteca Falicov, lógicas en su versión PDF o web en su versión HTML) no caigan en el ostracismo. En principio, muchas de las tareas pendientes pueden ser encaradas como trabajos académicos y/o proyectos de ingeniería industriales. En algún sentido, el trabajo “futuro” relacionado al gerenciamiento (sea académico o industrial) es más desafiante que los trabajos técnicos listados a continuación ya no sólo que involucran el management de los tres vértices del tradicional triángulo de proyectos
- costos
- alcance
- calidad
sino también, en proyectos nucleares también hay que lidiar con
- recursos humanos especialmente particulares
- gigantescas inercias organizacionales
- impredecibles limitaciones políticas
todos con sus con sus egos y complicaciones, usualmente fruto del hecho de que la industria nuclear extremadamente inestable ya que depende casi exclusivamente de financiamiento y/o incentivos gubernamentales, tanto a nivel local como global. El listado de trabajos futuros sugeridos incluye
- implementación de las ecuaciones de transporte y difusión transitorias, i.e. cinética neutrónica espacial
- comparación cuantitativa entre la aproximación de difusión y el método de ordenadas discretas
- en trabajos académicos de investigación
- en modelos de interés industrial
- evaluación de otros conjuntos de cuadraturas no necesariamente de nivel simétrico
- estudios de formas de evitar o mitigar el efecto rayo
- discretización de la coordenada angular con funciones de forma tipo elementos finitos
- incorporación de otras formulaciones neutrónicas
- P_N
- SP_N
- even parity
- probabilidad de colisiones para cálculo de celda
- instrumentación del código para evaluar su eficiencia y mejorar su performance tanto en CPU como en memoria
- evaluación de la posibilidad de aplicar el paradigma data-oriented programming
- estudio de factibilidad de utilizar métodos numéricos iterativos para S_N
- mejoramiento de la escalabilidad por paralelización
- optimización de multi-node MPI
- análisis de algoritmos de descomposición de dominio para aplicaciones en reactores nucleares de potencia
- evaluación de la utilización de DMPlex para la distribución de la malla [4]
- desarrollo de interfaces y capas de abstracción
- plataforma web
- interfaces gráficas de usuario (GUIs)
- APIs para lenguajes de scripting (Python, Julia, etc.)
- “thin clients” para ejecución en la nube
- refinamiento automático de malla1
- investigación de otras discretizaciones espaciales
- elementos de alto orden
- formulaciones mixtas
- Galerkin discontinuo
- volúmenes finitos
- basada en PetscFE [3]
- aplicaciones a problemas de optimización
- recocido simulado
- algoritmos genéticos
- redes neuronales
- optimización topológica [10]
- implementación de otras formas numéricas de prescribir condiciones de contorno de Dirichlet multi-punto
- multiplicadores de Lagrange
- eliminación directa
- otras ecuaciones
- elasticidad no lineal
- electromagnetismo
- mecánica de fluidos
- termohidráulica 1D
- CFD
- aplicaciones a biotecnología
- acústica
- etc.
- estudio de implementación de solvers basados en GPUs/APUs
- mejoramiento de la integración continua
- nuevos tests
- medición de la cobertura del código
- análisis sistemático del código con analizadores de memoria tipo valgrind
- estudio de compatibilidad de las secciones eficaces homogeneizadas en celdas estructuradas con su uso en el esquema multi-escala (Sección 2.5) con mallas no estructuradas a nivel de núcleo
- ensambles de elementos combustibles
- barras de control
- nubes de boro en inyección de emergencia
- evaluación de la posibilidad de incorporar FeenoX a cadenas de cálculo neutrónico industriales
- acoplamiento con otros códigos de cálculo
- comunicadores MPI
- memoria compartida
- sockets TCP
- archivo intermedios en almacenamiento tipo RAM-disks
- creación de comunidades libres, abiertas y anti-frágiles
- académicas
- industriales
- evaluación de generación de emprendimientos tipo start up susceptibles de ser invertidos y desarrollados en incubadoras como CITES.
Del inglés Automatic Mesh Refinement↩︎