Noticias

Tutorial: preparación de una simulación multicuerpo con transferencia de calor en OpenFOAM. Parte 1: preparación de malla en SALOME MECA

CFD

OpenFOAM es una herramienta muy versátil que permite el estudio de múltiples fenomenologías, siendo el intercambio de calor una particularmente difícil de simular si no estás acostumbrado al uso de este software. En esta serie de tutoriales aprenderemos una forma de plantear una simulación en la que intervienen dos cuerpos con intercambio de calor.

Al acabar la primera parte de este tutorial habrás aprendido un método para generar mallas apropiadas para simular en OpenFOAM un caso donde intervienen varios cuerpos con intercambio de calor. Aunque OpenFOAM cuenta con módulos de mallado propios, nosotros haremos uso del software SALOME-MECA, software libre que tiene la ventaja de poder trabajar con interfaz gráfica. Dicho software se puede descargar e instalar fácilmente siguiendo las instrucciones de su página web.

 

Generación de cuerpos presentes en la simulación.

Para trabajar con un caso simple en este tutorial, generamos un cilindro que actuará de cuerpo fluido y en su interior un paralelepípedo (sólido) que será el que genere calor. Para ello, en cualquier software de diseño asistido, en el plano XY dibujamos una circunferencia centrada en el origen de 100 mm de radio y la extruimos en el eje Z 1000 mm. Este cuerpo será denominado como “fluid” Tras esto, en el mismo plano, generamos un cuadrado centrado en el origen de 50 mm de lado, lo extruimos 100 mm y lo desplazamos en el eje Z hasta que quede centrado en el interior del cilindro. A este cuerpo lo llamaremos “solid”.

Finalmente realizamos una operación booleana de sustracción entre el cilindro y el paralelepípedo para que el volumen fluido no intersecte al sólido y exportamos en formato STEP ambos cuerpos.

 

Preparación de la geometría mediante SALOME MECA.

El paso anterior podría haberse ejecutado perfectamente en el módulo de edición de geometrías de SALOME, pero de no ser así, lo primero que se ha de realizar es la importación de esta en formato STEP (o aquel que hayamos utilizado).  

Este software cuenta con diversos módulos a los que se puede acceder desde el desplegable de la zona superior. Seleccionando el módulo “Geometry” podremos realizar las acciones previas antes de generar la malla.

 

 

Dentro de este módulo, clicando en el menú “File”/”Import”, seleccionamos el formato en el que hayamos generado la geometría y seleccionamos nuestro archivo.

Una vez importada, debemos realizar un “Explode” de los cuerpos que componen la geometría (fluido y sólido) para manejarlos por separado. Para ello se hace clic en el menú superior “New Entity/”Explode” y seleccionamos nuestra geometría (en “Main Object”) importada en el árbol de trabajo. Debemos marcar la opción “Solid”, para obtener las dos geometrías.

 

 

