domingo, 28 de febrero de 2016

SALOME Platform: Una plataforma para análisis numérico

En esta entrada vamos a conocer la plataforma para preparar análisis numéricos llamada SALOME.

¿Qué es la plataforma SALOME?


SALOME es una plataforma genérica de Pre-procesamiento y Post-procesamiento para simulaciones numéricas. Es un programa de código abierto (licencia LGPL) el cual se basa en una arquitectura abierta y flexible hecha de herramientas propias e integrando otras herramientas del mundo del software de código abierto así como otras herramientas comerciales con licencias de código cerrado.



Como podemos leer desde su pagina SALOME esta pensada para ser una plataforma de simulación numérica que permite la completa realización de un estudio numérico. De hecho, el usuario puede conectar fácilmente el núcleo de un código numérico en la plataforma, definir la geometría del problema, mallarla con los malladores incluidos, libres o de código cerrado (así como conectar otros), definir las condiciones de contorno, ejecutar el programa de solución o solver en un superordenador, visualizar el resultado y analizar los datos; todas estas acciones se llevan a cabo en un entorno integrado y coherente. SALOME puede hacer frente a grandes simulaciones numéricas, como los que se encuentran en múltiples física y / o estudios paramétricos. En este contexto, el post-procesador libre mas potente llamado ParaView se ha integrado en la plataforma para beneficiarse de su capacidad de visualizar modelos de gran tamaño. 


A continuación los canales oficiales de información:
SALOME es plataforma y esta disponible para Linux, Windows y Mac. Aunque no todos los módulos están disponibles en todos los sistemas operativos.

Enlace de Descarga

La ultima versión estable hasta el día de la fecha es la 7.7.1.

Principales características

 

Modulo de Geometria(GEOM)

 


En este modulo podemos crear al geometría de nuestro problema aprovechando el kernel de geometría open-source OpenCascade.
Además también podemos importarlas de otros programas utilizando los formatos estándares como IGES, STEP, BREP. Una vez importada la geometría también disponemos de varias herramientas para analizar, modificar, preparar y reparar las mismas para su posterior mallado y calculo numérico.
Con la herramienta comercial DataKIT además podemos interactuar con modelos de los siguientes CAD comerciales:,
 
Modulo de Geometría.


Uno de los inconvenientes del modulo de geometría es que no es del todo parametrico. En las ultimas versiones se agrego una opción en la cual podemos definir variables antes de crear la geometría  en una tabla de variables (NoteBook) que si son modificadas posteriormente también se modifican las geometrias asociadas. Esta es una solución parcial antes de llegar a ser un modulo completamente parametrico como por ejemplo lo es FreeCAD o cualquier programa CAD moderno.

Otra opción importante en SALOME es la posibilidad de crear geometría a través de script del lenguaje de programación python. Esto es muy útil a la hora de automatizar tareas de construcción de geometrías.

La documentación oficial de este modulo la pueden encontrar en el siguiente enlace

Modulo de Mallado

 

El modulo de mallado es usado para generar mallas 1D, 2D o 3D para nuestros análisis numéricos. Para ello cuenta con varios algoritmos de mallado propios. También puede crear grupos a partir de la geometría antes creada o importada en el modulo de geometría que pueden ser usados luego en nuestro análisis.

Mallado en SALOME de un avión.

SALOME incluye además los siguientes malladores externos, los cuales están integrados en su interfaz gráfica y en distintos comandos de python.
  • Código-Abierto: NETGEN 4.9 (Espero que pronto actualicen a la versión 6.0)
  • Comercial: GHS3D, GHS3D parallel, BLSURF, Hexotic
Nota: Los malladores comerciales requieren de la licencia correspondiente para su uso en SALOME.
El modulo de mallado también puede importar y exportar oficialmente los formatos de malla MED, UNV, DAT, STL, CGNS, SAUV, GMF.
Una vez creada o importada la malla el modulo cuenta con varias herramientas una vez obtenida la malla:
  • Controlar o verificar la calidad
  • Modificar
  • Reparar o eliminar los elementos defectuosos.
  • Medir
  • Transformaciones para producir mallas o compuestos mas complejos.
Otro dato muy interesante también de este modulo es que se puede usar de forma externa en forma de librería (SMESH) en otras aplicaciones sin la necesidad de usar la interfaz de SALOME.

La documentación oficial de este modulo la pueden encontrar en el siguiente enlace.

Optimización y refinamiento


El módulo de mallado se completa con el módulo de HOMARD para llevar a cabo la adaptación local de una malla para mejorar la precisión de la simulación y su rendimiento.
Para mejorar la calidad de los resultados de la simulación, una malla por proceso de adaptación ofrece un compromiso eficiente, combinando una malla fina con un bajo costo computacional. El módulo de Homard permite técnicas de refinamiento y desrefinamiento para adaptar la malla, de acuerdo al error numérico de la simulación previamente seleccionado. 



Malla adaptativa con Homard.

HOMARD está diseñado para operar con elementos 2D y 3D tales como triángulos, cuadriláteros, tetraédricos y hexaedros, y es capaz de respetar la geometría en el caso de una malla conforme.
Todas las instrucciones HOMARD pueden ejecutarse mediante la interfaz gráfica de usuario o a través de la interfaz de Python.
 


