
Blog In Silico SE
Simulación multifísica: más que solo apretar un par de botones

Marzo 28 de 2023
Por: Alejandro Cano
La simulación multifísica se ha convertido en uno de los pilares del desarrollo en diversas áreas de la ingeniería tales como el diseño de procesos químicos, el análisis estructural, análisis de procesos electromagnéticos, entre muchos otros. Su uso ha permitido la reducción de costos para múltiples compañías y ha impulsado el desarrollo tecnológico en un ambiente controlado y seguro.
Actualmente, se cuenta con una amplia gama de herramientas computacionales de simulación multifísica tanto comerciales (COMSOL Multiphysics, ANSYS, entre otros), como de código abierto (OpenFoam, Elmer, entre otros), capaces de resolver diversos problemas ingenieriles. Su uso resulta bastante intuitivo para los usuarios y permite desarrollar tareas de modelado y simulación de forma práctica en poco tiempo.
Si bien, el uso de estas herramientas representa una gran ventaja en el análisis de diversos procesos ingenieriles, muchas veces los usuarios no van más allá de la configuración proporcionada por defecto y los propios resultados obtenidos por estos programas. Esto hace que el usuario no tenga completo control del proceso de análisis realizado y no aproveche completamente las capacidades que tienen estos programas para realizar una simulación eficiente y eficaz.

Adaptado de: https://metode.es/revistas-metode/monograficos/equacions-navier-stokes.html
Entendiendo las físicas detrás de nuestro modelo
Un factor muy importante a la hora de construir nuestro modelo es tener una excelente comprensión de las expresiones utilizadas para representar nuestros fenómenos de interés, las condiciones iniciales y de frontera presentes, y las relaciones constitutivas asociadas a la geometría y materiales involucrados.
Esto normalmente conlleva a la construcción de un modelo matemático que contiene ecuaciones diferenciales en derivadas parciales tanto en el espacio como en el tiempo, ecuaciones lineales y no-lineales, y otras expresiones necesarias para resolver nuestro problema. Adicionalmente, es posible proponer simplificaciones al modelo matemático construido con el fin de reducir el costo computacional sin perder información importante.
En este punto es necesario tener una amplia base teórica de los procesos de interés, y estar en constante actualización de los nuevos avances que pueda haber en dichos procesos.
Selección de la herramienta computacional
La selección de una herramienta de simulación debe basarse en una evaluación cuidadosa de las necesidades del proyecto y en una comparación detallada de las diferentes herramientas disponibles en el mercado. En este proceso deben tenerse en cuenta diferentes aspectos tales como el tipo de simulación a llevar a cabo, la facilidad de uso de la herramienta, precisión y velocidad, entre otros.
No obstante, los pasos a seguir para llevar a cabo la simulación resultan casi universales para todas las herramientas disponibles. Inicialmente, se establece una geometría para el sistema y se define cómo interactúan las físicas seleccionadas mediante los parámetros de operación, variables de proceso, condiciones iniciales y de frontera, materiales, entre otras. Posteriormente, el sistema es discretizado en el tiempo a través de la definición de pasos, y en el espacio mediante la generación de una malla. Muchos programas de simulación cuentan con algoritmos especiales para la generación automática de malla, lo que simplifica en gran medida este proceso. Finalmente, el software realiza los cálculos pertinentes y los resultados obtenidos pasan por un post-procesado que permite obtener la información necesaria para analizar el sistema en cuestión.
Este procedimiento, si bien permite obtener resultados para nuestro sistema de interés, resulta muy limitado a la hora de construir un buen modelo y aprovechar al máximo las capacidades que ofrece el programa. Es por esta razón que es necesario ir más allá de lo que nos muestra la caja negra (Black-box), y entender en mayor profundidad lo que sucede a la hora de simular nuestros modelos.

Fuente: Curso Introducción a FEA cn COMSOL de In Silico SE