Ahora, para obtener las superficies de cada uno de estos cuerpos, necesarias para crear las condiciones de contorno, realizaremos un segundo y tercer “Explode” en cada cuerpo para nombrar cada una de sus caras adecuadamente (seleccionando esta vez la opción “Face”.

Para el caso del cuerpo fluido nombraremos la cara situada a cota Z=0 como “inlet” y la cara situada a cota Z=1000 mm como “outlet” ya que asumiremos que el fluido circulará en el mismo sentido del eje. La cara externa del cilindro la nombramos como “wall” ya que ésta es la cara límite del fluido y físicamente sería la que se encontraría en contacto con la tubería por la que el fluido circula. El resto de caras presente en el fluido son las que se encuentran en contacto con el sólido interior.

De acuerdo con el método de resolución que proponemos en este tutorial (por supuesto, este método es simplemente uno que funciona, pero no es el único para realizar simulaciones de varios cuerpos con intercambio de calor en OpenFOAM), las caras compartidas por dos cuerpos no deben ser nombradas en uno de ellos. Dado que el sólido solo presenta caras en contacto con el fluido, optaremos por no nombrar las caras del cuerpo fluido, de forma que las eliminaremos y este cuerpo solo presentará las caras “inlet”, ”outlet” y “wall”.

Por su parte, el sólido, al solo presentar un grupo de caras que corresponderán a la misma condición de contorno, las agruparemos en un conjunto. Esto lo realizamos mediante el comando “Create group”, dentro del menú superior “New Entity”/”Group” seleccionando “Faces” como formas a añadir, nuestro sólido como forma principal y añadiendo todas las caras que presenta. A este grupo lo denominaremos “solid_heat_wall”. 

 

 

Dado que para la realización de este método necesitaremos resolver una malla continua (conforme entre todos los cuerpos que la forman), vamos a unir los dos cuerpos en una partición. Para ello simplemente debemos realizar la operación denominada “Partition” en el menú superior “Operations” y seleccionar ambos cuerpos. Esto permitirá generar una única malla que englobe a ambos cuerpos. Demos marcar la opción “Set presentation parameters…” para que se mantengan las caras que hemos nombrado anteriormente. Denominaremos a este cuerpo “Partition_heat”.

 

 

Una vez realizado esto ya hemos terminado todas las labores con el módulo geometría de SALOME y procedemos a abrir el módulo de mallado. La “Partition” creada debe mostrarse en el árbol de la siguiente manera:

 

 

Preparación y generación de malla mediante SALOME MECA.

El primer paso a realizar en este módulo es la creación de una malla tomando como geometría base la partición generada en el paso previo. Teniendo en cuenta que para la resolución de este caso no tenemos restricciones de precisión de ningún tipo vamos a realizar una malla tetraédrica de pocos elementos, ya que de esta forma podemos alcanzar resultados con gran rapidez. 

Seleccionamos el módulo “Mesh” en el desplegable superior, y a continuación clicamos en el menú superior “Mesh”/”Create Mesh”. Hacemos uso del algoritmo NETGEN 1D-2D-3D y en sus parámetros (botón con engranaje a la derecha) vamos a especificarle grado de refinamiento fino, unos tamaños comprendidos entre 10 y 20 mm y marcamos la opción “Optimize”.

 

 

Llegados a este punto ya podemos generar nuestra malla continua que engloba a ambos cuerpos (clic derecho sobre ella y pulsamos en “Compute”). No obstante, antes de exportarla debemos tener en cuenta que es necesario nombrar los grupos de elementos que conforman nuestra malla.

La buena noticia es que, si hemos realizado el paso previo adecuadamente, esto es muy sencillo. Basta con hacer uso del comando “Create Groups from Geometry” (haciendo clic derecho en la malla) y seleccionar todos los elementos nombrados dentro de nuestra partición. 

De haberlo realizado todo correctamente se puede comprobar que ahora la malla presenta dos grupos de volúmenes, los cuales son “fluid” y “solid” y cuatro grupos de superficies, que son “inlet”, “outlet”, “wall” y “solid_heat_wall”.

 

 

 

Exportación de malla a formato OpenFOAM.

Ya disponemos de una malla completamente terminada para trabajar con ella y el último paso es exportarla para operar en OpenFOAM. Para ellos existen múltiples formas, siendo el uso de scripts una de ellas. En particular un script altamente recomendable que funciona muy bien es “salomeToOpenFOAM”, el cual ha sido creado y distribuido por Nicolas Edh, bajo los términos de licencia GNU.

Para el uso de dicho script simplemente debemos seleccionar la ubicación donde se generará nuestra malla y hacer uso del comando de lectura de script que posee Salome seleccionando la malla generada. (“File”/”Load script”).

Si todo ha funcionado correctamente ya disponemos de una carpeta denominada “polyMesh” que contiene toda la información que necesitamos en cuanto a la generación de archivos previos a OpenFOAM se refiere. En el siguiente tutorial explicaremos como preparar la configuración del caso para esta malla en OpenFOAM.

 

Share This
Abrir chat
1
Hola. Nuestro equipo está disponible para ti en cualquier momento. ¿En qué podemos ayudarte?