domingo, 22 de enero de 2017

METODOLOGIA SUGERIDA DE TRABAJO OPENFOAM


Introducción General

Previo a ejecutar la primera simulación en OpenFOAM siempre se recomienda tener un esquema general de trabajo, por tal razón OpenFOAM se sugiere previo a la preparación de casos y ejecución de los mismo cumplir los siguientes ítem.

       ·        Tener en lo posible el Área ò Volumen de control sobre el que se realizara el modelamiento bien definido.
       ·        Seleccionar de forma apropiada las condiciones de control y condiciones de contorno; dando una condición de uniformidad a los casos que se desean trabajar. 
       ·        TENER LAS HIPOTESIS DEL CASO BIEN DEFINIDAS PARA VALIDAR POSTERIOR AL PROCESAMIENTO
       ·        Tener diferentes fundamentos técnicos para la toma de decisiones en cada paso del modelo
·        TECLEAR CON CUIDADO LOS COMANDOS EN LA PLATAFORMA.

Antes de continuar se debe validar que cumplamos con los requisitos mencionados

Posteriormente presentamos la metodología general de trabajo en OpenFOAM, 
esta se encuentra basada en el diagrama que se presenta a continuación

Fuente : Tomado de (Foundation, 2014)

En donde desglosamos a continuación cada fase por separado, siendo el siguiente 

Preprocesamiento

Es aquella fase en la que se procede a elegir el Solver más adecuado para dar solución a nuestro caso  en paralelo se debe construir el mallado de la geometría a partir de los esquemas por elementos (Hexaédricos ò Triangulares)(Jasak, 2009). Permitiendo tener mayor acceso a una esquematización correcta del volumen de control que será simulado.
Para la fase de Preprocesamiento tenemos una oferta amplia de Software para construir mallado como los son

     ·        ANSA
     ·        EnGrid
     ·        GridPro
     ·        PointWise & Gridgen
     ·        Salome-Meca
     ·        FreeCAD
     ·        Gmsh

Siendo los anteriores mencionados los más estables  y Gratuitos en la plataforma UBUNTU 14.06 según (Jasak, 2009) y son ampliamente sugeridos por la red (www. cfd-online.com). En resumen, las siguientes imágenes muestran el proceso completado al que se debe llegar.


Fuente: Tomado de (Junhong, 2004)

En donde se muestra como debe transformarse de un volumen de control como es una elipse a un volumen compuesto por elementos rectangulares que en vista 3d son Hexaedros(Lucchini, 2008). Se debe resaltar que en esta fase dependiendo de la complejidad de la geometría deberá escogerse el tipo de elemento que sea más conveniente para el mallado(Nilsson, 2006).

Procesamiento

Esta fase es la más corta en términos de inversión de tiempo de trabajo y la memoria de trabajo computacional juega un papel importante pues definirá la variable [ Tiempo de Procesamiento (Seg)], siendo uno de los criterios más importantes para muchos diseñadores.
En esta fase se deben ingresar los valores de entrada para el modelo asociado, dependiendo del modelo requerirá sus respectivas variables.
En Windows se puede usar el comando para ingresar los datos con el comando ‘’mcedit’’ para editar desde la misma terminal, en Ubuntu se usa el editor ‘’gedit’’. 

Recomendamos 

*NO EDITAR LOS ARCHIVOS EN WORDPAD O BLOC DE NOTAS PUES CAMBIAN EL FORMATO DEL ARCHIVO; CAUSANDO QUE OPENFOAM NO RECONOZCA EL ARCHIVO Y SE PRODUZCA UN ERROR FATAL. En esta situación sugerimos que use el editor NOTEPAD++ (Editor Libre).

A continuación, se muestra la estructura de carpetas de trabajo de OpenFOAM, esta se debe respetar a toda costa para no tener inconvenientes en un futuro.


Fuente: Captura de Pantalla de OpenFOAM por el Autor

  • Donde la carpeta 0, contiene todos los archivos de la información de entrada al modelo

  • Donde la carpeta constant, contiene la información asociada a la malla ò volumen de control

  • Donde la carpeta system, contiene los archivos asociados al control del Solver & Controles a archivos de post-Procesamiento.

  • Posteriormente ingresando al Archivo de Velocidad editamos la velocidad en cada una de las direcciones, recordando que la Velocidad es de carácter Vectorial.



                                         Fuente: Captura de Pantalla de OpenFOAM por el Autor

Antes de continuar se debe calcular 2 campos importantes para controlar la convergencia del caso y el orden de las carpetas como se muestra a continuación.


