WorkShop 2: Preprocesado con OpenFOAM Luis Parras⋆ , Patricio Bohórquez† ⋆ Escuela Superior de Ingenieros Industriales de Málaga Universidad de Málaga, España † Escuela Superior de Ingenieros Industriales de Jaén Universidad de Jaén, España Mecánica de Fluidos Computacional Aplicada Junio 2010 WorkShop 2: Preprocesado con OpenFOAM – p.1 Malladores Como se ha indicado, la calidad de la simulación está altamente influida por la calidad de la malla. Por ellos existen numerosos programas de mallado. Algunos ejemplos de malladores son Gambit Engrid Salome Pointwise StarDesign WorkShop 2: Preprocesado con OpenFOAM – p.2 Importar la malla desde CAD La malla se exporta desde un programa de modelado tipo Solid Works, CATIA, etc Los formatos de intercambio son los formatos estándar para transferir la información de unos programas a otros. Cada programa tiene su formato privativo (de código cerrado) al que ningún otro programa puede acceder, por desconocer cómo está guardado. Los formatos de intercambio más utilizados para modelado de sólidos son 1. IGES es la especificación para intercambio inicial de gráficos (Initial Graphics Exchange Specification) define un formato neutral de datos que permite el intercambio digital de información entre sistemas de diseño asistido por computadora CAD. Fué desarrollado en 1979 por un grupo de usuarios y proveedores CAD como Boeing, General Electric, Xerox, ComputerVision y Applicon. 2. STEP (Standar for the Exchange of Product model data) o Estándar del modelo de datos para intercambio de productos. Es un estándar internacional para la representación e intercambio de información de productos industriales. Corresponde con la norma ISO 10303. 3. STL es un formato de fichero nativo para software CAD para stereolitografía desarrollado por 3D Systems. Este formato esta soportado por muchos otros paquetes de software y se usa para prototipado rápido y fabricación asistida por ordenador. Los ficheros STL describen sólo las superficies externas de un objeto tridimensional, y no da información extra como acabados, texturas, etc, que daría un formato como los anteriormente descritos. WorkShop 2: Preprocesado con OpenFOAM – p.3 Importación Se importa el sólido (PerfilTuboRound.stp) en el apartado de Geometría, mediante la opción File/Import/STEP Se explota la geometría global para que nos ofrezca todas las caras del cuerpo. Esto se hace en el módulo de Geometría, New Entity/Explode/ y se selecciona que el cuerpo se descomponga en sus caras faces. Se renombran las caras para tener una idea de la posición de cada una de ellas. Además, estos nombres serán los mismos que se usarán en OpenFOAM para poner las condiciones de contorno. WorkShop 2: Preprocesado con OpenFOAM – p.4 Mallado tetrahédrico Para realizar un mallado rápido con tetrahedros simplemente se crea una nueva malla en el módulo de Mallado, en Mesh/Create Mesh. Le damos en Asign a set of Hypothesis Automatic tetrahedrailzation. Él nos seleccionará automáticamente el algoritmo para la generación de la malla 1D, 2D y 3D. Para controlar el tamaño de la malla, vamos al algoritmo 1D y se se le impone el algoritmo de wire discretization, junto con la hipótesis de automatic length. En este caso el valor de 1 corresponde al mallado más fino. Una vez definido todo sólo queda mallar. Al mallar con un espaciado más grande de lo normal, el tubo pierde la forma redonda. Habrá pues que disminuir el tamaño de la malla para solucionarlo, usando por ejemplo la hipótesis Max Size. WorkShop 2: Preprocesado con OpenFOAM – p.5 Verificaciones de la malla Una vez generada la malla se podrían ver cortes internos, superficies, skewnes (deformaciones de elementos), etc Para ello, pulsando sobre la malla en el desplegable de la izquierda, y mediante el boton derecho sobre el cuerpo nos aparece un menú que nos permite mirar distintas cosas, como por ejemplo 1. Clipping. Corta la malla por un plano definido por el usuario. Posteriormente se puede visualizar esta mediante hilos, o con sombreado. 2. En controls, permite ver el ángulo máximo, puntos, aristas y caras libres WorkShop 2: Preprocesado con OpenFOAM – p.6 Mallado por proyección Este mallado es muy apropiado para cuerpos generados por una extrusión. Abrimos el archivo de una geometría simple llamada geomtubo. Se genera una nueva malla en el módulo de Mallado, Mesh/Create Mesh, y en el algoritmo 3D se usa 3D Extrusion. Para el algoritmo 2D se utilizarán cuadrángulos Se crean dos sub mallas. 1. La malla de la cara de entrada se usa un triangulador estándar 2. La malla de la cara de salida, se usa un método de proyección 2D que provenga de la cara de entrada. WorkShop 2: Preprocesado con OpenFOAM – p.7 Generar grupos de malla Una vez creada la malla, habrá que indicarle a Salome cuáles son las caras de los elementos que colindan con cada una de las superficies que delimitan el cuerpo para las condiciones de contorno. Esto se hace en Mesh/Create Group, y después se le da un nombre y se selecciona mediante Group on geometry. Una vez seleccionadas todas las caras, simplemente se exporta la malla a formato UNV (ideas). WorkShop 2: Preprocesado con OpenFOAM – p.8 Transformar la malla en OpenFOAM Ya dentro del terminal, creamos un caso copiando un tutorial correspondiente al solver que vayamos a utilizar. Por ejemplo, cavity del solver icoFoam Se copia el fichero .unv que se acaba de crear. Se ejecuta ideasUnvToFoam malla_tet.unv Si no ha dado ningún error tan sólo falta visualizar la malla. Si queremos visualizar la malla en ParaView con el comando paraFoam, tenemos que tener en cuenta que este comando lee las condiciones iniciales en el directorio 0, y si no coinciden los nombres no permite cargar nada. Para evitar esto se puede grabar el directorio 0 con otro nombre y crear otro vacío. mv 0 0.old mkdir 0 paraFoam WorkShop 2: Preprocesado con OpenFOAM – p.9 Transformar la malla en OpenFOAM Ahora se puede visualizar sin problema en ParaView WorkShop 2: Preprocesado con OpenFOAM – p.10 Preparar la simulación Para preparar la simulación se tienen que inicializar las condiciones de contorno. Para ello, volvemos a colocar el antiguo directorio 0 con su nombre y se editan todas las condiciones de contorno del problema. rmdir 0 mv 0.old 0 Tendremos que editar tanto las condiciones de presión en el diccionario 0/p y las de velocidad en 0/U WorkShop 2: Preprocesado con OpenFOAM – p.11 Obtener y representar los resultados Por último, para calcular los resultados simplemente habrá que ejecutar icoFoam Si todo ha salido bien, se podrán visualizar con ParaView mediante paraFoam WorkShop 2: Preprocesado con OpenFOAM – p.12