Fuente: Imagen paga de CANVA
La magia detrás del método de discretización utilizado
El proceso de simulación usualmente conlleva a realizar un proceso de discretización tanto en el tiempo como en el espacio (generación de malla), dependiendo de la complejidad que tenga nuestro modelo. Durante la discretización, el modelo matemático es convertido en un sistema de ecuaciones algebraicas que representan la variación de las variables de interés en ciertas regiones del espacio o en determinados lapsos de tiempo. Esto permite resolver problemas complejos mediante el uso de métodos numéricos en un computador. Una discretización adecuada puede llevar a menores tiempos de simulación, cálculos más estables y resultados más precisos.
Los métodos de discretización para el tiempo normalmente se clasifican como explícitos e implícitos. En los métodos explícitos, el estado de un sistema en el tiempo t+1 es calculado a partir del estado en el tiempo t. Entre los métodos más destacables, se encuentran los de Runge-Kutta, Adams-Bashforth, entre otros. Por otra parte, los métodos implícitos determinan el estado del sistema en el tiempo t+1 de forma implícita utilizando información del sistema en el tiempo t y t+1, lo que lo hace más costoso computacionalmente, pero a su vez más estable en comparación a los métodos explícitos. Entre los métodos más destacables, se encuentran el BDF (Backward-Differentiation-Formula), Crank-Nicholson, entre otros.
Para la discretización espacial, existe una amplia gama de métodos, entre los cuales se destacan el método de elementos finitos (FEM por sus siglas en inglés), y el método de volúmenes finitos (FVM por sus siglas en inglés).
El método de elementos finitos se caracteriza por dividir el sistema en pequeñas regiones llamadas elementos y utilizar la forma integral, también conocida como la forma débil, del modelo matemático asociado.
Cada elemento posee una cantidad determinada de nodos y estos son utilizados para calcular la solución del problema matemático planteado. Posteriormente, los valores de cada variable a lo largo del sistema son calculados mediante el uso de funciones de forma y de valores calculados para los nodos de cada elemento. Entre las funciones de forma mayormente utilizadas, se encuentran las funciones lineales, cuadráticas, entre otras. La selección de las funciones de forma va a determinar en gran medida la precisión de los resultados obtenidos y el costo computacional asociado.

Tomado de: https://www.comsol.com/multiphysics/finite-element-method?parent=physics-pdes-numerical-042-62

Adaptado de: https://www.comsol.com/blogs/your-guide-to-meshing-techniques-for-efficient-cfd-modeling/
Generación de mallas: Una tarea tediosa pero necesaria
En caso de considerar variaciones espaciales en el sistema, el siguiente paso es la generación de una malla para representar la discretización espacial. Muchas personas en este punto utilizan programas especializados para la generación de mallas de forma automática, de forma que el propio programa utiliza algoritmos y parámetros ya establecidos. Si bien, estos programas buscan facilitar el proceso de simulación al automatizar esta tarea, muchas veces las mallas generadas resultan no ser las más apropiadas para llevar a cabo la simulación.
En este punto, se hace necesario que los usuarios establezcan sus propios parámetros y definan el orden en el que se construirá una malla de mejor calidad. Sin embargo, esto no es una tarea fácil, ya que la calidad de una malla depende de diversos factores tales como tamaño máximo de elemento, relación de crecimiento, distribución a lo largo de una frontera, entre otros, que hacen que este proceso pueda considerarse como un arte.
A pesar de esto, la generación de una malla de buena calidad nos puede salvar de diversos dolores de cabeza durante la solución del modelo computacional. La calidad de los elementos de una malla puede definirse a través de diferentes criterios tales como la oblicuidad (Skewness en inglés), la relación entre el volumen y la longitud de cada uno, el ángulo máximo, entre otros.
¿Qué método de solución es el más adecuado?
Llegados a este punto, el modelo matemático está listo para ser solucionado. Durante el proceso de discretización y generación de malla, el modelo matemático es reducido a un sistema de ecuaciones lineales o no lineales, que pueden ser agrupados mediante una notación matricial.
Ax=b
Donde A es la matriz de coeficientes, la cual representa la relación entre los diferentes elementos de la malla según el modelo matemático establecido, x es el vector de variables desconocidas que serán calculadas para cada elemento de la malla y b es el vector de términos fuente asociados al sistema. En caso de que los coeficientes de la matriz A o de los términos fuente sean no lineales con respecto a alguna de las variables descritas anteriormente, el sistema es no lineal y la matriz A y el vector b deberán calcularse en cada iteración utilizando el vector de variables calculado en la iteración anterior.
Debido a la gran cantidad de variables a calcular y a la complejidad del sistema de ecuaciones planteado, es necesario el uso de algoritmos especializados para la solución de estos sistemas. Entre estos algoritmos se encuentran los denominados algoritmos directos, los cuales buscan solucionar el sistema de ecuaciones de manera directa en un solo paso. Entre los más relevantes, se encuentran los algoritmos PARDISO, MUMPS, WSPM, entre otros.

Tomado de: https://en.wikipedia.org/wiki/Sparse_matrix