La documentación oficial de este modulo la pueden encontrar en este enlace


POST-PROCESAMIENTO (PARAVIEW)

 

SALOME incluye un modulo (PARAVIS) para analizar los resultados de nuestra simulación incluyendo al software open-source mas importante para post-procesamiento ParaView. Lo integra en su interfaz y además le agrega la funcionalidad de poder manejar los datos en formato MED, el cual es utilizado por los programas FEM y CFD, Code-Aster y Code-Saturne respectivamente.

Post-Procesando resultados con Paravis.


ParaView es un programa para análisis de resultados  y visualización muy poderoso. Tiene un sin fin de herramientas utilizando técnicas cualitativas y cuantitativas de utilidad para poder usar en el post-procesamiento de nuestros análisis numéricos. Además también podemos programar a través de python nuestras propias técnicas haciendo fácil su implementación en trabajos a futuro

ParaView fue desarrollado para analizar datos extremadamente grandes utilizando los recursos informáticos de memoria distribuida. Se puede ejecutar en superordenadores para analizar conjuntos de datos de tamaño de petaescala, así como en las computadoras portátiles para datos mas pequeños, se ha convertido en una herramienta integral en muchos laboratorios, universidades y la industria, y ha ganado varios premios relacionados con la computación de alto rendimiento.

Para mas información sobre ParaView pueden ir a su pagina oficial que se encuentra en el siguiente enlace.


OTROS MÓDULOS Y FUNCIONALIDADES

 

SALOME además posee otros usos a través de sus módulos y herramientas como son los siguientes. 

  • Realizar cálculos utilizando uno o más solvers externos (acoplamiento) 
  • Describir un esquema computacional que implica el acoplamiento de múltiples solvers. Modulo YACS. 
  • Interfaz para programar en python distintos scripts útiles como los de automatización de tareas.
  • Una biblioteca científica utilizable como módulo dedicado Python para el tratamiento de las incertidumbres. Modulo OpenTurns.
  • Un módulo administrador de tareas (JobManager) que permite la creación, lanzamiento y de los trabajos de cálculo en diferentes tipos de ordenadores.
  • El modulo Eficas el cual nos brinda una interfaz gráfica para escribir el código de distintos solvers para nuestras simulaciones numéricas.
  • Otros que podemos encontrar en la documentación oficial.
Existen otros módulos y herramientas que podemos encontrar en  la sección del foro "Extension of the platform".

SALOME-MECA (CODE-ASTER) 

Codes-Aster es un solver FEM del cual hablaremos en futuras entradas. Aprovechando la flexibilidad y la licencia de SALOME la gente de Code-Aster comparte una versión de SALOME a la cual le incluye distintas herramientas para poder trabajar con este solver FEM, y se llama SALOME-MECA. La misma la podemos encontrar en el siguiente enlace. (solo esta disponible para Linux)


La misma incluye no solo el solver, si no también herramientas para trabajar con Code-Aster como Eficas-CodeASter con el que podemos escribir nuestros casos FEM en Code Aster, ASTK con el que podemos manejar las simulaciones que realizaremos, y unos plugins para distintos análisis con los cuales podemos crear nuestros análisis de manera muy sencilla.

Calculo FEM con Code Aster en Salome-Meca.


Mas sobre Salome-Meca podemos encontrar aqui.

Y para saber de que es capaz de realizar el solver Code-Aster podemos leer su Broucher en ingles desde el siguiente enlace.

La ultima versión estable hasta el día de la fecha es la 2015.2.

Resumen y opinión personal.

 

SALOME es una plataforma abierta y flexible para preparar nuestras simulaciones numéricas.
Aunque tiene un modulo de geometría no esta pensado para crear figuras muy complejas si no para importar la geometría de otro software y adaptarla a las necesidades de nuestra simulación.
El modulo de mallado funciona en un solo núcleo por eso es importante que en versiones futuras puedan incluir la versión 6 de Netgen que permite mallar en múltiples núcleos y así poder sacar mas provecho al microprocesador de nuestra computadora.
La integración de ParaView debe mejorarse ya que habeces la interfaz se pierde y hay que estar configurándola nuevamente. Antiguamente SALOME tenia otra opción de post-procesamiento llamado PostPro que se integraba plenamente en SALOME pero a partir de la versión 7 fue discontinuado debido a sus limitantes comparando a ParaView. Hay ocasiones en que utilizo versiones mas viejas de SALOME para el post-procesamiento por esta razón.
Otro gran avance seria poder integrar malladores hexaedricos y poliedricos avanzados como son CfdMesh o SnappyHexMesh ya que las opciones actuales son muy limitantes.
Lo bueno es que esta siendo activamente desarrollado y tenemos en general dos versiones al año, espero con ansiedad la versión 8 para ver que mejoras trae. Por lo pronto es una plataforma muy útil para usar junto a los solvers CFD OpenFOAM y Code-Saturne, así como con los solvers FEM Code-Aster y Calculix como lo veremos en tutoriales futuros.