Anda di halaman 1dari 59

Introduccin a OpenFoam

Presentacin general de OpenFoam


E. Martn
Mecnica de Fluidos. Universidad de Vigo
http://webs.uvigo.es/emortega/

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Organizacin del Minitutorial
Introduccin a OpenFoam:
Enlaces de inters
Qu es?
Capacidades
Estructura del cdigo
Estructura de carpetas y archivos de cada caso

Ejercicios prcticos
Flujo isotermo incompresible en una cavidad 2D
Visualizacin de resultados con paraview
Flujo isotermo en el interior de un codo 2D
Flujo isotermo en el interior de un codo 3D

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Enlaces de inters
Pgina 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-extend
http://sourceforge.net/projects/openfoam-extend/
CFD Online: http://www.cfd-online.com/
Foro de discusin 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 Numrica 2015


http://matematicas.uclm.es/crn2015/
Qu es OpenFoam?
OPENFOAM (Open Field Operation And Manipulation) es una herramienta de
simulacin numrica basada en esquemas de volmenes finitos (bsicamente, se trata
de una biblioteca de utilidades para implementar un esquema de volmenes finitos)
especialmente orientada para la simulacin numrica en mecnica de fluidos (cfd).
Es un cdigo de software libre (con acceso, por tanto, al cdigo fuente) programado en
C++ y producido por opencfd ltd.
OPENFOAM es capaz de resolver tanto flujos sencillos como complejos (incluyendo
flujos turbulentos, fenmenos de transferencia de calor y reacciones qumicas), as como
problemas en otros campos (como problemas electromagnticos).
Una de las principales ventajas, al margen de su flexibilidad, es su capacidad para ser
ejecutado en paralelo. La implementacin del clculo distribuido (basada en el uso de
mpi y directamente explotable por parte de procesadores multincleo, clster o redes de
ordenadores) no aade ninguna dificultad al usuario, por lo que la capacidad de clculo
del cdigo est nicamente limitada por el hardware disponible

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Qu es OpenFoam?
OpenFOAM es una librera de archivos en C++, usada principalmente para crear
executables, conocidas como applications. Las aplicaciones pueden ser de dos tipos:
solvers, diseados para resolver problemas especficos de medios continuos;
utilities, diseadas para ejecutar tareas que involucran manipulacin de datos

Una de las fortalezas de OpenFOAM es que cada usuario puede crear nuevos solvers y
utilities siempre que tenga un conocimiento previo de la fsica involucrada y tcnicas de
programacin.

OpenFOAM se instala con herramientas adicionales para el pre- y post-procesado de los


resultados.

Se instala en sistemas operativos Linux (ver en www.openfoam.com detalles sobre la


instalacin).

No existe instalacin para Windows. En este caso es necesario instalarlo como una
mquina virtual
Ciudad Real Numrica 2015
http://matematicas.uclm.es/crn2015/
Instalacin en S.O. Windows
Bajar e instalar la mquina virtual para sistema operativo Windows:

http://www.oracle.com/technetwork/es/server-storage/virtualbox/downloads/index.html

Una vez instalada la mquina virtual, ejecutadla, e ir a:

archivo >> importar servicio actualizado

y escoger el archivo:

Debian7SoftLibre.ova
El usuario normal y su contrasea es alumno
El superusuario es root con contrasea admin
Introducir en la mquina virtual la carpeta Tutoriales mediante dispositivo usb
Antes de ejecutar comandos en terminales: Abrir terminal y ejecutar el script
startFoam

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Qu es OpenFoam?

Extrado de la User Guide de OF: http://foam.sourceforge.net/docs/Guides-a4/UserGuide.pdf

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Cdigo fuente

Comandos tiles para navegar en las fuentes de OpenFOAM:


app = $WM_PROJECT_DIR/applications
sol = $WM_PROJECT_DIR/applications/solvers
util = $WM_PROJECT_DIR/applications/utilities
src = $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 Numrica 2015


http://matematicas.uclm.es/crn2015/
Estructura de OpenFoam
Ejecutar en terminal:
startFoam
cd $WM_PROJECT_DIR

applications: Ficheros fuente de todos los ejecutables:


solvers
utilities
bin
test
bin: scripts bsicos de ejecucin.
doc: pdf y Doxygen documentacion.
Doxygen
Guides-a4
lib: libreras compiladas.
src: ficheros librera fuente.
test: ficheros Fuente para testear las libreras.
tutorials: tutoriales, casos de ejemplo.
wmake: compilacin.
Ciudad Real Numrica 2015
http://matematicas.uclm.es/crn2015/
Estructura de archivos del software

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Estructura de archivos carpeta Applications

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Estructura de archivos carpeta Applications

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Estructura de archivos de un caso

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ejemplo: Tutorial cavity

Geometra 2D, incompresible, laminar, isotermo

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Carpeta cavity

