Sesión 4. Paralelización y postprocesado.
Flujo incompresible con superficie libre.
E. Martín1, M. Meis1,2y F. Varas1,3
1Univ. de Vigo,2Vicus Desarrollos Tecnológicos y3Univ. Politécnica de Madrid
Simulación en dinámica de fluidos con OpenFOAM
Outline
1 Problema con superficie libre
2 Paralelización
Herramientas OpenFOAM1.7.1 Ejemplo. Rotura presa paralelo
3 Aplicaciones en OpenFOAM 1.7.1
Outline
1 Problema con superficie libre
2 Paralelización
Herramientas OpenFOAM1.7.1 Ejemplo. Rotura presa paralelo
3 Aplicaciones en OpenFOAM 1.7.1
Descripción del problema.Rotura de una presa
Características
Problema evolutivo
Superficie libre (VOF model) Inicialización de variables 2 fluidos incompresibles Problema 2D laminar
Hipótesis: Se desprecia el ángulo en punto de contacto fases/pared
Descripción del problema.Rotura de una presa
Ecuaciones
∇ · u = 0 (1)
∂(ρu)
∂t + ∇ · (ρuu) − (∆µu) = −∇p + ρg (2)
∂α
∂t + ∇ · (αu) = 0 (3)
(∂α
∂t + ∇ · (αu) + ∇ · (α(1 − α)ur) =0)
Descripción del problema.Rotura de una presa
Geometría y dimensiones
Descripción del problema.Rotura de una presa
Definición de la malla
Ruta del archivo (relativa a la carpeta principal del problema): constant/polyMesh
$ ls /opt/openfoam171/tutorials/multiphase/interFoam/laminar/damBreak/constant/polyMesh
Generación de la malla
Ejecución del comando en la carpeta raíz
$ blockMesh
Descripción del problema.Rotura de una presa
Malla
Condiciones de contorno e iniciales
Archivos Carpeta 0
?
$ gedit /opt/openfoam171/applications/solvers/multiphase/interFoam/createFields.H
Condiciones de contorno e iniciales (cont)
Archivos U alpha1 p_rgh
OJO CON LAS UNIDADES (U-105)
Definición propiedades físicas
Archivos
Carpeta constant
?
$ gedit /opt/openfoam171/applications/solvers/multiphase/interFoam/createFields.H
$ gedit /opt/openfoam171/applications/solvers/multiphase/interFoam/interFoam.C
Condiciones de contorno e iniciales (cont)
Archivos
transportProperties
http://www.openfoam.com/features/transport.php turbulenceProperties (← Prob. laminar?)
http:
//www.openfoam.org/docs/user/turbulence.php g
Esquema numérico y parámetros de resolución
Carpeta System Archivos obligatorios
controlDict fvScheme fvSolution
Modificación condiciones iniciales
Herramienta setFields
Especificación mediante setFieldsDict
Selecciona un conjunto de celdas a través de un diccionario
Modifica los archivos iniciales
+Info: /opt/openfoam171/applications/utilities/preProcessing/setFields/
Ubicación setFieldsDict Carpeta System
Comandos: Ejecución y visualización
Ejecución
$ setFields
$ interFoam > log
Visualización
$ foamToVTK
$ paraview
Outline
1 Problema con superficie libre
2 Paralelización
Herramientas OpenFOAM1.7.1 Ejemplo. Rotura presa paralelo
3 Aplicaciones en OpenFOAM 1.7.1
Outline
1 Problema con superficie libre
2 Paralelización
Herramientas OpenFOAM1.7.1 Ejemplo. Rotura presa paralelo
3 Aplicaciones en OpenFOAM 1.7.1
Paralelización en OF-1.7.1
Características
Paralelización mediante descomposición de dominios Descomposición del dominio mediante la utilidad decomposePar
Uso del diccionario decomposeParDict
Implementación de la paralelización mediante openMPI Creación de tantas carpetas como número de particiones con el nombre processor
Procesos de cálculo paralelo
descomposición de la malla y los campos ejecuciones en paralelo
Diccionario decomposeParDict
Características
Diccionario de la utilidad decomposePar Ubicación: carpeta system
Especificación de los algoritmos y parámetros de la descompsición de dominios
+info: http://www.openfoam.org/archive/1.7.1/
docs/user/running-applications-parallel.php
Diccionario decomposeParDict (cont)
Palabras Clave
numberOfSubdomains Indica el número de dominios en los que se descompone el caso
method Indica el método de descomposición a utilizar distributed Entrada lógica para la indicación de la distribución
de datos
root ndica la ruta de la carpeta del caso en cada nodo
Diccionario decomposeParDict (cont)
Métodos de descomposición
simple Descomposición geométrica simple en función del orden de los ejes coordenados (X, Y, Z)
hierarchical Igual que el métodos simple pero sel usuario especifica el orden de los ejes (ej: Z, X, Y) metis Descomposición mediante el algoritmo Metis scotch Descomposición mediante el algoritmo scotch manual Descomposición manual, donde el ususario
Diccionario decomposeParDict (cont)
Ejemplo
Utilidades para la paralelización
Modo de operación
Pasos
1 $ decomposePar -case [casename]
2 $ mpirun -hostfile <machinefile> -np <nProcs>
<foamExec> <case> <otherArgu> -parallel
machinefile: archivo quye contiene los nombres de las máquinas
nProcs: número de procesadores ...
3 $ reconstructPar -case [casename]
Outline
1 Problema con superficie libre
2 Paralelización
Herramientas OpenFOAM1.7.1 Ejemplo. Rotura presa paralelo
3 Aplicaciones en OpenFOAM 1.7.1
Preparación de los archivos
Copia de archivos
$ cd ..
$ mkdir damBreakFine
$ cp -r damBreak/0 damBreakFine
$ cp -r damBreak/system damBreakFine
$ cp -r damBreak/constant damBreakFine
Preparación de los archivos
Modificación de bloques de blockMeshDict blocks
(
hex (0 1 5 4 12 13 17 16) (46 10 1) simpleGrading (1 1 1) hex (2 3 7 6 14 15 19 18) (40 10 1) simpleGrading (1 1 1) hex (4 5 9 8 16 17 21 20) (46 76 1) simpleGrading (1 2 1) hex (5 6 10 9 17 18 22 21) (4 76 1) simpleGrading (1 2 1) hex (6 7 11 10 18 19 23 22) (40 76 1) simpleGrading (1 2 1) );
Archivo decomposeParDict
Ejecución y visualización
Ejecución
$ blockMesh
$ setFields
$ decomposePar
$ mpirun -np 2 interFoam -parallel> log
Visualización
$ reconstructPar
$ foamToVTK
Outline
1 Problema con superficie libre
2 Paralelización
Herramientas OpenFOAM1.7.1 Ejemplo. Rotura presa paralelo
3 Aplicaciones en OpenFOAM 1.7.1
Aplicaciones
Utilidades1
Preprocesado Mallado
Manipulación de mallas Paralelización
Postprocesado
Estimaciones de error Modelos termofísicos Varias
Utilidades de preprocesado
Utilidades
setFields selecciona un conjunto de celdas y modifica sus valores
mapFields Proyecta los campos de una malla a otra, leyendo e interpolando todos los campos existentes.Casos paralelos y no parelelos son manejados si
necesidad de reconstruir
Utilidades de postprocesado
PostProceso sobre fronteras
patchAverage Calcula el promedio de un campo ponderado con el área
patchIntegrate Calcula la integral de un campo ponderado con el área
Utilidades de postprocesado (cont)
PostProceso de muestreo (sampling)
probeLocations Muestras puntuales discretas
sample Muestras sobre nube de puntos, líneas y superficies.
Utilidades de postprocesado en tiempo de ejecución
Function Objects
Bibliotecas de herramientas de postprocesado en tiempo de ejecución
Pueden ser usadas en cualquier solver sin necesidad de compilación
Se añaden en el diccionario controlDict Info:
Código fuente: $ cd
/opt/openfoam171/src/postProcessing/functionObjects www.openfoam.com/features/
Utilidades de postprocesado en tiempo de ejecución
(cont)
Más utilidades
Info
patchSummary Muestra la información de las condiciones de contorno y de la variable para cada frontera y en cada tiempo
checkMesh Comprueba y muestra información de la malla
Varias
writeCellCenters Guarda las tres componetes de las celdas como un campo escalar