Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Introducción a OpenFoam
Presentación general de OpenFoam
E. Martín
Mecánica de Fluidos. Universidad de Vigohttp://webs.uvigo.es/emortega/
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Organización del Minitutorial
Introducción a OpenFoam:• Enlaces de interés• ¿Qué es?• Capacidades• Estructura del código• Estructura de carpetas y archivos de cada caso
Ejercicios prácticos• Flujo isotermo incompresible en una cavidad 2D
Visualización de resultados con paraview• Flujo isotermo en el interior de un codo 2D• Flujo isotermo en el interior de un codo 3D
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Enlaces de interés
• Página web oficial de OpenFOAM:http://www.openfoam.com/
• Wiki no oficial sobre OpenFOAM :http://openfoamwiki.net/index.php/Main_Page
• PhD course in CFD with Open Source software:http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009/
• OpenFOAM-extendhttp://sourceforge.net/projects/openfoam-extend/
• CFD Online: http://www.cfd-online.com/Foro de discusión sobre OpenFOAM en CFD Online :
http://www.cfd-online.com/Forums/openfoam/Links on-line de modelos de turbulencia
http://www.cfd-online.com/Wiki/Turbulence_modeling
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
¿Qué es OpenFoam?
OPENFOAM® (Open Field Operation And Manipulation) es una herramienta desimulación numérica basada en esquemas de volúmenes finitos (básicamente, se tratade una biblioteca de utilidades para implementar un esquema de volúmenes finitos)especialmente orientada para la simulación numérica en mecánica de fluidos (cfd).
Es un código de software libre (con acceso, por tanto, al código fuente) programado en C++ y producido por opencfd ltd.
OPENFOAM® es capaz de resolver tanto flujos sencillos como complejos (incluyendo flujos turbulentos, fenómenos de transferencia de calor y reacciones químicas), así como problemas en otros campos (como problemas electromagnéticos).
Una de las principales ventajas, al margen de su flexibilidad, es su capacidad para serejecutado en paralelo. La implementación del cálculo distribuido (basada en el uso dempi y directamente explotable por parte de procesadores multinúcleo, clúster o redes deordenadores) no añade ninguna dificultad al usuario, por lo que la capacidad de cálculodel código está únicamente limitada por el hardware disponible
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
¿Qué es OpenFoam?
OpenFOAM es una librería de archivos en C++, usada principalmente para crearexecutables, conocidas como applications. Las aplicaciones pueden ser de dos tipos:• solvers, diseñados para resolver problemas específicos de medios continuos;• utilities, diseñadas para ejecutar tareas que involucran manipulación de datos
Una de las fortalezas de OpenFOAM es que cada usuario puede crear nuevos solvers yutilities siempre que tenga un conocimiento previo de la física involucrada y técnicas deprogramación.
OpenFOAM se instala con herramientas adicionales para el pre- y post-procesado de losresultados.
Se instala en sistemas operativos Linux (ver en www.openfoam.com detalles sobre lainstalación).
No existe instalación para Windows. En este caso es necesario instalarlo como unamáquina virtual
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Instalación en S.O. Windows• Bajar e instalar la máquina virtual para sistema operativo Windows:
http://www.oracle.com/technetwork/es/server-storage/virtualbox/downloads/index.html
• Una vez instalada la máquina virtual, ejecutadla, e ir a:
archivo >> importar servicio actualizado
y escoger el archivo:
Debian7SoftLibre.ova• El usuario normal y su contraseña es alumno• El superusuario es root con contraseña admin• Introducir en la máquina virtual la carpeta Tutoriales mediante dispositivo usb• Antes de ejecutar comandos en terminales: Abrir terminal y ejecutar el script
startFoam
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
¿Qué es OpenFoam?
Extraído de la User Guide de OF: http://foam.sourceforge.net/docs/Guides-a4/UserGuide.pdf
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Código fuente
• Comandos útiles para navegar en las fuentes de OpenFOAM:app = $WM_PROJECT_DIR/applicationssol = $WM_PROJECT_DIR/applications/solversutil = $WM_PROJECT_DIR/applications/utilitiessrc = $WM_PROJECT_DIR/src
• Variables de entorno:$FOAM_APP = $WM_PROJECT_DIR/applications$FOAM_SOLVERS = $WM_PROJECT_DIR/applications/solvers$FOAM_UTILITIES = $WM_PROJECT_DIR/applications/utilities$FOAM_SRC = $WM_PROJECT_DIR/src
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Estructura de OpenFoam
Ejecutar en terminal:startFoamcd $WM_PROJECT_DIR
applications: Ficheros fuente de todos los ejecutables:solversutilitiesbintest
bin: scripts básicos de ejecución.doc: pdf y Doxygen documentacion.
DoxygenGuides-a4
lib: librerías compiladas.src: ficheros librería fuente.test: ficheros Fuente para testear las librerías.tutorials: tutoriales, casos de ejemplo.wmake: compilación.
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Estructura de archivos del software
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Estructura de archivos carpeta “Applications”
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Estructura de archivos carpeta “Applications”
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Estructura de archivos de un caso
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ejemplo: Tutorial “cavity”
Geometría 2D, incompresible, laminar, isotermo
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Carpeta “cavity”
Condiciones de contorno e iniciales
Datos para generar la geometría y la malla estructurada
Datos del fluido: viscosidad cinemática
Control iteraciones, discretización
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Aspecto del fichero “transportProperties”
Cabecera OpenFoam
Viscosidad cinemática fluidoDimensiones de las variables
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Dimensiones de las variables
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Geometría de la cavidad
movingWall
fixedWallsfrontAndBack
fixedWallsfixedWalls
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Fichero “blockMeshDict”
Cabecera OpenFoam
Vértice 0Vértice 1Vértice 2
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Fichero “blockMeshDict”
Contornos/fronteras
Nombres de las fronteras
Tipo de frontera
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Tipos de fronteras
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Sentido vector normal a cada cara
• Sentido antihorario
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Generadores de malla propios de OF
Generación de malla: Ejecutar en un terminal en el directorio del caso:
startFoamblockMesh > log.blockMeshcheckMesh > log.checkMesh
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Generación de malla con utilidad “blockMesh”
Archivos generados dentro de la carpeta “constant/polyMesh”:
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Generación de malla con “blockMesh”
• Archivo “boundary”: contiene los contornos de la geometría
• “points”: coordenadas 3D de los vértices de la malla• “faces”: construcción de las caras de las celdas de la
malla a partir del número de cada vértice
Archivo“boundary”
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Condiciones iniciales y de contorno: Fichero “U”
Condición inicial de U
Condiciones de contorno
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Condiciones iniciales y de contorno: Fichero “p”
Condición inicial de p
Condiciones de contorno para la presión p
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ficheros carpeta “system”: controlDict
ApplicationSolver
Paso temporal
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Modelos físicos en OpenFoam
http://www.openfoam.org/features
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Solvers de OpenFoam
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Solvers de OpenFoam
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Solvers de OpenFoam
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ficheros carpeta “system”: fvSchemes
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ficheros carpeta “system”: fvSchemes
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ficheros carpeta “system”: fvSolution
Linear Solvers
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ejecución del caso “cavity”
Recordatorio: Generación de malla:Ejecutar en un terminal en el directorio del caso:
blockMesh > log.blockMeshcheckMesh > log.checkMesh
Ejecutar paraFoam para visualizar la malla antes de resolver y comprobar que todo es correcto:
paraFoam &
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ejecución del caso “cavity”
Ejecución del solver: Ejecutar en un terminal en el directorio del caso:
icoFoam > log.icoFoamAparecerán archivos de resultados para cada instante de tiempo
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ejecución del caso “cavity”
Visualización de los residuos: Ejecutar en un terminal en el directorio del caso:
gnuplot Residuals –
Es necesario tener en el caso el fichero “Residuals”
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ejecución del caso “cavity”
Postprocesado:Alternativa 1:
foamToVTK -time 0:0.5 > log.foamToVTK– Transforma los ficheros de resultados a formato VTK
paraview &– Visualiza los resultados obtenidos en la simulación con
paraview
Alternativa 2:paraFoam &
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Script de ejecución del caso
Fichero “script_exe”:
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Postprocesado del caso
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Scripts de ejecución automática: “Allclean”, “Allrun”
Fichero “Allclean”:
Ejecución del fichero “Allclean”: ./Allclean
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Scripts de ejecución automática: “Allclean”, “Allrun”
Fichero “Allrun”:
Ejecución: ./Allrun
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ejercicio: Remallado del caso “cavity”
• Tamaño de celdas del mallado en x e y: 1mm0.1 m/0.001 m = 100 celdas en x e y
• Necesario editar y modificar archivo “blockMeshDict”
• Volver a ejecutar el caso desde el principio./Allclean./Allrun
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Tutorial “elbow”
Ejemplo 2D, evolutivo, laminar, incompresible e isotermo
Malla no estructura en formato de
Fluent
Conversión a openFoam: ejecutar en terminal
fluentMeshToFoam elbow.msh
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Conversiones de mallas entre distintos formatos
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Conversiones de mallas entre distintos formatos
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Caso “elbow”: Carpeta “polyMesh”
Comprobar condiciones de contorno en el
fichero “0”
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Visualización de geometría y malla
Preprocesado:Alternativa 1:
foamToVTK -time 0 • Transforma los ficheros de las condiciones
iniciales a formato VTKparaview &• Visualiza la geometría, mallado y condiciones
iniciales de la simulaciónAlternativa 2:
paraFoam &
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Visualización de geometría y malla
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Visualización de geometría y malla
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Ejecución y visualización de los resultados
icoFoam > log.icoFoam(ejecuta el solver hasta tiempo 10)
foamToVTK -time 0:10 paraview &
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Tutorial “elbow_3D”
Ejemplo 3D, evolutivo, laminar, incompresible e isotermo
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Archivo “polyMesh/boundary”
“0/U”
Ciudad Real Numérica 2015 http://matematicas.uclm.es/crn2015/
Resultados tutorial “elbow_3D”