Tomado de: https://www.comsol.com/blogs/improving-convergence-multiphysics-problems/
Por otra parte, se tienen los algoritmos iterativos que se encargan de encontrar una solución aproximada al sistema de ecuaciones lineales de manera iterativa, mejorando progresivamente la solución hasta alcanzar un grado de precisión y convergencia deseada. Entre los algoritmos iterativos más relevantes, se encuentran Gauss-Siedel, GMRES, BiCGStab, entre otros.
La elección del algoritmo más adecuado dependerá de las características específicas del problema, como el tamaño y la estructura de la matriz, la cantidad de elementos diferentes de cero, la precisión requerida y las características de cómputo. Los algoritmos directos cuentan con la ventaja de ser robustos y de uso general. Sin embargo, su costo computacional se incrementa rápidamente al incrementar el tamaño del problema y la complejidad del modelo matemático.
Por otra parte, los algoritmos iterativos requieren menos recursos computacionales y su costo incrementa más lentamente que los algoritmos directos. No obstante, son menos robustos y su convergencia se ve afectada por matrices mal condicionadas, las cuales generan una solución del modelo matemático sensible a la estructura de las matrices. Por lo tanto, es recomendable experimentar con diferentes algoritmos y parámetros para encontrar la solución más eficiente y precisa.
Obtener información realmente relevante del post-procesado
Una vez terminados los cálculos necesarios para hallar una solución, el siguiente paso es procesar los resultados de forma que proporcionen información útil a nuestra investigación. Antes de iniciar con este proceso, es necesario verificar que los resultados tengan un sentido físico y puedan ser contrastados con datos experimentales. De esta manera, se puede garantizar que los resultados son confiables para el análisis requerido.
Muchos programas realizan el post-procesado de forma automática y proporcionan información a través de gráficas de superficie, contornos, entre otros. Esto resulta de utilidad en muchas ocasiones porque la información brindada nos puede ayudar a sacar conclusiones de nuestra investigación de forma más rápida. Sin embargo, es necesario dedicar tiempo a sacar gráficos propios que normalmente no se obtendrían de forma automática y que proporcionen más información que complementen la investigación y ayuden a lograr los objetivos propuestos. A veces, un gráfico de línea o un resultado global puede proporcionar más información que un gráfico de superficie con colores llamativos.


Programando nuestras propias rutinas de cálculo
Llegados hasta este punto, podríamos considerar que tenemos un amplio control de la simulación y que aprovechamos al máximo la herramienta computacional. Esto si bien es cierto en muchos casos, aún podemos ir más allá y agregar nuevas capacidades a nuestros programas mediante la generación de código entendible por estos. Por ejemplo, podemos agregar una función que nos permita describir una propiedad o un comportamiento físico que no está implementado por defecto en los programas. También podemos agregar rutinas de cálculo especiales para solucionar un problema en particular y mejorar la calidad de nuestra simulación.
Cada herramienta computacional proporciona una guía de usuario especializada en la implementación de estos algoritmos de programación. Su uso nos permitirá obtener resultados más completos y consistentes con los objetivos planteados, así como implementar nuevas funcionalidades que nos pueden llegar a ser útiles en un futuro.
Conclusión
Como se pudo observar, una simulación exitosa implica el conocimiento de cada uno de los procesos que se llevan a cabo y cómo podemos aprovechar al máximo cada uno de estos. Si bien, las diferentes herramientas computacionales ofrecen una amplia gama de opciones para llevar a cabo nuestros estudios, la experiencia y el conocimiento serán los que determinarán qué tan precisas y eficientes serán estos.
Soluciones In Silico SE SAS
Si tienes la certeza, o crees que la simulación puede impulsar algún proyecto tuyo, o del que haces parte, cuéntanos más, nos encantaría poder explorar opciones que te ayuden a hacerlo realidad.
Si quieres aprender acerca de simulación virtual, puedes acceder a nuestros cursos de formación STEM, donde podrás empezar desde cero a adquirir habilidades en esta herramienta de vanguardia.
También puedes acceder a paquetes de asesorías personalizadas para resolver dudas específicas con tu proyecto de simulación, tanto de la academia, como de la industria.
En In Silico SE SAS sumamos más de 26 años de experiencia en la simulación de sistemas y procesos, la investigación científica, la docencia universitaria y el desarrollo de proyectos de ingeniería; nos encantaría que juntos podamos aportar al cumplimiento de los ODS, contáctanos.

Nota sobre el autor: Edgar Alejandro Cano Zapata

Soy ingeniero químico con un amplio interés en las áreas de modelamiento y simulación. He participado en diferentes proyectos relacionados al estudio de biorreactores y celdas electrolíticas a través del modelamiento computacional. Creo firmemente que el análisis In Silico nos va a permitir grandes desarrollos tecnológicos al evaluar diferentes escenarios que normalmente son difícil de reproducir en el laboratorio. Por esta razón, deseo brindar mi aporte en esta área para impulsar el avance tecnológico a nivel nacional e internacional.