Calculo del Co ( Numero de Courant)


Para Proceder a calcular el Courant se debe reemplazar los siguientes valores en la siguiente ecuación.


Fuente: Tomado de User-Guide OpenFOAM

  • Donde Sigma es deltaT, siendo la variable objetivo para establecer antes de empezar la simulación. La ecuación despejada en términos de deltaT será


Fuente : Tomado de User-Guide OpenFOAM

  • Donde Co [ Numero de Courant Deseado] , Se recomienda trabajar con valores menores a  0.5(Junhong, 2004).

  • Donde Sigmax [ Longitud Unitaria /# Elementos (Faces)], En caso que sean elementos cuadrados la longitud unitaria se puede asumir como la raíz cuadrada del área mínima; Sugerimos en lo posible usar elementos finitos rectangulares pues se puede tener mayor control que un mallado Triangular; en caso que sean Triangulos se debe calcular usando la regla de (Base*Altura/2).

  • Donde Velocidad [ Debe estar en la entrada del sistema y debe expresada en m/Seg],


Posteriormente se procede a guardar la información y se corre el modelo usando el comando desde la carpeta Principal


Fuente: Pantallazo Propio del autor de OpenFOAM 

Posteriormente se da Enter y esperamos a que OpenFOAM termine de procesar la información.

Calculo del Write Interval

En este paso se establece cada cuanto el solver guardara la información en el equipo, se realiza el cálculo a través de la siguiente expresión.

Fuente : Ecuacion Empirica Desarrollada por el autor

  • Donde se debe establecer el tiempo de simulación final para este caso lo haremos con 0.5, posteriormente ingresamos el Sigma t. Finalmente sabemos cuántas veces deberá imprimir información, Para lo que podemos ordenar que cada # Veces determinadas que imprima resultados guarde los resultados asociados.
Aplicando la Ecuacion mostrada anteriormente deseamos tener 5 carpetas para este caso aplicando la ecuacion obtuvimos de forma eficiente la cantidad de carpetas que deseábamos



En la imagen se observan las carpetas diferentes a la carpeta 0 , constant y system son las carpetas de trabajo que deseábamos guardara el Solver , validándose de forma correcta el funcionamiento de la ecuacion planteada anteriormente.

Posteriormente ejecutamos el nombre del Solver y obtenemos


Fuente: Pantallazo Propio del autor en OpenFOAM

Como se observa en la imagen anterior se imprimir los resultados hasta que termina todo el procesamiento , una vez se consiguen estos se puede determinar si el solver está trabajando de forma estable con el caso , bajo la condición que el Courant Number mean se mantenga constante a medida que imprime un paso temporal de otro(Rusche, 2011) , también cuando el residual es muy pequeño.

PostProcesamiento

En esta fase de proceder a observar y analizar los detalles de la simulación con paraFoam , para lo que procedemos a ejecutar el siguiente comando terminada la simulación 


Fuente: Pantallazo Propio del autor en OpenFOAM

Posteriormente se abrirá el programa de visualización de datos de OpenFOAM por defecto, segundo a segundo en el tiempo que le hayamos asignado para guardar los resultados.


Fuente: Pantallazo Propio del autor en OpenFOAM

En donde podemos ver los perfiles de la variable que deseemos sobre el volumen de control, debe tenerse en cuenta que el nivel de detalle de la simulación está directamente relacionado con la calidad de refinamiento (Hacer que la malla sea más fina y reporte las variables a un nivel de detalle más alto), En consecuencia, toma un tiempo mayor de procesamiento, pero mejores resultados.

En futuros Entradas se explicará más a detalle cómo se debe realizar el proceso de validación y refinamiento de geometrías. 

Bibliografia

    1.     Foundation, O. (2014). OpenFOAM - The Open Source CFD Toolbox - User Guide. User Guide, 222. https://doi.org/10.1023/A
     2.     Jasak, H. (2009). Dynamic Mesh Handling in OpenFOAM. 47th AIAA Aerospace Sciences Meeting Including The New Horizons Forum and Aerospace Exposition, 1–10. https://doi.org/10.2514/6.2009-341
      3.     Junhong, W. (2004). Open Source CFD Solver - OpenFOAM. Lecture, 1–5.
  4.     Lucchini, T. (2008). OpenFOAM programming tutorial. Talk, 1–47. https://doi.org/10.1016/0303-8467(95)00031-E
      5.     Nilsson, H. (2006). Evaluation of OpenFOAM for CFD of Turbulent Flow in Water Turbines. 23rd IAHR Symposium, 1–9.
   6.     Rusche, H. (2011). OpenFOAM Tutorials : Programming Session Tutorials : Programming Session. Training, 1–19.


viernes, 20 de enero de 2017

INTRODUCCION A OPENFOAM


¿QUE ES OPENFOAM?

OpenFOAM es un Software OpenSource desarrollado por Henry Weller en 1980, basándose en una Toolbox con C++ orientado a objetos(Lucchini, 2008) , con la finalidad de solucionar problemas asociados a fluidos a través del método FVM (FINITE VOLUME METHOD), usando un esquema de preprocesamiento / procesamiento  y postprocesamiento(Rusche, 2011) en bibliotecas con una licencia de tipo GNU ( General Public Licence)(Vuorinen, Keskinen, Duwig, & Boersma, 2014).

Entonces, ¿Qué puedo Hacer en OpenFOAM?

En OpenFOAM puedes:

  •       Diseñar un sistema a partir de geometrías analíticas(Jasak & Rusche, 2010)
  •      Validar un diseño de Ingeniería en muy poco tiempo(Culpo, 2011)
  •     Modelar el comportamiento de un sistema para hacerlo más llamativo(Hakan Nilsson, 2006)
  •     Reducir costos de construcción y operación para verlo en acción, ¡Puedes Modelarlo y Verificar su comportamiento a través de simulaciones ¡(Håkan Nilsson, 2015)
  •     OpenFOAM es la base de muchos programas pagos en el mercado.
  •     Debido a que Ha sido Probado en muchos casos, puedes ser DESARROLLADOR Y APORTAR UNA NUEVA SOLUCION A CUALQUIER CAMPO.(Jasak, Jemcov, & Tukovic, 2007

A continuación, se listan los campos que puedes Modelar para los campos asociados

  •    CFD Flow Modelling (Incompresible): Modelación de Flujo Libre, Flujo a Presión sobre cualquier estructura Hidráulica ò Geometría sobre la que se desee Modelar el Flujo de un Sistema.











Fuente: Elaborada por el autor en ParaView 5.0 & GNUPLOT 5.0

En las imágenes de la parte superior se observa el perfil de velocidad de un fluido pasando a través de una caja rectangular , a la derecha la validación del perfil de flujo parabólico lo que nos indica que es un sistema hidráulico típico(Jasak, 2009)


  •      Modelación Flujo Compresible: En este modo se modelar fluidos compresibles (Gases, Vapores, entre otros) En un volumen de control cualquiera.


Tomado de (Tabor, 2010)

En este modo OpenFOAM asocia las propiedades termo físicas  e hidráulicas de un  fluido 
         para  mostrar la simulación de un motor V2 inyectando una mezcla perfecta de O2 y Gasolina              en mezcla  perfecto(Junhong, 2004).

A continuación, se listan otros modelos que se pueden correr a través de OpenFOAM


  •           Flujo Multifasico (Liquido – Liquido), (Liquido – Gas) ò más de 2 componentes en 1 sola simulación 
  •              Simulación Partículas: Simulación de la velocidad, fracción volumétrica, entre otras variables de una serie de moléculas en un volumen de control.
  •       Combustión: Simulaciones de casos asociados a reacciones químicas de Combustión, Producción de CO2, Entre otras
  •           Simulación de Transferencia de Calor Conjunta: Modelación de sistemas conjuntos para conocer la forma en que se distribuye el calor a través de todo el sistema.
  •                      Electromagnetismo: Modelación de campos Electro-Magnéticos a lo largo de un volumen de control en diferentes configuraciones.
¿Cómo Soluciona los problemas de una forma tan rápida?

OpenFOAM soluciona los problemas ingresando un volumen de control y aplicando ecuaciones con Matemática Tensorial, haciendo que problemas de validación de diseños, Verificación de sistemas Hidráulicos y Optimización de diferentes tipos de sistemas sea una tarea sencilla para el campo de trabajo de Ingenieros, Investigadores, Diseñadores ò Innovadores.
Para mostrar de una manera gráfica el tipo de procesos que resuelve OpenFOAM mostramos a continuación la ecuación de Navier – Stokes para conocer la velocidad.

Fuente: (Hakan Nilsson, 2006)

Donde se combinan toda la matemática Vectorial  para el desarrollo de diferentes sistemas , para este caso en particular , cabe denotar que la letra [U] es la Velocidad expresada en unidades de sistema Métrico  [ m/s] y la letra griega [miu] es la viscosidad cinemática [ m/s^2]  , el valor [p] es el escalar asociado a la presión en el sistema(Higuera, Lara, & Losada, 2013) . Teniendo en cuenta las variables anteriormente expresadas la técnica de solución más apropiada es transformar esta ecuación a lenguaje orientado a objetos como se muestra a continuación


Fuente: Tomado del Programa OpenFOAM del Autor

En la ilustración anterior se detalla cómo se establece el objetivo para que OpenFOAM aplique MÉTODOS NUMÉRICOS a matrices, las cuales producirán resultados tangibles que se expresan en animaciones tridimensionales de las variables que cada Solver tiene por defecto programadas.


Fuente: Generada por el autor en ParaView 5.0

Como se puede observar en la ilustración anterior, OpenFOAM muestra el perfil de flujo de un fluido cavitando a lo largo de un volumen de control cuadrado en una superficie al lado izquierdo, mientras que al lado izquierdo se puede observar el nivel de detalle para el movimiento de los vectores mostrando el campo de Velocidad para cada tiempo de simulación guardado.

¿Qué Ventajas Tiene Trabajar con OpenFOAM?

OpenFOAM es un Software LIBRE, lo que permite a los usuarios modificar, usar ò ajustar el software a sus necesidades, permitiendo tener mayor versatilidad y mayor rapidez a la hora de obtener resultados en un diseño de Ingeniería. Entre las Ventajas que más se deben resaltar se encuentra

       ·         Es libre lo que Permite tener mayor libertad en los procesos que desee ejecutar cada usuario
       ·         Permite Modificar sus librerías, lo que permite que los usuarios DESARROLLEN SOFTWARE para nuevas soluciones en diferentes campos de la Ingeniería.
        ·         En Muy poco Tiempo puedes obtener Resultados Rápidos y de Validez Estadística
        ·         Soporte del Equipo de CFD SUPPORT 24/7 para proyectos ò cualquier necesidad del usuario

      Debido a que la plataforma en su mayoría funciona por código, en determinados casos no es amigable con el usuario; Para cubrir esta necesidad OpenFOAM, OpenFOAM ha sido documentado todo su código para cualquiera de sus funciones.

Bibliografía

         1)Culpo, M. (2011). Current bottlenecks in the scalability of OpenFOAM on massively parallel clusters. PRACE White Paper to Appear on Http://www Praceri …, 1–13. Retrieved from http://www.prace-ri.eu/IMG/pdf/Current_Bottlenecks_in_the_Scalability_of_OpenFOAM_on_Massively_Parallel_Clusters-2.pdf%5Cnpapers3://publication/uuid/55A0715F-3674-45DE-9A64-D3F9CE41031A
          2)Higuera, P., Lara, J. L., & Losada, I. J. (2013). Simulating coastal engineering processes with OpenFOAM®. Coastal Engineering, 71, 119–134. https://doi.org/10.1016/j.coastaleng.2012.06.002
       3)Jasak, H. (2009). Dynamic Mesh Handling in OpenFOAM. 47th AIAA Aerospace Sciences Meeting Including The New Horizons Forum and Aerospace Exposition, 1–10. https://doi.org/10.2514/6.2009-341
         4 )Jasak, H., Jemcov, A., & Tukovic, Z. (2007). OpenFOAM : A C ++ Library for Complex Physics Simulations. International Workshop on Coupled Methods in Numerical Dynamics, m, 1–20.
         5)Jasak, H., & Rusche, H. (2010). Five Basic Classes in OpenFOAM. Presentation, (June), 1–16.
         6)Junhong, W. (2004). Open Source CFD Solver - OpenFOAM. Lecture, 1–5.
         7)Lucchini, T. (2008). OpenFOAM programming tutorial. Talk, 1–47. https://doi.org/10.1016/0303-8467(95)00031-E
         8)Nilsson, H. (2006). Evaluation of OpenFOAM for CFD of Turbulent Flow in Water Turbines. 23rd IAHR Symposium, 1–9.
            9)Nilsson, H. (2015). High-level programming in OpenFOAM. In OS_CFD (pp. 1–16).
     10)Rusche, H. (2011). OpenFOAM Tutorials : Programming Session Tutorials : Programming Session. Training, 1–19.
         11)Tabor, G. (2010). OpenFOAM: An Exeter Perspective. European Conference on Computational Fluid Dynamics ECCOMAS CFD, (June), 14–17.
       12) Vuorinen, V., Keskinen, J. P., Duwig, C., & Boersma, B. J. (2014). On the implementation of low-dissipative Runge-Kutta projection methods for time dependent flows using OpenFOAM?? Computers and Fluids, 93, 153–163. https://doi.org/10.1016/j.compfluid.2014.01.026