Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
E. Martín 1 , M. Meis 1,2 , F. Varas 1 , V. Díaz 3 y A. Gosset 3
1
Univ. de Vigo,
2Vicus Desarrollos Tecnológicos y
3Univ. da Coruña
Simulación en dinámica de fluidos con OpenFOAM Vigo, 18 al 22 de Julio de 2011
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Outline
1 Problema con superficie libre
2 Paralelización
Ejemplo paralelización. Rotura de presa
3 Aplicaciones en OF-1.7.1
Outline
1 Problema con superficie libre
2 Paralelización
Ejemplo paralelización. Rotura de presa
3 Aplicaciones en OF-1.7.1
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Rotura de una presa
Introducción
Problema evolutivo
Superficie libre (VOF model)
Inicialización de variables
2 fluidos incompresibles
Problema 2D laminar
Rotura de una presa
Ecuaciones
∇· u = 0
∂(ρu)
∂t + ∇· (ρuu) − ∆(µu) = −∇p + ρg
∂α
∂t + ∇· (αu) = 0
Calculo de la densidad en la interfaz ρ = αρ + (1 − α)ρ
solver?
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Geometría
Malla
Comando
$ blockMesh
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Archivos directorio 0
$ cd /opt/openfoam171/applications/solvers/multiphase/interFoam/createFields.H
Archivos
U
p_rgh
alpha1
Archivos directorio constant
$ cd /opt/openfoam171/applications/solvers/multiphase/interFoam/createFields.H
Archivos
transportProperties
turbulenceProperties (← Prob. laminar?) g
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Archivos directorio system
Archivos
controlDict
fvScheme
fvSolution
setFieldsDict
Utilidad de preproceso setFields
setFields
Selecciona un conjunto de celdas a través de un diccionario
Modifica los archivos iniciales
Info: ( /opt/openfoam171/applications/utilities/preProcessing/setFields )
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Ejecución y visualización
Ejecución setFields interFoam > log
Visualización
foamToVTK
paraview
Outline
1 Problema con superficie libre
2 Paralelización
Ejemplo paralelización. Rotura de presa
3 Aplicaciones en OF-1.7.1
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Paralelización en OF-1.7.1
Características
Paralelización mediante MPI
Descomposición del dominio mediante la utilidad decomposeParDict
decomposeParDic permite dividir la malla y los campos en un número de sub-dominios y asignarlos a procesos separados
Paraleliza todos los procesos excepto la descomposición
Paralelización en OF-1.7.1
Archivo decomposeParDict (U-81)
numberOfSubdomains: indica en cuantas partes se divide la malla
method: método de descomposicón 1
simple hierarchical scotch metis manual
distributed: distribución de datos en discos locales (yes/no)
root: especificación de la ruta del código
1más info: /opt/openfoam171/src/decompositionMethods
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Herramientas para la paralelización
Modo de operación
Pasos
$ decomposePar -case [casename]
$ mpirun -hostfile <machinefile> -np <nProcs> <solvername>
<root> <case> <otherArgu> -parallelprocessing
$ reconstructPar -case [casename]
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Outline
1 Problema con superficie libre
2 Paralelización
Ejemplo paralelización. Rotura de presa
3 Aplicaciones en OF-1.7.1
Rotura de presa paralelo
Copia de archivos
$ cd ..
$ mkdir damBreakFine
$ cp -r damBreak/0 damBreakFine
$ cp -r damBreak/system damBreakFine
$ cp -r damBreak/constant damBreakFine
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Rotura de presa paralelo
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)
);
Rotura de presa paralelo
Ejecución setFields decomposePar
mpirun -np 2 interFoam -parallel> log
Visualización reconstructPar foamToVTK paraview
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Outline
1 Problema con superficie libre
2 Paralelización
Ejemplo paralelización. Rotura de presa
3 Aplicaciones en OF-1.7.1
Aplicaciones
Utilidades (U-88) Preprocesado Mallado
Manipulación de mallas Paralelización
Postprocesado
Estimaciones de error Modelos termofísicos Varias
$ cd /opt/openfoam171/applications/utilities
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Utilidades de preprocesado
Preprocesado
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
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Utilidades de postprocesado
Utilidades de postProceso de muestreo (samplling)
$
/opt/openfoam171/applications/utilities/postProcessing/sampling
probeLocations: Muestras puntuales discretas
sample: Muestras sobre nube de puntos, líneas y
superficies. Definición a través de diccionario
(sampleDict)
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 Página web: www.openfoam.com/features/runtime-postprocessing.php Página web:
http://openfoamwiki.net/index.php/Contrib_simpleFunctionObjects Tutoriales : $ grep -r functionObjectLibs $FOAM_TUTORIALS
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado
Utilidades de postprocesado en tiempo de ejecución
Herramientas
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
ptot: Calcula la presión total a cada paso de tiempo
E. Martín, M. Meis, F. Varas, V. Díaz y A. Gosset Ejemplo 4. Flujo incompresible con superficie libre. Paralelización y postprocesado