Datos del fluido:


viscosidad cinemtica

Condiciones de
contorno e iniciales

Control iteraciones, discretizacin


Datos para generar la geometra y la malla estructurada

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Aspecto del fichero transportProperties

Cabecera OpenFoam

Viscosidad cinemtica fluido


Dimensiones de las variables
Ciudad Real Numrica 2015
http://matematicas.uclm.es/crn2015/
Dimensiones de las variables

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Geometra de la cavidad
movingWall

frontAndBack
fixedWalls

fixedWalls
fixedWalls

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Fichero blockMeshDict

Cabecera OpenFoam

Vrtice 0
Vrtice 1
Vrtice 2

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Fichero blockMeshDict

Contornos/fronteras

Nombres de las fronteras

Tipo de frontera

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Tipos de fronteras

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Sentido vector normal a cada cara

Sentido antihorario

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Generadores de malla propios de OF

Generacin de malla: Ejecutar en un terminal en el directorio del


caso:
startFoam
blockMesh > log.blockMesh
checkMesh > log.checkMesh

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Generacin de malla con utilidad blockMesh

Archivos generados dentro de la carpeta constant/polyMesh:

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Generacin de malla con blockMesh
Archivo boundary: contiene los contornos de la
geometra
points: coordenadas 3D de los vrtices de la malla
faces: construccin de las caras de las celdas de la
malla a partir del nmero de cada vrtice

Archivo
boundary

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Condiciones iniciales y de contorno: Fichero U

Condicin inicial de U

Condiciones de contorno

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Tipos de condiciones de contorno

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Condiciones iniciales y de contorno: Fichero p

Condicin inicial de p

Condiciones de contorno para la


presin p

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ficheros carpeta system: controlDict
Application
Solver

Paso temporal

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Modelos fsicos en OpenFoam

http://www.openfoam.org/features
Ciudad Real Numrica 2015
http://matematicas.uclm.es/crn2015/
Solvers de OpenFoam

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Solvers de OpenFoam

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Solvers de OpenFoam

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ficheros carpeta system: fvSchemes

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ficheros carpeta system: fvSchemes

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ficheros carpeta system: fvSolution

Linear Solvers

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ejecucin del caso cavity

Recordatorio: Generacin de malla:


Ejecutar en un terminal en el directorio del caso:

blockMesh > log.blockMesh


checkMesh > log.checkMesh

Ejecutar paraFoam para visualizar la malla antes de resolver y


comprobar que todo es correcto:

paraFoam &

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ejecucin del caso cavity

Ejecucin del solver: Ejecutar en un terminal en el


directorio del caso:
icoFoam > log.icoFoam
Aparecern archivos de resultados para cada instante de tiempo

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ejecucin del caso cavity

Visualizacin 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 Numrica 2015


http://matematicas.uclm.es/crn2015/
Ejecucin 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 simulacin con
paraview

Alternativa 2:
paraFoam &

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Script de ejecucin del caso
Fichero script_exe:

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Postprocesado del caso

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Scripts de ejecucin automtica: Allclean, Allrun
Fichero Allclean:

Ejecucin del fichero Allclean:


./Allclean

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Scripts de ejecucin automtica: Allclean, Allrun

Fichero Allrun:

Ejecucin:
./Allrun

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ejercicio: Remallado del caso cavity
Tamao de celdas del mallado en x e y: 1mm
0.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 Numrica 2015


http://matematicas.uclm.es/crn2015/
Tutorial elbow

Ejemplo 2D, evolutivo, laminar, incompresible e


isotermo

Conversin a openFoam: ejecutar en


terminal Malla no
estructura en
formato de
fluentMeshToFoam elbow.msh Fluent

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Conversiones de mallas entre distintos formatos

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Conversiones de mallas entre distintos formatos

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Caso elbow: Carpeta polyMesh

Comprobar
condiciones de
contorno en el
fichero 0

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Visualizacin de geometra y malla
Preprocesado:
Alternativa 1:
foamToVTK -time 0
Transforma los ficheros de las condiciones
iniciales a formato VTK
paraview &
Visualiza la geometra, mallado y condiciones
iniciales de la simulacin
Alternativa 2:
paraFoam &
Ciudad Real Numrica 2015
http://matematicas.uclm.es/crn2015/
Visualizacin de geometra y malla

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Visualizacin de geometra y malla

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Ejecucin y visualizacin de los resultados
icoFoam > log.icoFoam
(ejecuta el solver hasta tiempo 10)

foamToVTK -time 0:10


paraview &

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Tutorial elbow_3D
Ejemplo 3D, evolutivo, laminar, incompresible e isotermo

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Archivo polyMesh/boundary

0/U

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/
Resultados tutorial elbow_3D

Ciudad Real Numrica 2015


http://matematicas.uclm.es/crn2015/