You are on page 1of 151

Universidad Nacional de

Córdoba
Facultad de Ciencias Exactas, Físicas y
Naturales - Ingeniería Aeronáutica
Tesis de Grado
“Análisis de fluidos alrededor de cuerpos
bidimensionales mediante simulaciones
computacionales"

Autor: Jorge Darío Montes


Director: Ing. Jorge O. García
Año 2010
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Índice General
PORTADA i
INDICE ii
LISTA DE FIGURAS v
LISTA DE TABLAS viii
LISTA DE SIMBOLOS ix
AGRADECIMIENTOS xi
OBJETIVOS xii

ECUACIONES FUNDAMENTALES - CONCEPTOS PREVIOS

1.1 VOLUMEN DE CONTROL 1


1.2 PRINCIPIO DE CONSERVACIÓN DE LA MASA 1
1.3 FORMA INTEGRAL DEL TEOREMA DE LA CANTIDAD DE MOVIMIENTO 1
1.4 FORMA INTEGRAL DEL TEOREMA DEL MOMENTO CINÉTICO 2
1.5 FORMA INTEGRAL DEL PRINCIPIO DE CONSERVACIÓN DE LA ENERGÍA 2
1.6 ECUACIONES DE NAVIER-STOKES 3
1.7 FUERZAS EN UN PERFIL AERODINÁMICO 4
1.8 NÚMERO DE REYNOLDS 7
1.9 NÚMERO DE MACH 8

INTRODUCCIÓN AL CFD

2.1 CONCEPTOS PREVIOS 10


2.2 PROCEDIMIENTOS BÁSICOS EN LA IMPLEMENTACIÓN DEL CFD 12
2.3 EL MÉTODO DE VOLÚMENES FINITOS: 13

CASOS ESTUDIADOS

3.1 VALIDACIÓN 16
3.2 CILINDRO BIDIMENSIONAL 18
3.2.1 Geometría 18
3.2.2 Malla 18
3.2.3 Condiciones de contorno 19
3.2.4 Ejecuciones realizadas 20
3.2.5 Número de Strouhal 28
3.2.6 Coeficiente de resistencia y capa límite 32
3.2.7 Comparación con fotografías experimentales 38
3.2.8 Conclusiones 39
3.3 PERFIL AERODINÁMICO NACA 0009 40
3.3.1 Geometría 40
3.3.2 Malla 40
3.3.3 Condiciones de contorno 42
3.3.4 Ejecuciones realizadas 42
3.3.5 Coeficiente de sustentación 42
3.3.6 Coeficiente de resistencia 43
3.3.7 Conclusiones 45
3.4 PERFIL AERODINÁMICO NACA 0012 46

ii
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.4.1 Geometría 46
3.4.2 Malla 46
3.4.3 Condiciones de contorno 48
3.4.4 Ejecuciones realizadas 48
3.4.5 Coeficiente de sustentación 48
3.4.6 Coeficiente de resistencia: 49
3.4.7 Conclusiones 51
3.5 PERFIL AERODINÁMICO NACA 4412 52
3.5.1 Geometría 52
3.5.2 Malla 52
3.5.3 Condiciones de contorno 54
3.5.4 Ejecuciones realizadas 54
3.5.5 Coeficiente de sustentación 54
3.5.6 Coeficiente de resistencia 55
3.5.7 Conclusiones 57

APENDICE A – SOFTWARE OPENFOAM

A.1 INSTALACIÓN 59
A.2 PASOS A SEGUIR 59
A.3 UTILIZACIÓN DEL SOFTWARE OPENFOAM 66
A.4 CARACTERÍSTICAS DE OPENFOAM 66
A.5 ESTRUCTURA DE UN CASO DE OPENFOAM 67
A.6 DESCRIPCIÓN DE LAS PARTES DE UN CASO DE ESTUDIO 68
A.7 DESCRIPCIÓN DE SOLVERS UTILIZADOS 69
A.8 UNIDADES FÍSICAS 69

APENDICE B – SOLVERS DE OPENFOAM

B.1 SOLVER POTENTIALFOAM 70


B.1.1 /case/system/controlDict 70
B.1.2 /case/system/fvSolution 71
B.1.3 /case/system/fvSchemes 72
B.1.4 /case/system/sampleDict 73
B.1.5 /case/constant/boundary 74
B.1.6 /case/0/p 75
B.1.7 /case/0/U 77
B.1.8 Recomendación sobre el archivo U 78
B.1.9 Generar un archivo de log con los resultados de pantalla 78
B.1.10 Ejecutar automáticamente el solver 78
B.2 SOLVER ICOFOAM 80
B.2.1 /case/system/controlDict 80
B.2.2 /case/system/fvSolution 83
B.2.3 /case/system/fvSchemes 84
B.2.4 /case/system/sampleDict 85
B.2.5 /case/constant/boundary 86
B.2.6 /case/constant/transportProperties 88
B.2.7 /case/0/p 88
B.2.8 /case/0/U 90
B.2.9 Generar un archivo de log con los resultados de pantalla 91
B.2.10 Ejecutar automáticamente el solver 91
B.3 SOLVER SIMPLEFOAM 92

iii
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

B.3.1 /case/system/controlDict 92
B.3.2 /case/system/fvSolution 95
B.3.3 /case/system/fvSchemes 96
B.3.4 /case/system/sampleDict 97
B.3.5 /case/constant/boundary 98
B.3.6 /case/constant/transportProperties 100
B.3.7 /case/constant/turbulentProperties 101
B.3.8 /case/constant/RASProperties 104
B.3.9 /case/0/p 104
B.3.10 /case/0/U 106
B.3.11 /case/0/nuT 107
B.3.12 /case/0/nuTilda 108
B.3.13 Generar un archivo de log con los resultados de pantalla 109
B.3.14 Ejecutar automáticamente el solver 109

APENDICE C – SOFTWARE GMSH

C.1 INTRODUCCIÓN A LA GENERACIÓN DE LA MALLA CON GMSH 111


C.2 INSTALACIÓN DE GMSH 111
C.3 FUNCIONALIDADES DE GMSH 111
C.4 MODULO GEOMÉTRICO 112
C.4.1 Definir geometría con ficheros de texto 112
C.4.2 Archivos de otros programas 115
C.5 MÓDULO DE MALLADO 115
C.6 COMPATIBILIDAD CON OPENFOAM 119
C.6.1 Error en la conversión del archivo .msh 120

APENDICE D – SOFTWARE PARAVIEW

D.1 POST-PROCESO 121


D.2 FORMATO DE ARCHIVOS 121
D.3 APARIENCIA DE PARAVIEW 121
D.4 BARRAS Y VENTANAS DE HERRAMIENTAS 123
D.4.1 Barra Menu 123
D.4.2 Barra Main Controls 123
D.4.3 Barra Active Variable Control 123
D.4.4 Barra Camera Controls 123
D.4.5 Barra VCR Controls 124
D.4.6 Ventana Lookmarks 124
D.4.7 Ventana Pipeline Browser 125
D.4.8 Ventana Object Inspector 125
D.5 EXPORTAR RESULTADOS 126

APENDICE E – EJECUCIÓN DE CASOS DE OPENFOAM

E.1 USO DEL SOLVER POTENTIALFOAM 127


E.2 USO DEL SOLVER ICOFOAM 130
E.3 USO DEL SOLVER SIMPLEFOAM 133
NOTA IMPORTANTE: 137

REFERENCIAS 138

iv
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Lista de Figuras

Figura 1.1 – Fuerzas Actuantes en un avión en vuelo

Figura 1.2 - Descomposición de esfuerzos

Figura 2.1 – Ensayo CFD a un automóvil de fórmula uno

Figura 2.2 – Aplicación de CFD al ciclismo de competición

Figura 2.3 – (a) Esquema de Celda Centrada (b) Esquema de Celda y Vértice

Figura 3.1 – Geometría y contorno del cilindro bidimensional

Figura 3.2 – Malla del cilindro bidimensional

Figura 3.3 – Geometría y contorno del cilindro bidimensional

Figura 3.4 – Cilindro 2D Campo de Velocidades Re=30

Figura 3.5 – Cilindro 2D Campo de Presiones Re=30

Figura 3.6 – Cilindro 2D Campo de Velocidades Re=40

Figura 3.7 – Cilindro 2D Campo de Presiones Re=40

Figura 3.8 – Cilindro 2D Campo de Velocidades Re=50

Figura 3.9 – Cilindro 2D Campo de Presiones Re=50

Figura 3.10 – Cilindro 2D Campo de Velocidades Re=100

Figura 3.11 – Cilindro 2D Campo de Presiones Re=100

Figura 3.12 – Cilindro 2D Campo de Velocidades Re=200

Figura 3.13 – Cilindro 2D Campo de Presiones Re=200

Figura 3.14 – Cilindro 2D Campo de Velocidades Re=500

Figura 3.15 – Cilindro 2D Campo de Presiones Re=500

Figura 3.16 – Cilindro 2D Campo de Velocidades Re=1000

Figura 3.17 – Cilindro 2D Campo de Presiones Re=1000

Figura 3.18 – Cilindro 2D Campo de Velocidades Re=2000

v
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 3.19 – Cilindro 2D Campo de Presiones Re=2000

Figura 3.20 – Comportamiento del número de Strouhal para el cilindro 2D

Figura 3.21 – Oscilaciones del coeficiente de sustentación para Re 100

Figura 3.22 – Oscilaciones del coeficiente de sustentación para Re 200

Figura 3.23 – Oscilaciones del coeficiente de sustentación para Re 500

Figura 3.24 – Oscilaciones del coeficiente de sustentación para Re 1000

Figura 3.25 – Oscilaciones del coeficiente de sustentación para Re 2000

Figura 3.26 – Coeficiente de sustentación para 70seg<tiempo<80seg

Figura 3.27 – Coeficiente de resistencia experimental (NACA Report 619, 1937)

Figura 3.28 – Zona de estudio por las simulaciones numéricas

Figura 3.29 – Coeficiente de resistencia experimental y CFD (30<Re<2000)

Figura 3.30 – Contornos de Velocidades (izquierda Re=100, derecha Re=200)

Figura 3.31 – Fotografía de un cilindro 2D a Re=2000, campo de velocidades

Figura 3.32 – Simulación de un cilindro 2D a Re=2000, campo de velocidades

Figura 3.33 – Geometría y contorno del perfil NACA 0009

Figura 3.34 – Malla del perfil NACA 0009

Figura 3.35 – Coeficiente de sustentación en función del ángulo de ataque

Figura 3.36 – Coeficiente de resistencia para distintos Cl

Figura 3.37 – Campo de velocidades para perfil NACA 0009 para 0º, 5º, 10º y 12º

Figura 3.38 – Geometría y contorno del perfil NACA 0012

Figura 3.39 – Malla del perfil NACA 0012

Figura 3.40 – Coeficiente de sustentación en función del ángulo de ataque

Figura 3.41 – Coeficiente de resistencia para distintos Cl

Figura 3.42 – Campo de velocidades para perfil NACA 0012 para 0º, 5º, 10º y 12º

Figura 3.43 – Geometría y contorno del perfil NACA 4412

vi
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 3.44 – Malla del perfil NACA 4412

Figura 3.45 – Coeficiente de sustentación en función del ángulo de ataque

Figura 3.46 – Coeficiente de resistencia para distintos valores de Cl

Figura 3.47 – Campo de velocidades para perfil NACA 4412

Figura A.1 – Estructura de un caso de OpenFOAM

Figura C.1 – Mallado con el comando Extrude

Figura C.2 – Uso del comando Transfinite Line = 5

Figura C.3 – Uso del comando Transfinite Line = 20

Figura C.4 – Cavidad con malla semi-estructurada con prismas triangulares

Figura C.5 – Cavidad con malla no-estructurada con tetraedros

Figura D.1 – Ventana de trabajo de ParaView

Figura D.2 – Ventana de trabajo de ParaView con un caso en estudio

Figura D.3 – Barra de Menu

Figura D.4 – Controles de abrir-guardar-conectar

Figura D.5 – Controles de variable activa

Figura D.6 – Control de la cámara

Figura D.7 – Control del tiempo

Figura D.8 – Visualización 3D

Figura D.9 – Navegador de objetos

Figura D.10 – Opciones de filtros y vistas

vii
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Lista de Tablas

Tabla 3.1 – Comparación de los números de Strouhal

Tabla 3.2 – Comparación de los coeficientes de resistencia

Tabla 3.3 – Coeficiente de sustentación en función del ángulo de ataque

Tabla 3.4 – Coeficiente de resistencia para distintos valores del Cl

Tabla 3.5 – Coeficiente de sustentación en función del ángulo de ataque

Tabla 3.6 – Coeficiente de resistencia para distintos valores del Cl

Tabla 3.7 – Coeficientes de sustentación en función del ángulo de ataque

Tabla 3.8 – Coeficiente de resistencia para distintos valores de Cl

viii
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Lista de Símbolos


: derivada parcial respecto del tiempo
∂t
t : tiempo
ρ : densidad
τ : volumen de control

V : vector velocidad
n : vector normal unitario
σ : elemento de la superficie de control
Σ : superficie de control

R : resultante de las fuerzas externas


r : radio vector

M : resultante de los momentos externos


Q : calor

T : potencia suministrada por el fluido


u : energía interna

D
: derivada sustancial respecto al tiempo
Dt
K : campo vectorial
p : presión estática local

∇ : operador nabla
µ : viscosidad dinámica

L : fuerza de sustentación
N : fuerza normal a la cuerda del perfil

A : fuerza paralela a la cuerda del perfil


α : ángulo de ataque

D : fuerza de resistencia aerodinámica

ix
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

ρ∞ : densidad de la corriente libre

V∞ : velocidad de la corriente libre

S : superficie de referencia

CL : coeficiente de sustentación tridimensional

Cl : coeficiente de sustentación bidimensional

CD : coeficiente de resistencia tridimensional

Cd : coeficiente de resistencia bidimensional

CM : coeficiente de momento de cabeceo tridimensional

Cm : coeficiente de momento de cabeceo bidimensional

l : longitud de referencia

q∞ : presión dinámica

Cp : coeficiente de presión

p∞ : presión estática de la corriente libre

Re : número de Reynolds
ν : viscosidad cinemática

M : número de Mach
a : velocidad del sonido

ST : número de Strouhal
ϖ : frecuencia de desprendimiento

U∞ : magnitud de la velocidad de la corriente fluida

Co : número de Courant

∆t : paso de tiempo dado

∆x : longitud de la celda en la dirección de la velocidad

U∞ : magnitud de la velocidad de la corriente fluida

x
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Agradecimientos

En cuanto a la confección del presente trabajo y culminación de la carrera


de Ingeniería Aeronáutica, es de destacar que se debe a un gran esfuerzo
personal y al apoyo de mis padres y de mis familiares más cercanos,
quienes siempre confiaron en mí, alentándome y dándome fuerza para
que pudiera terminar con esta etapa de mi vida.
También debo destacar el apoyo de mis amigos personales y mis
compañeros de carrera que también gracias a ellos, seguí adelante.
Otro agradecimiento sería para los docentes, que gracias a su apoyo me
ayudaron a crecer intelectualmente y a desarrollarme como persona y
como futuro profesional.
Y por último me gustaría agradecer al director de mi tesis de grado, que
confió en mi persona para lograr objetivos que al principio parecían
lejanos y también me ayudó en situaciones difíciles para seguir con este
trabajo.
Una cosa para tener en cuenta es que “sin un mínimo de esfuerzo, nada
se logra” y que en este largo camino, hubo que dedicar mucho tiempo y
sacrificar muchas cosas para llegar al final que es el presente trabajo.
Gracias.

Jorge Darío Montes

xi
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Objetivos

Los principales objetivos de este trabajo son los siguientes:

- Conocer los pasos básicos en el campo de la mecánica de los fluidos


computacional.
- Implementar el uso de programas computacionales de licencia libre
y gratuita para modelar problemas físicos reales.
- Validar los resultados numéricos computacionales obtenidos
mediante los datos experimentales conocidos de antemano.
- Generar un cierto adiestramiento en el uso del software OpenFOAM
para luego volcarlo en una guía de usuario.

xii
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

1 Ecuaciones fundamentales - Conceptos previos

1.1 Volumen de control

Un volumen de control se define como un volumen arbitrario del espacio a


través del cual pasa el fluido en movimiento. La superficie que delimita al
volumen de control se denomina superficie de control y es siempre una
superficie cerrada.

1.2 Principio de conservación de la masa

Es un principio básico de la mecánica clásica, y se expresa diciendo que


"la masa de un punto material, y por lo tanto de un sistema de puntos
materiales no se altera por efectos del movimiento" (Calvi, 2003).
Este principio es un resumen conciso de las observaciones
experimentales, estando ausentes los movimientos con velocidades del
orden de la velocidad de la luz y las reacciones nucleares.
La ecuación en su forma integral es:


∫τ ∂t ρdτ = −∫∫Σ ρV ⋅ n dσ (1.1)

La interpretación física sería: "la variación de la masa dentro del volumen


de control es igual al flujo neto de masa a través de la superficie de
control" (Calvi, 2003).

Si el movimiento es estacionario con respecto a un sistema de referencia


fijo al volumen de control, todas las propiedades del fluido, incluida la
densidad, deben permanecer invariables en el tiempo, por lo tanto se
tiene:

∫∫ ρV ⋅ n dσ = 0
Σ
(1.2)

1.3 Forma integral del teorema de la cantidad de movimiento

1
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Para una referencia inercial, la segunda ley del movimiento de Newton se


expresa de la manera siguiente: "la derivada con respecto al tiempo de la
cantidad de movimiento resultante de un sistema material cualquiera es
igual, en cada instante, a la resultante de las fuerzas exteriores aplicadas
al sistema" (Calvi, 2003).

La ecuación es:


∫τ ∂t ( ρV )dτ + ∫∫Σ V ( ρV ⋅ n )dσ = R (1.3)

Esta ecuación expresa que: "la resultante de las fuerzas externas que
actúan sobre el fluido contenido dentro del volumen de control, es igual a
la integral de la variación local de la cantidad de movimiento dentro del
volumen de control, más el flujo neto de cantidad de movimiento a través
de la superficie de control" (Calvi, 2003).

1.4 Forma integral del teorema del momento cinético

Para una referencia inercial, el teorema se expresa: "la derivada con


respecto al tiempo del momento cinético de un sistema material
cualquiera es igual al momento resultante de las fuerzas exteriores
aplicadas al sistema" (Calvi, 2003).

Por ello se tiene:


∫τ ∂t ( ρV × r )dτ + ∫∫Σ (V × r )( ρV ⋅ n )dσ = M (1.4)

Otra forma de expresar sería: "el momento resultante de las fuerzas que
en el instante t, actúan sobre el fluido contenido dentro del volumen de
control, es igual a la variación total del momento cinético del fluido
contenido dentro del volumen de control más el flujo neto de momento
cinético a través de la superficie de control” (Calvi, 2003).

1.5 Forma integral del principio de conservación de la energía

El principio de la conservación de la energía expresa que: “la diferencia


entre el gradiente de transferencia de calor a través de la superficie de

2
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

control y la potencia suministrada por el fluido contenido dentro del


volumen de control es igual a la integral de la variación local de energía
dentro del volumen de control más el flujo neto de energía a través de la
superficie de control” (Calvi, 2003):

∂Q ∂T ∂
− = ∫ [ ρ ( 1 2 V 2 + u )]dt + ∫∫ ( 1 2V 2 + u )( ρV ⋅ n )dσ (1.5)
∂t ∂t τ ∂t Σ

1.6 Ecuaciones de Navier-Stokes

Si se disponen de las expresiones que relacionan al campo de las


tensiones debidas a la viscosidad con el campo de las velocidades, se
puede establecer el valor de la presión dentro de la ecuación de cantidad
de movimiento como función de las magnitudes cinemáticas que
caracterizan el movimiento.

Expresando la ecuación de la variación de la cantidad de movimiento en


forma vectorial para flujo isotérmico y laminar queda:

DV
ρ = ρK − ∇p + µ ( 13 V ∇ ⋅ V + ∇ 2V ) (1.6)
Dt

En donde:

DV
ρ : es la resultante de las fuerzas inerciales por unidad de volumen
Dt

ρK : es la resultante de las fuerzas másicas por unidad de volumen

− ∇p : es la resultante de las fuerzas de presión estática por unidad de volumen

µ ( 1 3 V ∇ ⋅ V + ∇ 2V ) : es la resultante de las fuerzas viscosas por unidad de


volumen

Las siguientes ecuaciones escalares se las denominan ecuaciones de


Navier-Stokes bajo la forma de Euler:

3
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

∂u ∂u ∂u ∂u ∂p 1 ∂
ρ( +u +v + w ) = ρK x − + 3 µ (∇ ⋅ V ) + µ∇ 2u ) (1.7)
∂t ∂x ∂y ∂z ∂x ∂x

∂v ∂v ∂v ∂v ∂p ∂
ρ( + u + v + w ) = ρK y − + 1
3 µ (∇ ⋅ V ) + µ∇ 2v ) (1.8)
∂t ∂x ∂y ∂z ∂y ∂y

∂w ∂w ∂w ∂w ∂p 1 ∂
ρ( +u +v + w ) = ρK z − + 3 µ (∇ ⋅ V ) + µ∇ 2 w) (1.9)
∂t ∂x ∂y ∂z ∂z ∂z

Las ecuaciones anteriores en conjunto con la ecuación de conservación de


la masa, la ecuación de estado y la de la variación de la viscosidad con la
densidad determinan la presión, la densidad y las componentes de la
velocidad para el flujo isotérmico y laminar de un fluido (Calvi, 2003).

1.7 Fuerzas en un perfil aerodinámico


La fuerza resultante que surge de sumergir un perfil aerodinámico en una
corriente fluida R, se puede descomponer en una fuerza perpendicular a la
dirección de la velocidad de la corriente libre, la sustentación L, y una
fuerza en la dirección de la velocidad de la corriente, llamada resistencia
D, (Kundu y Cohen, 2010).
En el diseño de los aviones, las alas se fabrican de acuerdo a distintos
criterios y necesidades, ellas se fabrican acorde a un determinado perfil
aerodinámico, si el avión está volando en vuelo recto y nivelado, la
resistencia aerodinámica está equilibrada con la tracción del motor y la
sustentación se equilibra con el peso del avión (ver figura 1.1).

4
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 1.1 – Fuerzas Actuantes en un avión en vuelo

Un diagrama de la descomposición de la fuerza R actuante sobre el perfil


se muestra en la figura 1.2, en la que se nota que la resultante R se puede
descomponer tanto en sus partes normal y paralela a la velocidad de la
corriente libre como también normal y paralela a la cuerda del perfil.

Figura 1.2 - Descomposición de esfuerzos

5
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

El ángulo de ataque α se define como el ángulo entre la cuerda del perfil y


la dirección de la velocidad de la corriente fluida (Anderson, 2001).

Una formulación de las fuerzas de sustentación y resistencia se tiene que:

L = N cos α − Asenα (1.10)

D = Nsenα + A cos α (1.11)

Si se realiza una integración de las presiones y de las tensiones de corte


sobre el perfil, se podrá obtener los coeficientes aerodinámicos (Kundu y
Cohen, 2010).

En general, en aerodinámica se suele trabajar con estos coeficientes


adimensionales que dan una idea general del comportamiento de una
magnitud sin importar las unidades empleadas.
Se definen entonces los coeficientes de sustentación, resistencia y
momento respectivamente:

L
CL = (1.12)
1 ρ V 2S
2 ∞ ∞

D
CD = (1.13)
1 ρ V 2S
2 ∞ ∞

M
CM = (1.14)
1 ρ V 2 Sl
2 ∞ ∞

6
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

El coeficiente de sustentación es muy útil a la hora de evaluar el


comportamiento de un cuerpo aerodinámico, como ser un perfil, un ala,
etc, en cuanto a “que cantidad sustenta” ese mismo cuerpo para ciertas
condiciones del campo de movimiento.
El coeficiente de resistencia, refleja la resistencia al avance que el cuerpo
ofrece al estar sumergido dentro de una corriente fluida.
Los parámetros S y l se refieren a la superficie de referencia y a una
longitud de referencia. Por ejemplo si se estudia un avión, la superficie de
referencia será la planta alar y la longitud será la cuerda media
aerodinámica, pero si se trata de una esfera, la superficie de referencia
será la superficie frontal y la longitud de referencia será el diámetro de la
misma (Anderson, 2001; Abbott y Doenhoff, 1959).

De acuerdo a lo mencionado anteriormente, se tiene la necesidad de


determinar un parámetro que se denomina presión dinámica y se expresa
de la siguiente manera:

1
q∞ = ρ ∞V∞ 2 (1.15)
2

De esta manera se podrá definir otro coeficiente de gran importancia en


los cálculos aerodinámicos, este es el coeficiente de presión:

p − p∞
Cp = (1.16)
q∞

El uso de estos coeficientes nos permite comparar resultados ya sea


numéricos ó mediante experimentos sin necesidad de preocuparse por el
sistema de unidades utilizado, siempre y cuando se mantengan las
condiciones de similitud.

1.8 Número de Reynolds


El número de Reynolds se define como la relación entre las fuerzas
másicas y las fuerzas viscosas.
La fórmula es la siguiente:

ρ ⋅ V∞ ⋅ l V∞ ⋅ l
Re = = (1.17)
µ ν

7
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

En donde:

ρ: es la densidad del fluido

V∞ : es la magnitud de la velocidad de la corriente fluida

l: es la longitud de referencia (para un perfil es la cuerda, para un


cilindro es el diámetro)

µ: es la viscosidad dinámica

ν: es la viscosidad cinemática, es la relación entre la viscosidad


dinámica y la densidad.

Un número de Reynolds alto implica que las fuerzas de inercia ó másicas


son preponderantes, mientras que cuando el número de Reynolds es bajo,
se deduce que son las fuerzas viscosas las que predominan.

Cuando se realizan trabajos experimentales, se utilizan modelos a escala


pequeña y se necesita que sus resultados sean comparables con un
modelo de escala real, por ello en número de Reynolds para ambos casos
(el real y el experimental) deberá cumplirse su igualdad.
Cuando esto sucede, se dice que el experimento tiene similitud dinámica
con la realidad (Shames, 1995).

1.9 Número de Mach

El número de Mach se define como la relación entre la velocidad local del


fluido y la velocidad del sonido propia del fluido en cuestión.
Su formulación es la siguiente:

V∞
M= (1.18)
a

En donde:

a: es la velocidad del sonido propia del fluido

V∞ : es la magnitud de la velocidad de la corriente fluida

8
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Un dato importante que otorga el número de Mach, es que cuando su


valor está cerca o es mayor a 0.3, comienzan a presentarse efectos de
compresibilidad del fluido (Shames, 1995).

9
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

2 Introducción al CFD

2.1 Conceptos previos

Las siglas CFD provienen del inglés Computational Fluid Dynamics y


significan dinámica de fluidos computacional.
El CFD es el análisis de sistemas, en el que están presentes flujos de
fluidos, transferencia de calor y fenómenos asociados tales como
reacciones químicas, basado en simulaciones computacionales (Versteeg y
Malalasekera, 1995).

Algunos ejemplos son:

- aerodinámica de aeronaves y vehículos: sustentación y resistencia


- hidrodinámica de barcos
- plantas de energía: combustión en motores y turbinas de gas
- turbo-máquinas: flujo en partes rotantes, difusores
- ingeniería eléctrica y electrónica: equipos para enfriamiento
- procesos químicos
- efectos del viento en estructuras civiles
- ingeniería marina
- hidrología y oceanografía: flujo en ríos, estuarios y océanos
- meteorología: predicción climática
- ingeniería biomédica: flujos de sangre en arterias y venas

Todos estos ejemplos del uso del CFD son prueba de que la expansión de
las áreas de estudio en cuanto al diseño se trata, ha crecido de gran
manera (Versteeg y Malalasekera, 1995).

En la figura 2.1 se muestra la aplicación del CFD al estudio del campo de


movimiento de un automóvil de fórmula uno de alta gama, en el cual el
más mínimo detalle cuenta en lo que se refiere al diseño.

10
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 2.1 – Ensayo CFD a un automóvil de fórmula uno

En la siguiente figura (figura 2.2) se muestra el caso del estudio del campo
de movimiento de un ciclista. Los resultados probablemente se inclinarán
a un nuevo diseño del casco o de la indumentaria utilizada por el atleta.

Figura 2.2 – Aplicación de CFD al ciclismo de competición

En general cuando se desea probar un diseño nuevo de algún artefacto


que está sumergido en una corriente fluida (un edificio, un avión, un
puente, etc) los diseñadores recurren a los ensayos en túneles de viento
para evaluar las características y parámetros del diseño y ver si se
requiere ajustar alguna parte del mismo.

Como la tecnología en cuanto a software y hardware ha crecido de


manera abrupta, los diseños se realizan en potentes computadoras y

11
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

complejos paquetes de software que permiten incluir en el modelo, todos


los parámetros y hacer un seguimiento de sus partes integrantes.
Por ello, también existen paquetes de software que permiten la simulación
e interacción de fluidos, como así también reacciones químicas,
combustión, etc, tanto de uso comercial con licencia paga como así
también de uso libre con licencia gratuita y de libre distribución.
Si bien en el caso de software de licencia gratuita no tiene un costo inicial,
estos demandan una gran inversión de tiempo en el aprendizaje de los
mismos ya que por su licencia gratuita, no traen manuales detallados sino
con breves explicaciones de las funciones generales. Lo de licencia
gratuita se refiere al uso, modificación y distribución sin cargo alguno,
pero en cuanto al soporte técnico y capacitación por parte de los
programadores, se tiene un costo económico que no todos los usuarios
están dispuestos y/o son capaces de alcanzar, sin mencionar que los
cursos de capacitación no se realizan en países latinoamericanos.

Una de las ventajas que un usuario tiene al utilizar un código CFD, es que
le permite, una vez que ha adquirido cierta práctica con el mismo, realizar
ajustes y simular condiciones que en un túnel de viento convencional
requieren horas de preparación de los instrumentos y del modelo, siendo
también impracticables algunos tipos de simulaciones y de un costo
económico mayor. Un ejemplo podría ser que, en un determinado caso, se
requiere variar la densidad del fluido en movimiento, si estamos en
presencia de un túnel de viento, esto se puede lograr presurizando ó
cambiando la temperatura dentro del mismo (que es algo difícil de lograr)
mientras que en un código CFD, solo cambiando los parámetros de la
densidad del ensayo y del solver, ya se tiene el modelo listo para correr,
sin mencionar las posibilidades que se tiene en cuanto a la toma de
datos, visualizaciones, etc.
Pero no todo en CFD es color de rosa, sino que dependiendo del software
utilizado, hay que lidiar y aprender a generar la geometría, lo más
parecida al modelo, luego hay que discretizar ese volumen ó superficie en
una malla para que el software CFD pueda leerla e interpretarla y que
realice los cálculos, y por último se tiene a la visualización y obtención de
los resultados ya sea con tablas, gráficos, etc.

2.2 Procedimientos básicos en la implementación del CFD

Podemos simplificar todo esto en 4 etapas básicas:

1) Generación de la geometría.
2) Creación de la malla.
3) Utilización del solver adecuado.
4) Visualizar los resultados mediante tablas, gráficos, etc.

12
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Los pasos 1) y 2) se conocen como el “pre-proceso”, el paso 3) se


denomina el “proceso ó resolución” de los datos y el paso 4) se denomina
“post-proceso”.
Por ende, se requiere un paquete de software que le permita al usuario
realizar todas estas tareas ó de otra manera tener varios software que
realicen una o varias de estas tareas para que luego el “output” o salida
de un determinado software sea compatible con el “input” o entrada del
otro y así se continúa hasta terminar con el proceso.

Básicamente, si se tiene un software mallador, el archivo de salida que


contiene los datos de la malla, debería ser interpretado por el paso
siguiente (el proceso del solver), que pueda leer e interpretar la malla
para que se realicen los cálculos en forma correcta.

Por otro lado, si se cuenta con un software post-procesador, lo que este


realiza, es la visualización de los resultados y de la extracción de algunos
datos de interés.
En general, los experimentos de laboratorio tienen un alto costo ya que
los modelos que se ensayan deben ser lo más parecido al prototipo en
escala real, cualquier error dimensional llevará a resultados indeseados,
también se tiene que los instrumentos de medición como las sondas de
presión deben estar calibradas y colocadas en el modelo de manera que
no perturbe el flujo alrededor de él.
Otra cuestión a tener en cuenta es la puesta en marcha de los túneles de
viento, las grandes potencias que requieren, demandan grandes
consumos de energía eléctrica y por ende un alto costo económico.

Por otro lado, un paquete CFD del tipo comercial de uso privado, puede
proveer datos en pocas horas (dependiendo de la complejidad del
modelo), datos relevantes en cuanto a la distribución de las presiones en
el modelo y dar puntos claves en su diseño a un bajo costo, sin tener
presente que se podrá optar por un software libre que no tiene costo
alguno (siempre y cuando el usuario tenga la habilidad en el uso).

2.3 El método de volúmenes finitos:

El método de volúmenes finitos (FVM) utiliza directamente las leyes de


conservación, o sea la formulación integral de las ecuaciones de Navier-
Stokes. Fue utilizado por primera vez por McDonald para simulaciones de
flujo bidimensional no viscoso (Blazek, 2001).

El FVM discretiza las ecuaciones con la ayuda de la previa división del


espacio físico en un número arbitrario de volúmenes de control

13
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

poliédricos, se sabe que un poliedro es un cuerpo geométrico de caras


planas que encierra a un volumen finito.
Para recordar, la ecuación de Navier-Stokes “define el intercambio (o sea
el flujo) de masa, cantidad de movimiento y de energía a través de la
superficie de un volumen de control que está fijo en el espacio” (Blazek,
2001).
Existen varias formas para definir la forma y la posición del volumen de
control en referencia a la malla. Se pueden apreciar dos casos
particulares:

Esquema de Celda Centrada (ver figura 2.3a): en este caso las


cantidades se almacenan en los centroides de las celdas, por ello el
volumen de control coincide con la malla de la celda.

Esquema de Celda y Vértice (ver figura 2.3b): en este caso, las


variables se almacenan en los puntos de cruce de la malla, por ello el
volumen de control se puede interpretar como la unión de las celdas que
contienen al punto de cruce o también como si fuera otro volumen de
control centrado en el punto de cruce.

Figura 2.3 – (a) Esquema de Celda Centrada (b) Esquema de Celda y Vértice

La principal ventaja del FVM es que la discretización espacial se lleva a


cabo directamente sobre el espacio físico, por ello no hay inconvenientes
en cuanto a transformaciones entre sistemas de coordenadas.
Otra ventaja del FVM es que es muy flexible y el mismo puede ser
implementado en mallas estructuradas como en las no-estructuradas
(Blazek, 2001).

14
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

De aquí se deduce que el FVM es aplicable para los casos de flujos en


geometrías complejas.
Como se sabe que el FVM se basa en la discretización directa de las leyes
de conservación de la masa, cantidad de movimiento y de energía bajo un
esquema numérico, por esto se deduce que otra importante característica
del método que es la capacidad de procesar correctamente las soluciones
simplificadas de las ecuaciones gobernantes.
Sin embargo, en el caso de las ecuaciones de Euler, se debe satisfacer
una condición adicional que es la condición de la entropía. Esto es
necesario porque evita que aparezcan fenómenos que no son físicamente
posibles, como ser la disminución de la entropía (Blazek, 2001).

Es interesante notar que bajo ciertas condiciones, se pueden obtener


resultados con el FVM que son comparables con el método de las
diferencias finitas (FDM) o también con el método de elemento finito
(FEM) de bajo orden (métodos no tratados en este trabajo) (Blazek,
2001).

15
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Casos estudiados

3.1 Validación

En este capítulo se ha puesto de manifiesto el uso de los programas


computacionales de uso libre, como ser el software OpenFOAM que contiene
el código CFD (OpenFOAM-1.6a, 2009), el software Gmsh para generar la
geometría y el mallado (Gmsh 2.4.2, 2009), y el software ParaView para
visualizar y manipular los resultados (ParaView 3.6.1, 2010).
El análisis realizado por el código CFD de OpenFOAM utilizó el solver
icoFoam y simpleFoam y se han comparado los resultados con los datos
experimentales (Abbott y Doenhoff, 1959) bajo las mismas condiciones de
similitud dinámica, geométrica y cinemática.
Además se han utilizado otros paquetes de software de referencia, como
ser el XFLR5 (Drela XFLR5, 2010) y el Java Applet Multifoil (MultiFoil,
2007) que también son de uso gratuito.
Los casos estudiados son de flujo de aire alrededor de perfiles
aerodinámicos y de un cilindro bidimensional a determinados valores del
número de Reynolds.

El primer caso se trata del cilindro bidimensional en el cual se ha


utilizado un solver para un número de Reynolds bajo (flujo laminar) y se
obtuvieron los valores del coeficiente de resistencia aerodinámica y de
sustentación en función del número de Reynolds y del tiempo
respectivamente.

El segundo caso se trata de un perfil aerodinámico NACA0009, el mismo es


un perfil de la serie 4, simétrico, con un espesor máximo del 9% del largo
de la cuerda. Se ensayó el mismo a distintos ángulos de ataque para
poder obtener las curvas de coeficiente de sustentación en función del
ángulo de ataque y también en función del coeficiente de resistencia,
comúnmente llamada polar de resistencia.

El tercer caso se trata de otro perfil de la serie 4, el NACA0012, este perfil


es simétrico y tiene un espesor máximo del 12% del largo de la cuerda. El
mismo se utiliza como estándar en la medición experimental e incluso
como calibrador de túneles de viento a nivel mundial, ya que sus
resultados se encuentran estudiados desde ya hace muchos años atrás y
los valores obtenidos en el ensayo indican si el túnel de viento se
encuentra en condiciones de operar correctamente.

16
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

El cuarto y último caso se trata de un perfil asimétrico de la serie 4, el


NACA4412, este perfil tiene un espesor máximo del 12% del largo de la
cuerda y su espesor máximo se encuentra al 40% de la cuerda.

El hardware utilizado se basa en una computadora armada con un


microprocesador Intel Core i3, con una placa madre Gigabyte H55MS2H,
con 2Gb de memoria RAM, disco rígido de 320Gb, grabadora de DVD,
lector de tarjetas y floppy, monitor CRT de 17 pulgadas, con teclado y
mouse estándar.

Como el hardware soporta la arquitectura de 64bit, se instaló inicialmente


el sistema operativo Ubuntu Linux 10.04 64bit, pero al instalar el software
CFD hubo problemas en la ejecución del software OpenFOAM 1.6 y se optó
por la versión del sistema operativo Ubuntu Linux 10.04 32bit, en este
caso ya no trajo problemas la instalación y ejecución del software
OpenFOAM 1.6.

El hecho de cambiar de la arquitectura del sistema operativo se debió a


que la instalación propia del software CFD no sería una cuestión de
minutos sino que requería de un adiestramiento en lo que se refiere a
compilación de software bajo Linux, comandos específicos, etc.
Se tiene presente que se sacrificó capacidad de proceso al cambiar de la
arquitectura nativa de 64bit a 32bit, pero en los casos simples que se
corrieron no se hubiesen encontrado grandes diferencias en los tiempos
de ejecución ya que como el sistema operativo reconocía al
microprocesador como si tuviera 4 núcleos, se corrían 4 casos a la vez,
teniendo el factor crítico ó “cuello de botella” al disco rígido en cuanto a su
velocidad de escritura y lectura.

Además se contaba con el sistema operativo Microsoft Windows XP que


podía arrancar en forma alternativa al sistema operativo Ubuntu para
correr programas no nativos de Linux.

17
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2 Cilindro bidimensional


El flujo alrededor de un cilindro (en sentido transversal) es uno de los
casos más estudiados de la mecánica de los fluidos, como así el de la
esfera y también de la placa plana. Algunos de ellos de estudian bajo la
teoría de flujo potencial y también como ejemplos para desarrollar teorías
acerca de la capa límite.
El caso experimental del flujo alrededor de un cilindro otorga resultados
interesantes para luego ser comparados con datos obtenidos mediante
simulaciones numéricas.

3.2.1 Geometría

Cantidad de puntos: 368


Cantidad de líneas: 15
Cantidad de superficies: 7
Cantidad de volúmenes: 1
Cantidad de grupos físicos (Physical Groups): 7 (arriba, abajo, entrada,
salida, cilindro, laterales e internalField)
Ancho: 1
Alto: 4
Largo: 22.5
Distancia al cilindro desde la entrada: 7
Diámetro del cilindro: 1
Origen del eje de coordenadas: en el centro del cilindro

Figura 3.1 – Geometría y contorno del cilindro bidimensional

3.2.2 Malla

Cantidad de divisiones en las caras superior e inferior: 200


Cantidad de divisiones en las áreas de entrada y de salida: 100
Cantidad de divisiones del contorno del cilindro: 100
Escala puntual de mallado del cilindro: 0.01

18
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 3.2 – Malla del cilindro bidimensional

Cantidad de Nodos en las líneas: 1380


Cantidad de Nodos en las superficies: 24056
Cantidad de Triángulos: 49502
Cantidad de Cuadriláteros: 695
Cantidad de Prismas: 24751

3.2.3 Condiciones de contorno

Se aplica la condición de no deslizamiento sobre las paredes del cilindro,


las superficies superior e inferior del volumen de control tienen la
condición de deslizamiento y sobre los laterales no se calcula nada.

Figura 3.3 – Geometría y contorno del cilindro bidimensional

19
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4 Ejecuciones realizadas

Se ensayó al cilindro bidimensional bajo distintos números de Reynolds


con el solver icoFoam y se obtuvieron los datos del coeficiente de
resistencia y el coeficiente de sustentación en función del número de
Reynolds y del tiempo respectivamente.

3.2.4.1 Cilindro 2D – Re 30

En este caso, se presenta una estela por detrás del cilindro de una
longitud de 7 veces el diámetro del cilindro. No hay presencia de vórtices
ni de irregularidades en el flujo ya que se está en una condición laminar.

Figura 3.4 – Cilindro 2D Campo de Velocidades Re=30

Figura 3.5 – Cilindro 2D Campo de Presiones Re=30

20
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4.2 Cilindro 2D – Re 40

Para esta condición, se tiene una estela de una longitud de más de 7


veces el diámetro del cilindro. Al igual que el caso anterior no presenta
alteraciones en el flujo ya que se sigue con el régimen laminar.

Figura 3.6 – Cilindro 2D Campo de Velocidades Re=40

Figura 3.7 – Cilindro 2D Campo de Presiones Re=40

21
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4.3 Cilindro 2D – Re 50

Este es un caso muy similar al anterior, estela larga sin alteraciones.

Figura 3.8 – Cilindro 2D Campo de Velocidades Re=50

Figura 3.9 – Cilindro 2D Campo de Presiones Re=50

22
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4.4 Cilindro 2D – Re 100

Para el valor del número de Reynolds de 100, se tiene que a medida que
el flujo se establece, comienza a alterarse levemente con movimientos
alternativos de la estela. Existe la presencia de la calle de vórtices de Von
Karman. El valor del coeficiente de resistencia sigue por encima de 1.5 y
se puede apreciar que el movimiento alternativo del campo de presiones y
por ende de velocidades causa una variación del coeficiente de
sustentación del tipo alternativa en función del tiempo.

Figura 3.10 – Cilindro 2D Campo de Velocidades Re=100

Figura 3.11 – Cilindro 2D Campo de Presiones Re=100

23
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4.5 Cilindro 2D – Re 200

Para esta condición de flujo, se tiene que es más notable la calle de


vórtices de Von Karman y se presenta un leve incremento en la frecuencia
del desprendimiento de los vórtices. Antes de que esto suceda, la estela
toma un valor de su longitud que aparentemente es crítico para la
formación de los vórtices.

Figura 3.12 – Cilindro 2D Campo de Velocidades Re=200

Figura 3.13 – Cilindro 2D Campo de Presiones Re=200

24
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4.6 Cilindro 2D – Re 500

Ídem al caso anterior pero con efecto del desprendimiento de vórtices más
intenso.

Figura 3.14 – Cilindro 2D Campo de Velocidades Re=500

Figura 3.15 – Cilindro 2D Campo de Presiones Re=500

25
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4.7 Cilindro 2D – Re 1000

Ídem al caso anterior pero con efecto del desprendimiento de vórtices más
intenso. La frecuencia del desprendimiento aumenta respecto al anterior
valor anterior.

Figura 3.16 – Cilindro 2D Campo de Velocidades Re=1000

Figura 3.17 – Cilindro 2D Campo de Presiones Re=1000

26
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.4.8 Cilindro 2D – Re 2000

Ídem al caso anterior pero con efecto del desprendimiento de vórtices más
intenso.

Figura 3.18 – Cilindro 2D Campo de Velocidades Re=2000

Figura 3.19 – Cilindro 2D Campo de Presiones Re=2000

27
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.5 Número de Strouhal

El número de Strouhal es un número adimensional que relaciona el valor


de la frecuencia del desprendimiento de los vórtices con la velocidad de la
corriente y la longitud de referencia. Se ha demostrado que para un
cilindro que embiste la corriente fluida en sentido transversal (por ejemplo
un poste, un cable, etc) el número de Strouhal tiende al valor de
aproximadamente 0.21 para un cierto rango del número de Reynolds
menores a 5000 (Kundu y Cohen, 2010).

Figura 3.20 – Comportamiento del número de Strouhal para el cilindro 2D

Utilizando estos datos, es muy sencillo calcular la frecuencia de las


oscilaciones a la que puede estar sometida una estructura cilíndrica. Por
este fenómeno suele oírse el zumbido de los cables de energía eléctrica
cuando los atraviesa una corriente de aire a cierta velocidad.

28
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

En la figura 3.20, se muestran los datos experimentales que se obtuvieron


del número de Strouhal para distintos valores del número de Reynolds
(NACA Report Nº1191, 1954).

El número de Strouhal se expresa mediante la siguiente ecuación:

ϖ ⋅l
ST = (C1)
U∞

En donde:

ϖ : es la frecuencia de desprendimiento [1/seg]

l : es la longitud de referencia [m]

U∞ : es la magnitud de la velocidad de la corriente fluida [m/seg]

En el caso del cilindro bidimensional, la velocidad y la longitud de


referencia se han tomado como unitarias para mayor claridad y
simplicidad en los cálculos.

La frecuencia se la puede calcular a través de un gráfico que relaciona el


valor del coeficiente de sustentación con el tiempo (figura 3.26). En el
mismo se observan las oscilaciones que sufre el cilindro y se mide el
tiempo para que la oscilación cumpla un ciclo, se toma la inversa de ese
valor de tiempo y así se obtiene la frecuencia.

Como el resto de los factores que intervienen en el cálculo del número de


Strouhal son de magnitud unitaria, el valor de la frecuencia coincide con el
valor buscado del número de Strouhal.

En las siguientes figuras se aprecian las oscilaciones del coeficiente de


sustentación (gráficos de CL en abscisas y tiempo en ordenadas):

29
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
1,0
Cl Re 100
0,8

0,6

0,4

0,2
tiempo
0,0
0 10 20 30 40 50 60 70 80 90 100
-0,2

-0,4

-0,6

-0,8

-1,0

Figura 3.21 – Oscilaciones del coeficiente de sustentación para Re 100

1,0
Cl Re 200
0,8

0,6

0,4

0,2
tiempo
0,0
0 10 20 30 40 50 60 70 80 90 100
-0,2

-0,4

-0,6

-0,8

-1,0

Figura 3.22 – Oscilaciones del coeficiente de sustentación para Re 200

1,0
Cl
Re 500
0,8

0,6

0,4

0,2
tiempo
0,0
0 10 20 30 40 50 60 70 80 90 100
-0,2

-0,4

-0,6

-0,8

-1,0

Figura 3.23 – Oscilaciones del coeficiente de sustentación para Re 500

30
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
1,0
Cl
Re 1000
0,8

0,6

0,4

0,2
tiempo
0,0
0 10 20 30 40 50 60 70 80 90 100
-0,2

-0,4

-0,6

-0,8

-1,0

Figura 3.24 – Oscilaciones del coeficiente de sustentación para Re 1000

1,0
Cl Re 2000
0,8

0,6

0,4

0,2
tiempo

0,0
0 10 20 30 40 50 60 70 80 90 100
-0,2

-0,4

-0,6

-0,8

-1,0

Figura 3.25 – Oscilaciones del coeficiente de sustentación para Re 2000

1,0
Re 100
Cl
0,8 Re 200
Re 500
0,6 Re 1000
Re 2000
0,4

0,2
tiempo
0,0
70 71 72 73 74 75 76 77 78 79 80
-0,2

-0,4

-0,6

-0,8

-1,0

Figura 3.26 – Coeficiente de sustentación para 70seg<tiempo<80seg

31
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

De la figura 3.26, se calculan los números de Strouhal para los diferentes


números de Reynolds. La tabla 3.1 muestra un resumen de los valores
obtenidos:

Tabla 3.1 – Comparación de los números de Strouhal

Experimental Re 100 Re 200 Re 500 Re1000 Re2000


St 0.21 0,20 0,21 0,22 0,23 0,23

Se puede observar de los valores calculados que, para un número de


Reynolds entre 100 y 500, se encuentran valores del número de Strouhal
cercanos al valor experimental (ver figura 3.20), mientras que si el valor
del número de Reynolds pasa el valor 1000, el número de Strouhal tiende
a aumentar levemente para los resultados numéricos.

3.2.6 Coeficiente de resistencia y capa límite

Si se considera el flujo alrededor de un cilindro, el valor del coeficiente de


resistencia (Cd) cuando el número de Reynolds es cercano a 10, es
elevado y por ende los efectos viscosos dominan el flujo y toda la
resistencia se debe a la fricción superficial. A medida que el número de
Reynolds aumenta, los efectos viscosos se limitan cada vez más a la capa
límite y existe una disminución del coeficiente de resistencia.
Sin embargo, cuando se alcanza un valor del Reynolds de 5000, el Cd
empieza a incrementarse un poco, Esto se debe a que el proceso de
separación se mueve hacia las partes superior e inferior del cilindro, al
mismo tiempo, la presión en la estela se vuelve cada vez menor. Esto se
debe a que la velocidad de la corriente principal es mayor a medida que se
aproxima a las partes superior e inferior del cilindro, de manera que de
acuerdo con la ecuación de Bernouilli, la presión de la corriente libre se
vuelve cada vez menor. Luego la separación ocurre cerca de las partes
superior e inferior del cilindro con una pequeña recuperación de la presión
en la estela, hay una presión menor en la parte posterior del cilindro, lo
que produce una resistencia mayor.
A medida que se incrementa el número de Reynolds, hay un descenso
súbito de la curva para Reynolds 105 y 106. Para números de Reynolds por
debajo del que corresponde al descenso súbito, la separación ocurre en el
lado aguas abajo del cilindro y es de una capa límite laminar. Sin
embargo, a medida que el número de Reynolds en la corriente principal se
incrementa, el número de Reynolds en la capa límite también se
incrementa, por ello, la capa límite experimenta una transición a una capa
límite turbulenta antes de la separación.
Una de las diferencias importantes entre el flujo en una capa límite
laminar y el flujo en una capa límite turbulenta consiste en que el perfil de

32
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

velocidades de la capa límite turbulenta es más “empinado”. Esto significa


que para la misma velocidad de la corriente libre y para el mismo espesor,
el flujo en una capa límite turbulenta tiene apreciablemente más cantidad
de movimiento que el flujo en una capa límite laminar. Por esta razón, el
flujo en una capa límite turbulenta puede atravesar más fácilmente un
gradiente de presión adverso de lo que puede hacerlo una capa límite
laminar antes de que ocurra la separación, de manera que cuando la
transición ocurre en la capa límite del cilindro, el punto de separación
súbitamente se vuelve hasta otra posición aguas abajo en la superficie del
cilindro, con el resultado de que la resistencia disminuye de manera
apreciable. Luego, es la transición en la capa límite lo que explica el
descenso súbito mencionado antes, en la curva del coeficiente de
resistencia (Shames, 1995).

En la figura 3.27, se puede observar el comportamiento del coeficiente de


resistencia experimental para un cilindro bidimensional (NACA Report
Nº619, 1937).

Figura 3.27 – Coeficiente de resistencia experimental (NACA Report 619, 1937)

33
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

100

Cd

Cd - Experimental

10

Re

0
0,1 1 10 100 1000 10000 100000 1000000 10000000

Figura 3.28 – Zona de estudio por las simulaciones numéricas

En la figura 3.28, se puede apreciar la región de estudio por el solver


icoFoam para el caso del cilindro bidimensional para ese rango del número
de Reynolds, la misma se encuentra marcada con un óvalo.

34
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

10
Cd
Cd - OpenFOAM
Cd - Experimental

Re
0
10 100 1000 10000

Figura 3.29 – Coeficiente de resistencia experimental y CFD (30<Re<2000)

En la figura 3.29 se aprecian gráficamente los resultados que comparan los


valores del coeficiente de resistencia experimental para cierto rango del
número de Reynolds con los valores obtenidos mediante las simulaciones
computacionales.

Error Relativo: es la relación entre la diferencia del valor obtenido y el


de referencia respecto al de referencia, e indica en porcentaje, cuan lejos
está el valor calculado respecto al de referencia.

35
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

ValorCALCULADO − ValorREFERENCIA
ErrorRELATIVO = (C2)
ValorREFERENCIA

En donde:

ValorCALCULADO : es el valor que se obtiene como resultado de la simulación

ValorREFERENCIA : es un valor de referencia, por ejemplo el experimental

En la tabla 3.2 se muestran comparativamente los resultados obtenidos


junto con su error relativo.

Tabla 3.2 – Comparación de los coeficientes de resistencia

Re Cd - Experimental Cd - OpenFOAM Error Relativo


30 2,50 2,97 18,69%
40 2,20 2,64 20,18%
50 2,00 2,44 21,88%
100 1,80 2,00 11,26%
200 1,60 1,80 12,33%
500 1,30 1,65 26,80%
1000 0,99 1,47 48,02%
2000 0,97 1,13 16,39%

Para tener una idea del campo de movimiento alrededor del cuerpo en
estudio, se suele graficar la magnitud de la velocidad en el software
ParaView mediante un gráfico de contornos.
Se puede apreciar en la figura 3.30 comparando los resultados de las
simulaciones para un número de Reynolds de 100 y de 200 para un
tiempo total de 100 segundos. Es de notar que la formación de los
vórtices es más acentuada y se genera más rápidamente para el Reynolds
de 200 que para el de 100.
Evidentemente, a número de Reynolds bajos, la presencia del efecto de la
viscosidad es predominante.

36
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 3.30 – Contornos de Velocidades (izquierda Re=100, derecha Re=200)

37
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.7 Comparación con fotografías experimentales

En las siguientes figuras se puede comparar los resultados experimentales


con los de la simulación numérica para un número de Reynolds de 2000.
En la figura 3.31, se nota la formación del enrollamiento de los vórtices en
forma alternada (Van Dyke, 1982) y en la figura 3.32, muestra muy
similares resultados obtenidos mediante la simulación numérica con el
software OpenFOAM.

Figura 3.31 – Fotografía de un cilindro 2D a Re=2000, campo de velocidades

Figura 3.32 – Simulación de un cilindro 2D a Re=2000, campo de velocidades

38
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.2.8 Conclusiones

Mediante las simulaciones computacionales, se puede apreciar que los


valores obtenidos no difieren demasiado de los experimentales y que el
campo de movimiento se asemeja a la realidad. Cabe destacar que el
solver utilizado permitió simular las condiciones en un cierto rango del
número de Reynolds ya que el mismo está limitado al régimen laminar.
Por lo tanto si se quiere explorar el régimen turbulento, se deberá optar
por otro solver.
Para obtener mejores resultados, es probable que el refinamiento de la
malla y la utilización del solver que incluye el modelo de turbulencia
ayuden a disminuir el error relativo en cuanto al valor del coeficiente de
resistencia y al número de Strouhal.
Por ello se considera que los resultados obtenidos son buenos.

39
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.3 Perfil aerodinámico NACA 0009


En el presente trabajo se han simulado con OpenFOAM las condiciones de
flujo alrededor del perfil NACA 0009 a distintos ángulos de ataque (0º, 5º,
10º y 12º) a un número de Reynolds de 3x106. Este es un perfil de la
serie 4, simétrico con un espesor máximo del 9% de la cuerda.
Los resultados son comparables con los datos experimentales del
coeficiente de sustentación y de resistencia del libro Theory of Wing
Sections (Abbott y Doenhoff, 1959), con el software de referencia XFLR5
(Drela XFLR5, 2010) que utiliza métodos integrales y con el Java Applet
Multifoil (MultiFoil, 2007) que utiliza el método de los paneles para flujo
potencial, son estos también de uso gratuito.

3.3.1 Geometría
Cantidad de puntos: 412
Cantidad de líneas: 21
Cantidad de superficies: 9
Cantidad de volúmenes: 1
Cantidad de grupos físicos (Physical Groups): 7 (arriba, abajo, entrada,
salida, perfil, laterales e internalField)
Ancho: 1
Alto: 2
Largo: 3
Distancia al borde de ataque desde la entrada: 1
Cuerda del perfil: 1
Origen del eje de coordenadas: en el borde de ataque

3.3.2 Malla
Cantidad de divisiones en las caras superior e inferior: 50
Cantidad de divisiones en las áreas de entrada y de salida: 50
Cantidad de divisiones del contorno del perfil: 300
Escala puntual de mallado del perfil: 0.01
Cantidad de Nodos en las líneas: 992
Cantidad de Nodos en las superficies: 20862
Cantidad de Triángulos: 42730
Cantidad de Cuadriláteros: 503
Cantidad de Prismas: 21365

40
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 3.33 – Geometría y contorno del perfil NACA 0009

Figura 3.34 – Malla del perfil NACA 0009

41
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.3.3 Condiciones de contorno


Se aplica la condición de no deslizamiento sobre las paredes del perfil, la
superficie superior e inferior del volumen de control tiene la condición de
deslizamiento y tenemos la entrada y la salida del flujo.

3.3.4 Ejecuciones realizadas

El perfil se ensayó bajo distintos ángulos de ataque y para un número de


Reynolds de 3x106 con el solver simpleFoam y se obtuvieron los datos del
coeficiente de resistencia y el coeficiente de sustentación en función del
ángulo de ataque del perfil. El solver simpleFoam puede configurarse
tanto para flujo laminar como para flujo turbulento, el mismo cuenta con
varios modelos de turbulencia que se pueden configurar para aplicarse al
caso en cuestión. En este caso y debido al elevado número de Reynolds,
se utilizó el modelo de turbulencia de Spalart-Almaras (Blazek, 2001), que
es un modelo de turbulencia de una sola ecuación.

3.3.5 Coeficiente de sustentación

En la tabla siguiente se muestran los resultados de los cálculos realizados


por las simulaciones, datos experimentales y de otros software de
referencia:

Tabla 3.3 – Coeficiente de sustentación en función del ángulo de ataque

alfa Experimental OpenFOAM MultiFoil XFLR5 Error Relativo


-12 -1,25 -1,17 -1,40 -1,28 6,10%
-10 -1,00 -1,03 -1,17 -1,09 2,65%
-5 -0,55 -0,55 -0,59 -0,55 0,38%
0 0,00 0,00 0,00 0,00 0,00%
5 0,55 0,55 0,59 0,55 0,38%
10 1,05 1,03 1,17 1,09 2,24%
12 1,24 1,17 1,40 1,28 5,35%

El error relativo calculado con los valores experimentales y el valor


obtenido con el solver de OpenFOAM, es pequeño incluso para valores
elevados del ángulo de ataque.

En la figura 3.35 se puede observar el comportamiento del coeficiente de


sustentación en función del ángulo de ataque.

42
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

1,5

NACA0009 CL

1,0

0,5

alfa
0,0
-12 -7 -2 3 8

-0,5

Experimental
-1,0
OpenFOAM
MultiFoil
XFLR5

-1,5

Figura 3.35 – Coeficiente de sustentación en función del ángulo de ataque

En la figura 3.35 se aprecia que el modelo simulado funciona muy bien


para ángulos de ataque bajos y que recién para ángulos de ataque
superiores a 10º se notan pequeñas diferencias en cuanto a los resultados
obtenidos.

3.3.6 Coeficiente de resistencia

En el cálculo del coeficiente de resistencia se debe tener especial cuidado


en el modelado de la región que está afectada a los efectos de la
viscosidad (capa límite). En el presente trabajo se utilizó un mallado
básico, más fino en la región cercana al perfil y al borde de fuga sin tener
en cuenta la región de la estela. Es probable que por esas razones, el

43
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

valor del coeficiente de resistencia esté alejado del valor correcto para el
número de Reynolds de la simulación.

En la tabla siguiente se muestran los resultados:

Tabla 3.4 – Coeficiente de resistencia para distintos valores del Cl

Cl Experimental OpenFOAM XFLR5


-1,17 0,019 0,127 0,016
-1,03 0,014 0,090 0,013
-0,55 0,008 0,033 0,007
0,00 0,006 0,015 0,004
0,55 0,008 0,033 0,007
1,03 0,014 0,090 0,013
1,17 0,019 0,127 0,016

1,50
NACA0009
Cl
1,00

Experimental
OpenFOAM
0,50
XFLR5

0,00
0,000 0,020 0,040 0,060 0,080 0,100 0,120
Cd

-0,50

-1,00

-1,50

Figura 3.36 – Coeficiente de resistencia para distintos Cl

Cabe destacar que los errores relativos no se calcularon ya que la


diferencia de las simulaciones con los datos experimentales era notable.

44
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Según la figura 3.36, la magnitud de los resultados numéricos no coincide


con los datos experimentales, pero se puede ver que la tendencia de la
curva trata de copiar a los mismos.

Figura 3.37 – Campo de velocidades para perfil NACA 0009 para 0º, 5º, 10º y 12º

3.3.7 Conclusiones

Si bien los resultados obtenidos mediante la simulación numérica con


OpenFOAM difieren del experimental en cuanto al cálculo del coeficiente de
resistencia, la curva del coeficiente de sustentación en función del ángulo
de ataque tiene una tendencia muy similar al experimental e incluso los
errores relativos son pequeños.
La curva del coeficiente de sustentación en función del ángulo de ataque
se puede tomar como válida mientras que la del coeficiente de resistencia
en función del coeficiente de sustentación requiere una nueva modelación.
Una mejora que se le puede realizar al modelo es aplicar otro tipo de
malla en la región de la capa límite y también realizar simulaciones con
otros modelos de turbulencia.

45
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.4 Perfil aerodinámico NACA 0012


Otro perfil que se ha simulado con OpenFOAM es el NACA 0012, que es un
perfil simétrico con un espesor máximo del 12% de la cuerda, también es
de la serie 4, para los distintos ángulos de ataque (0º, 5º, 10º y 12º) a un
número de Reynolds de 3x106.
Los resultados son comparables con los datos experimentales del
coeficiente de sustentación y de resistencia del libro Theory of Wing
Sections (Abbott y Doenhoff, 1959), con el software de referencia XFLR5
(Drela XFLR5, 2010) que utiliza métodos integrales y con el Java Applet
Multifoil (MultiFoil, 2007) que utiliza el método de los paneles para flujo
potencial, son estos también de uso gratuito.

3.4.1 Geometría
Cantidad de puntos: 412
Cantidad de líneas: 21
Cantidad de superficies: 9
Cantidad de volúmenes: 1
Cantidad de grupos físicos (Physical Groups): 7 (arriba, abajo, entrada,
salida, perfil, laterales e internalField)
Ancho: 1
Alto: 2
Largo: 3
Distancia al borde de ataque desde la entrada: 1
Cuerda del perfil: 1
Origen del eje de coordenadas: en el borde de ataque

3.4.2 Malla
Cantidad de divisiones en las caras superior e inferior: 50
Cantidad de divisiones en las áreas de entrada y de salida: 50
Cantidad de divisiones del contorno del perfil: 300
Escala puntual de mallado del perfil: 0.01
Cantidad de Nodos en las líneas: 992
Cantidad de Nodos en las superficies: 21082
Cantidad de Triángulos: 43170
Cantidad de Cuadriláteros: 503
Cantidad de Prismas: 21585

46
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 3.38 – Geometría y contorno del perfil NACA 0012

Figura 3.39 – Malla del perfil NACA 0012

47
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.4.3 Condiciones de contorno


Se aplica la condición de no deslizamiento sobre las paredes del perfil, la
superficie superior e inferior del volumen de control tiene la condición de
deslizamiento y tenemos la entrada y la salida del flujo.

3.4.4 Ejecuciones realizadas

El perfil se ensayó bajo distintos ángulos de ataque y para un número de


Reynolds de 3x106 con el solver simpleFoam y se obtuvieron los datos del
coeficiente de resistencia y el coeficiente de sustentación en función del
ángulo de ataque del perfil. El solver simpleFoam puede configurarse
tanto para flujo laminar como para flujo turbulento, el mismo cuenta con
varios modelos de turbulencia que se pueden configurar para aplicarse al
caso en cuestión. En este caso y debido al elevado número de Reynolds,
se utilizó el modelo de turbulencia de Spalart-Almaras (Blazek, 2001), que
es un modelo de turbulencia de una sola ecuación.

3.4.5 Coeficiente de sustentación

En la tabla siguiente se muestran los resultados de los cálculos realizados


por las simulaciones, datos experimentales y otros software de referencia:

Tabla 3.5 – Coeficiente de sustentación en función del ángulo de ataque

alfa Experimental OpenFOAM MultiFoil XFLR5 Error Relativo


-12 -1,25 -1,18 -1,43 -1,30 5,78%
-10 -1,05 -1,03 -1,20 -1,12 1,97%
-5 -0,52 -0,55 -0,60 -0,55 6,70%
0 0,00 0,00 0,00 0,00 0,00%
5 0,56 0,55 0,60 0,55 0,92%
10 1,10 1,03 1,20 1,12 6,43%
12 1,25 1,18 1,43 1,30 5,78%

El error relativo calculado con los valores experimentales y el valor


obtenido con el solver de OpenFOAM, es pequeño incluso para valores
elevados del ángulo de ataque.

En la figura 3.40 se puede observar el comportamiento del coeficiente de


sustentación en función del ángulo de ataque.

48
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

1,5

NACA0012 CL

1,0

0,5

alfa
0,0
-12 -7 -2 3 8

-0,5

Experimental
-1,0 OpenFOAM
MultiFoil
XFLR5

-1,5

Figura 3.40 – Coeficiente de sustentación en función del ángulo de ataque

En la figura 3.40 se aprecia que el modelo simulado funciona bien para


ángulos de ataque bajos y positivos, para ángulos de ataque superiores a
10º se notan pequeñas diferencias en cuanto a los resultados, para
ángulos de ataque negativos existen diferencias del orden del 6%, lo cual
es aceptable.

3.4.6 Coeficiente de resistencia

Cuando se obtiene el coeficiente de resistencia se debe tener especial


cuidado en el modelado de la región que está afectada a los efectos de la
viscosidad (capa límite). En el presente trabajo se utilizó un mallado
básico, más fino en la región cercana al perfil y al borde de fuga sin tener
en cuenta la región de la estela. Es probable que por esas razones, el

49
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

valor del coeficiente de resistencia esté alejado del valor correcto para el
número de Reynolds de la simulación.
En la tabla siguiente se muestran los resultados:

Tabla 3.6 – Coeficiente de resistencia para distintos valores del Cl

Cl Experimental OpenFOAM XFLR5


-1,18 0,022 0,105 0,014
-1,03 0,014 0,074 0,011
-0,55 0,008 0,031 0,007
0,00 0,005 0,017 0,005
0,55 0,008 0,031 0,007
1,03 0,014 0,074 0,011
1,18 0,022 0,105 0,014

1,50
NACA0012
Cl
1,00

Experimental
OpenFOAM
0,50
XFLR5

0,00
0,000 0,020 0,040 0,060 0,080 0,100 0,120
Cd

-0,50

-1,00

-1,50

Figura 3.41 – Coeficiente de resistencia para distintos Cl

Al igual que el caso anterior, los errores relativos no se calcularon ya que


la diferencia de las simulaciones con los datos experimentales es evidente.

50
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Según la figura 3.41, la magnitud de los resultados numéricos no coincide


con los datos experimentales, pero se puede ver que la tendencia de la
curva trata de copiar a los mismos, igual que el caso del perfil NACA 0009.

Figura 3.42 – Campo de velocidades para perfil NACA 0012 para 0º, 5º, 10º y 12º

3.4.7 Conclusiones

Los resultados obtenidos mediante la simulación numérica con OpenFOAM


difieren del experimental en cuanto al cálculo del coeficiente de
resistencia, pero la curva del coeficiente de sustentación en función del
ángulo de ataque tiene una tendencia similar incluso en el orden de
magnitud con errores de hasta un 7%.
Una mejora que se le puede realizar al modelo es aplicar otro tipo de
malla en la región de la capa límite y del perfil, como así también realizar
simulaciones con otros modelos de turbulencia para otros números de
Reynolds.

51
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.5 Perfil aerodinámico NACA 4412

También, en el presente trabajo se han simulado con OpenFOAM las


condiciones de flujo alrededor del perfil NACA 4412, es un perfil de la serie
4, asimétrico y con un espesor máximo del 12% ubicado al 40% de la
cuerda a distintos ángulos de ataque (-12º, -10º, -5º, 0º, 5º, 10º y 12º)
a un número de Reynolds de 3x106.
Los resultados son comparables con los datos experimentales del
coeficiente de sustentación y de resistencia del libro Theory of Wing
Sections (Abbott y Doenhoff, 1959), con el software de referencia XFLR5
(Drela XFLR5, 2010) que utiliza métodos integrales y con el Java Applet
Multifoil (MultiFoil, 2007) que utiliza el método de los paneles para flujo
potencial, son estos también de uso gratuito.

3.5.1 Geometría
Cantidad de puntos: 412
Cantidad de líneas: 21
Cantidad de superficies: 9
Cantidad de volúmenes: 1
Cantidad de grupos físicos (Physical Groups): 7 (arriba, abajo, entrada,
salida, perfil, laterales e internalField)
Ancho: 1
Alto: 2
Largo: 3
Distancia al borde de ataque desde la entrada: 1
Cuerda del perfil: 1
Origen del eje de coordenadas: en el borde de ataque

3.5.2 Malla
Cantidad de divisiones en las caras superior e inferior: 50
Cantidad de divisiones en las áreas de entrada y de salida: 50
Cantidad de divisiones del contorno del perfil: 300
Escala puntual de mallado del perfil: 0.01
Cantidad de Nodos en las líneas: 992
Cantidad de Nodos en las superficies: 20596
Cantidad de Triángulos: 42198
Cantidad de Cuadriláteros: 503
Cantidad de Prismas: 21099

52
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura 3.43 – Geometría y contorno del perfil NACA 4412

Figura 3.44 – Malla del perfil NACA 4412

53
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

3.5.3 Condiciones de contorno


Se aplica la condición de no deslizamiento sobre las paredes del perfil, la
superficie superior e inferior del volumen de control tiene la condición de
deslizamiento y tenemos la entrada y la salida del flujo.

3.5.4 Ejecuciones realizadas

El perfil se ensayó bajo distintos ángulos de ataque y para un número de


Reynolds de 3x106 con el solver simpleFoam y se obtuvieron los datos del
coeficiente de resistencia y el coeficiente de sustentación en función del
ángulo de ataque del perfil. El solver simpleFoam puede configurarse
tanto para flujo laminar como para flujo turbulento, el mismo cuenta con
varios modelos de turbulencia que se pueden configurar para aplicarse al
caso en cuestión. En este caso y debido al elevado número de Reynolds,
se utilizó el modelo de turbulencia de Spalart-Almaras (Blazek, 2001), que
es un modelo de turbulencia de una sola ecuación.

3.5.5 Coeficiente de sustentación

En la tabla siguiente se muestran los resultados de los cálculos realizados


por las simulaciones, datos experimentales y otros software de referencia:

Tabla 3.7 – Coeficientes de sustentación en función del ángulo de ataque

alfa Experimental OpenFOAM MultiFoil XFLR5 Error Relativo


-12 -0,76 -0,70 -0,93 -0,86 8,05%
-10 -0,63 -0,56 -0,73 -0,64 10,97%
-5 -0,10 -0,10 -0,02 -0,09 1,43%
0 0,44 0,48 0,52 0,48 8,52%
5 0,95 1,02 1,12 1,03 7,55%
10 1,35 1,51 1,70 1,49 11,91%
12 1,48 1,66 1,95 1,63 12,08%

El error relativo calculado con los valores experimentales y el valor


obtenido con el solver de OpenFOAM, es pequeño incluso para valores
elevados del ángulo de ataque.
En la figura 3.45 se puede observar el comportamiento del coeficiente de
sustentación en función del ángulo de ataque.

54
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

2,0

NACA4412 CL

1,5

1,0

0,5

alfa
0,0
-12 -7 -2 3 8

-0,5 Experimental
OpenFOAM
MultiFoil
XFLR5

-1,0

Figura 3.45 – Coeficiente de sustentación en función del ángulo de ataque

En la figura 3.45 se aprecia que el modelo simulado funciona muy bien


para ángulos de ataque bajos y que para ángulos de ataque superiores a
10º se notan pequeñas diferencias en cuanto a los resultados.
También se puede notar que el coeficiente de sustentación nula para la
simulación es muy similar al experimental (error relativo del 9%).
A pesar de que este es un perfil asimétrico, los resultados tienden a seguir
con la curva experimental.

3.5.6 Coeficiente de resistencia

En el cálculo del coeficiente de resistencia se debe tener especial cuidado


en el modelado de la región que está afectada a los efectos de la
viscosidad (capa límite). En el presente trabajo se utilizó un mallado

55
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

básico, más fino en la región cercana al perfil y al borde de fuga sin tener
en cuenta la región de la estela. Es probable que por esas razones, el
valor del coeficiente de resistencia esté alejado del valor correcto para el
número de Reynolds de la simulación.

En la tabla siguiente se muestran los resultados.

Tabla 3.8 – Coeficiente de resistencia para distintos valores de Cl

Cl Experimental OpenFOAM XFLR5


-1,66 0,109 0,017
-1,51 0,021 0,083 0,014
-1,02 0,008 0,037 0,006
0,48 0,008 0,021 0,006
1,02 0,008 0,037 0,007
1,51 0,021 0,083 0,011
1,66 0,109 0,013

2,00
NACA4412
Cl
1,50

1,00
Experimental
OpenFOAM
0,50 XFLR5

0,00
0,000 0,020 0,040 0,060 0,080 0,100 0,120
Cd
-0,50

-1,00

-1,50

-2,00

Figura 3.46 – Coeficiente de resistencia para distintos valores de Cl

56
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Cabe destacar que los errores relativos no se calcularon ya que la


diferencia de las simulaciones con los datos experimentales era notable.

Según la figura 3.46, la magnitud de los resultados numéricos no coincide


con los datos experimentales, pero se puede apreciar que la tendencia de
la curva trata de copiar a los mismos.

Figura 3.47 – Campo de velocidades para perfil NACA 4412

3.5.7 Conclusiones

Si bien los resultados obtenidos mediante la simulación numérica con


OpenFOAM difieren del experimental en cuanto al cálculo del coeficiente de
resistencia, la curva del coeficiente de sustentación en función del ángulo
de ataque tiene una tendencia similar incluso en el orden de magnitud aún
con errores relativos del orden del 12% (máximo).
En la figura que muestra el campo de movimiento, se ve que el patrón del
flujo alrededor del cuerpo, copia bastante bien su forma y que a medida
que se aumenta el ángulo de ataque se forma una estela por detrás del
mismo.

57
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Una mejora que se le puede realizar al modelo es aplicar otro tipo de


malla en la región de la capa límite y también realizar simulaciones con
otros modelos de turbulencia.

58
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

APENDICE A – Software OpenFOAM


A.1 Instalación

La instalación de OpenFOAM requiere de conocimientos previos acerca del


uso de un sistema operativo basado en Linux (p.e. Ubuntu) y de los
comandos básicos de la consola (ó terminal) para la ejecución,
instalación y acciones sobre archivos, permisos, configuración del sistema,
etc (Stutz, 2004; Blum, 2008; Negus y Caen, 2008).

En el presente trabajo, se ha utilizado como sistema operativo a Ubuntu


10.04 en su versión de 32bits (aunque el hardware sea de 64bits) y la
versión de 32bits de los software de cálculo, simulaciones y post-proceso.

Los archivos de instalación del sistema operativo como del solver CFD, se
podrán descargar de sus respectivas páginas web oficiales:

http://www.ubuntu.com/

http://www.openfoam.com/ (ó desde su repositorio)

http://sourceforge.net/projects/foam/files/ (repositorio)

Para la instalación de OpenFOAM-1.6 se requiere realizar distintas tareas,


tanto en entorno gráfico y consola ó solamente desde la consola,
recomendado solo para los usuarios avanzados (Stutz, 2004).

A.2 Pasos a seguir

Ingresar en el sitio web de OpenFOAM (ó repositorio) y descargar los


siguientes archivos:

1º) OpenFOAM-1.6.General.gtgz
2º) OpenFOAM-1.6.linuxGccDPOpt.gtgz
3º) OpenFOAM-1.6.linuxGccSPOpt.gtgz
4º) ThirdParty-1.6.General.gtgz
5º) ThirdParty-1.6.linuxGcc.gtgz

El directorio de usuario en Linux se encuentra en:

/home

por ende si el usuario se llama dario, el directorio del usuario será:

59
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

/home/dario

Esta carpeta es la que se utilizará como base para la instalación de


OpenFOAM.

Se sigue con la creación de un directorio llamado OpenFOAM dentro del


directorio del usuario para que quede de la siguiente manera:

/home/dario/OpenFOAM

donde dario es el nombre del usuario actual, podría ser otro, p.e. pepito
y quedaría de la siguiente manera:

/home/pepito/OpenFOAM

La creación del directorio OpenFOAM se puede hacer mediante entorno


gráfico o por consola.

Por consola:

mkdir OpenFOAM

Una vez realizado esto, hay que copiar (o mover) los cinco archivos
descargados anteriormente dentro de la carpeta OpenFOAM ya creada

Por consola mediante el comando cp para copiar o mv para mover:

cp /home/Descargas/*.gtgz /home/dario/OpenFOAM

mv /home/Descargas/*.gtgz /home/dario/OpenFOAM

Ahora hay que proceder a descomprimir los archivos que están en el


formato .gtgz para que se pueda ejecutar el software. Si se tiene la
aplicación instalada, se puede hacer desde el entorno gráfico, sino
mediante la consola con el comando tar y las opciones zxf respetando el
orden indicado:

tar zxf OpenFOAM-1.6.General.gtgz


tar zxf OpenFOAM-1.6.linuxGccDPOpt.gtgz
tar zxf OpenFOAM-1.6.linuxGccSPOpt.gtgz
tar zxf ThirdParty-1.6.General.gtgz
tar zxf ThirdParty-1.6.linuxGcc.gtgz

60
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Una vez realizado este procedimiento, hay que verificar que se hayan
creado las siguientes carpetas:

/home/dario/OpenFOAM/OpenFOAM-1.6 (y más carpetas dentro)

/home/dario/OpenFOAM/ThirdParty-1.6 (y más carpetas dentro)

/home/dario/OpenFOAM/dario-1.6 (y más carpetas dentro)

En el siguiente paso, lo que se hace es direccionar las variables de


entorno que usa OpenFOAM que están en el archivo bash.bashrc en:

/home/dario/OpenFOAM/OpenFOAM-1.6/etc

Esto se logra editando el archivo .bashrc que está dentro del directorio:

/home/dario

Notar que el archivo .bashrc es un archivo oculto (por eso tiene un punto
delante de su nombre), por ende si estamos en el entorno gráfico, hay
que activar una opción para que se vean los archivos ocultos (Ctrl+H), o
mediante la consola sería:

cd /home/dario
ls -al

Cuando se localiza el mencionado archivo, se puede abrir mediante el


editor gedit haciendo doble clic sobre el archivo o mediante la consola:

sudo gedit .bashrc (y poner la contraseña de usuario si se la pide)

Una vez abierto el archivo, hay que agregar al final del mismo (en la
última fila) la siguiente línea tal cual como aparece (no olvidar del punto):

. /home/dario/OpenFOAM/OpenFOAM-1.6/etc/bashrc

En donde dice dario deberá aparecer el nombre del usuario elegido.

Una vez insertada esta línea en el archivo .bashrc, guardarlo y cerrar el


editor.

Para que tenga efecto, hay que reiniciar el terminal cerrándolo y


abriéndolo otra vez, luego de estos pasos, se estaría en condiciones de
ejecutar la prueba de instalación.

61
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Ahora se puede iniciar la prueba de la instalación, ingresar en la terminal


al siguiente directorio (con el comando cd):

cd /home/dario/OpenFOAM/OpenFOAM-1.6/bin

y ahora se ejecuta la prueba de la instalación escribiendo el script


siguiente:

./foamInstallationTest

Aparecerán los siguientes datos acerca de la prueba de la instalación:

Executing ./foamInstallationTest:
Checking basic setup...
---------------------------------------------------------------------------
Shell: bash
Host: dario-desktop
OS: Linux version 2.6.32-21-generic
---------------------------------------------------------------------------
Checking main OpenFOAM env variables...
---------------------------------------------------------------------------
Environment_variable Set_to_file_or_directory Valid Crit
---------------------------------------------------------------------------
$WM_PROJECT_INST_DIR /home/dario/OpenFOAM yes yes
$WM_PROJECT_USER_DIR /home/dario/OpenFOAM/dario-1.6 no no
$WM_THIRD_PARTY_DIR /home/dario/OpenFOAM/ThirdParty-1.6 yes yes
-------------------------------------------------------------------------
Checking the OpenFOAM env variables set on the PATH...
---------------------------------------------------------------------------
Environment_variable Set_to_file_or_directory Valid Path Crit
---------------------------------------------------------------------------
$WM_PROJECT_DIR /home/dario/OpenFOAM/OpenFOAM-1.6 yes yes yes
$FOAM_APPBIN ...M-1.6/applications/bin/linuxGccDPOpt yes yes yes
$FOAM_SITE_APPBIN .../OpenFOAM/site/1.6/bin/linuxGccDPOpt no no
$FOAM_USER_APPBIN ...o-1.6/applications/bin/linuxGccDPOpt no no
$WM_DIR /home/dario/OpenFOAM/OpenFOAM-1.6/wmake yes yes yes
---------------------------------------------------------------------------
Checking the OpenFOAM env variables set on the LD_LIBRARY_PATH...
---------------------------------------------------------------------------
Environment_variable Set_to_file_or_directory Valid Path Crit
---------------------------------------------------------------------------
$FOAM_LIBBIN ...nFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt yes yes yes
$FOAM_SITE_LIBBIN .../OpenFOAM/site/1.6/lib/linuxGccDPOpt no no
$FOAM_USER_LIBBIN ...OpenFOAM/dario-1.6/lib/linuxGccDPOpt no no
$MPI_ARCH_PATH ...penmpi-1.3.3/platforms/linuxGccDPOpt yes yes yes
---------------------------------------------------------------------------
Third party software
---------------------------------------------------------------------------
Software Version Location
---------------------------------------------------------------------------
WARNING: gcc version does not match gcc supplied with this release of OpenFOAM
Supplied version: 4.3.3
User version :
Minimum required: 4.3.1
gcc ...nFOAM/ThirdParty-1.6/gcc-4.3.3/platforms/linux/bin/gcc
gzip 1.3.12 /bin/gzip
tar 1.22 /bin/tar
icoFoam 1.6 ...AM/OpenFOAM-1.6/applications/bin/linuxGccDPOpt/icoFoam
---------------------------------------------------------------------------
Summary

62
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
---------------------------------------------------------------------------Base
configuration ok.
Critical systems ok.
done.

Si los siguientes datos son los que nos arroja el terminal, la instalación se
ha hecho correctamente, se lo contrario podrían aparecer algún error
crítico (CRITICAL ERROR), por ello habrá que revisar los pasos de la
instalación para ver que puede estar fallando en la misma, ya sea
compatibilidad de software, arquitectura de 64 ó 32 bits, etc.

Ahora se puede hacer una prueba del funcionamiento del mismo. Esto se
logra ingresando al directorio de los tutoriales, haciendo en la consola:

cd /home/dario/OpenFOAM/OpenFOAM-1.6/tutorials

Nuevamente, aquí donde aparece el nombre dario debe ser reemplazado


por el nombre del usuario actual.

Cabe destacar que OpenFOAM viene con una serie de tutoriales para el uso
de los distintos solvers, según sea el problema físico en cuestión.

La prueba de ejecución que se muestra a continuación, utiliza el solver


icoFoam que utiliza las ecuaciones de Navier-Stokes para flujo laminar.

Una vez dentro del directorio de los tutoriales, ingresar al directorio del
caso en estudio, p.e. el de una cavidad simple (cavity) haciendo:

cd /incompressible/icoFoam/cavity

Ya dentro del directorio del caso, viene la secuencia de los comandos


tanto para el mallador (interno), como para el solver y algún conversor
utilizado tanto para el pre-proceso como para el post-proceso.

Para el mallador, se crea una malla de la geometría definida en el archivo


blockMeshDict, se escribe en la consola:

blockMesh

y debería aparecer lo siguiente en la pantalla:

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 1.6-53b7f692aa41
Exec : blockMesh

63
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
Date : Nov 22 2010
Time : 22:46:46
Host : dario-desktop
PID : 4191
Case : /home/dario/OpenFOAM/OpenFOAM-1.6/tutorials/incompressible/icoFoam/cavity
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Creating block mesh from
"/home/dario/OpenFOAM/OpenFOAM-
1.6/tutorials/incompressible/icoFoam/cavity/constant/polyMesh/blockMeshDict"
Creating blockCorners
Creating curved edges
Creating blocks
Creating patches
Creating block mesh topology
Default patch type set to empty
Check block mesh topology
Basic statistics
Number of internal faces : 0
Number of boundary faces : 6
Number of defined boundary faces : 6
Number of undefined boundary faces : 0
Checking patch -> block consistency
Creating block offsets
Creating merge list .
Creating points with scale 0.1
Creating cells
Creating patches
Creating mesh from block mesh
Default patch type set to empty
Writing polyMesh
End

Y no deberían aparecer mensajes de error.

Ahora queda por ejecutar el solver solo escribiendo en la consola:

icoFoam

y debería aparecer:

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 1.6-53b7f692aa41
Exec : icoFoam
Date : Nov 22 2010
Time : 22:46:48
Host : dario-desktop
PID : 4192
Case : /home/dario/OpenFOAM/OpenFOAM-1.6/tutorials/incompressible/icoFoam/cavity
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

64
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
Create mesh for time = 0
Reading transportProperties
Reading field p
Reading field U
Reading/calculating face flux field phi
Starting time loop
Time = 0.005
Courant Number mean: 0 max: 0
DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 2.96338e-06, No
Iterations 8
DILUPBiCG: Solving for Uy, Initial residual = 0, Final residual = 0, No Iterations
0
DICPCG: Solving for p, Initial residual = 1, Final residual = 7.55402e-07, No
Iterations 35
time step continuity errors : sum local = 5.03809e-09, global = 1.94884e-19,
cumulative = 1.94884e-19
DICPCG: Solving for p, Initial residual = 0.523591, Final residual = 9.72352e-07,
No Iterations 34
time step continuity errors : sum local = 1.07766e-08, global = 4.49324e-19,
cumulative = 6.44208e-19
ExecutionTime = 0.02 s ClockTime = 0 s
Time = 0.01
Courant Number mean: 0.0514108 max: 0.585722
DILUPBiCG: Solving for Ux, Initial residual = 0.148584, Final residual = 7.15711e-
06, No Iterations 6
DILUPBiCG: Solving for Uy, Initial residual = 0.256618, Final residual = 8.94127e-
06, No Iterations 6
DICPCG: Solving for p, Initial residual = 0.379232, Final residual = 3.38648e-07,
No Iterations 34
time step continuity errors : sum local = 3.15698e-09, global = 3.18961e-19,
cumulative = 9.63169e-19
DICPCG: Solving for p, Initial residual = 0.286937, Final residual = 5.99637e-07,
No Iterations 33
time step continuity errors : sum local = 6.08774e-09, global = -3.64249e-19,
cumulative = 5.9892e-19
ExecutionTime = 0.03 s ClockTime = 0 s
.
.
.
Time = 0.495
Courant Number mean: 0.116925 max: 0.852134
DILUPBiCG: Solving for Ux, Initial residual = 1.99665e-07, Final residual =
1.99665e-07, No Iterations 0
DILUPBiCG: Solving for Uy, Initial residual = 4.36311e-07, Final residual =
4.36311e-07, No Iterations 0
DICPCG: Solving for p, Initial residual = 1.0746e-06, Final residual = 3.53797e-
07, No Iterations 1
time step continuity errors : sum local = 5.37651e-09, global = -1.46742e-19,
cumulative = -1.15743e-18
DICPCG: Solving for p, Initial residual = 6.81574e-07, Final residual = 6.81574e-
07, No Iterations 0
time step continuity errors : sum local = 8.06059e-09, global = -1.33507e-19,
cumulative = -1.29094e-18
ExecutionTime = 0.23 s ClockTime = 0 s
Time = 0.5
Courant Number mean: 0.116925 max: 0.852134
DILUPBiCG: Solving for Ux, Initial residual = 1.89493e-07, Final residual =
1.89493e-07, No Iterations 0
DILUPBiCG: Solving for Uy, Initial residual = 4.14522e-07, Final residual =
4.14522e-07, No Iterations 0
DICPCG: Solving for p, Initial residual = 1.06665e-06, Final residual = 3.39604e-
07, No Iterations 1
time step continuity errors : sum local = 5.25344e-09, global = 8.60268e-20,
cumulative = -1.20491e-18
DICPCG: Solving for p, Initial residual = 5.36118e-07, Final residual = 5.36118e-

65
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
07, No Iterations 0
time step continuity errors : sum local = 6.86432e-09, global = -1.44128e-18,
cumulative = -2.64619e-18
ExecutionTime = 0.23 s ClockTime = 0 s
End

Si aparece la palabra END y no arroja ningún mensaje de error mientras


se estaba ejecutando, salió todo bien.
Para ver los resultados, se debe tener de antemano el software Paraview
instalado, este software requiere se haga una conversión de formato
mediante el siguiente comando:

foamToVTK

Esto creará un directorio llamado VTK (dentro del directorio del caso) y
dentro de él se encontrarán varios archivos con formato .vtk y algunos
directorios. Desde el programa Paraview se debe ingresar a este directorio
y abrir los archivos de formato .vtk.

Una vez abierto el software Paraview, se aplican filtros y la selección de la


variable que el usuario desee, se puede apreciar tanto el campo de
velocidades como el de presiones (para este solver en particular).

A.3 Utilización del software OpenFOAM

Tal como se mencionó, el software OpenFOAM viene con una serie de


librerías en la cuales se puede programar e integrar dentro de los archivos
del caso de estudio para poder calcular magnitudes especiales y derivadas
de los datos que el solver calcula.

A.4 Características de OpenFOAM

OpenFOAM® (Open Field Operation and Manipulation) es un paquete de


software libre y de código abierto para CFD producido por una compañía
llamada OpenCFD Ltd. Esta tiene una vasta experiencia en el campo de las
áreas de ingeniería y ciencia tanto para instituciones comerciales como
académicas. OpenFOAM tiene un amplio rango de características para
calcular desde flujos de fluidos complejos que involucran reacciones
químicas, turbulencia y transferencia de calor hasta la dinámica del sólido
y electromagnetismo (OpenFOAM, 2010).
El núcleo de la tecnología de OpenFOAM se basa en un conjunto muy
efectivo de módulos en C++. Estos se utilizan para construir una gran
cantidad de solvers para simular problemas específicos en ingeniería,
utilidades para realizar tareas de pre y post-proceso desde un rango

66
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

simple de datos hasta la visualización y el mallado, librerías para crear


herramientas que se ayudan a diseñar los solvers y las utilidades tales
como los modelos físicos, turbulencia, etc.
OpenFOAM trae una serie de solvers, utilidades y librerías ya
preconfiguradas listas para usar. De todas maneras, como el software es
abierto, no solo de código abierto sino de su estructura y diseño
jerárquico, tanto los solvers, utilidades y librerías son muy utilizados por
programadores e investigadores.
OpenFOAM utiliza un esquema de volumen finito para resolver sistemas de
ecuaciones diferenciales con derivadas parciales en cualquier malla no-
estructurada tridimensional de celdas poliédricas. Los solvers para flujos
de fluidos se desarrollan para que tengan una solución robusta, implícita e
iterativa, aunque se utilizan técnicas alternativas para los solvers de la
mecánica del continuo. El proceso de paralelismo por descomposición del
dominio es fundamental en el diseño de OpenFOAM, el mismo permite
correr casos en que se requiere del uso de varios procesadores en forma
paralela aprovechando al máximo el hardware disponible (OpenFOAM,
2010).

A.5 Estructura de un caso de OpenFOAM

Figura A.1 – Estructura de un caso de OpenFOAM

67
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Para correr un caso del software OpenFOAM, es necesario crear una serie
de carpetas o directorios y varios archivos dentro (OpenFOAM-1.6a,
2009).

La forma recomendada es hacer una copia de algún caso existente dentro


del directorio de los tutoriales y modificarlo según las necesidades del
fenómeno en estudio. La estructura de un caso normal es la que aparece
en la figura A.1.

A.6 Descripción de las partes de un caso de estudio


/case/: es el nombre que el usuario le da al caso, por ejemplo si se
estudia un perfil aerodinámico, su nombre puede ser NACA0009. El resto
de los nombres de los archivos y directorios se deben mantener, los
archivos se pueden editar pero sus nombres no se deben cambiar.

/case/system/: este directorio contiene toda la configuración en cuanto


al control del tiempo de cálculo, los métodos de cálculo y propiedades
que afectan al solver. Los archivos que contiene son: controlDict,
fvSchemes, fvSolution y además puede contener otros archivos como el
sampleDict.

/case/constant/: este directorio tiene los datos de las constantes


utilizadas como ser la viscosidad, densidad, modelo de turbulencia, etc,
dentro de los siguientes archivos: transportProperties,
turbulenceProperties y RASProperties.

/case/constant/polyMesh/: dentro de este directorio se encuentran los


datos de la malla que se distribuyen en varios archivos como ser: cells,
cellZones, faces, faceZone, neighbour, owner, points, pointZones y
boundary y en otro directorio llamado /case/constant/polyMesh/sets/
en donde se encuentra el archivo internalField que define el volumen
de la geometría en estudio y que además pueden figurar otros archivos
dependiendo del solver utilizado.

/case/0/: es el directorio del tiempo cero (zero time directory), es decir


en el cual se encuentran las condiciones iniciales de los campos de presión
y de velocidad mediante el nombre de los siguientes archivos p y U
respectivamente. También pueden existir otros archivos que denotan las
condiciones iniciales de algún modelo de turbulencia. A medida que
progresen los cálculos, irán apareciendo más directorios de tiempo
/case/0.01/ , /case/0.02/ , etc, acordes a la configuración de escritura
e intervalo de cálculo que se haya dado dentro de las opciones del
archivo controlDict, luego dentro de estos directorios de tiempo estarán

68
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

los resultados obtenidos del campo de presiones y del campo de


velocidades.

A.7 Descripción de solvers utilizados

Los solvers de OpenFOAM utilizados en el presente trabajo fueron


seleccionados en cuanto a sus prestaciones, su sencillez de ajustar las
variables que los controlan y que además pueden servir para la validación
de casos experimentales:

potentialFoam: este es un solver para flujo potencial que puede ser


utilizado para generar las condiciones iniciales de los campos de velocidad
y presión para las ecuaciones de Navier-Stokes.

icoFoam: este es un solver para flujo laminar inestacionario e


incompresible de fluidos newtonianos, resuelve las ecuaciones de Navier-
Stokes.

simpleFoam: este es un solver para flujo estacionario, incompresible y


turbulento.

A.8 Unidades físicas

OpenFOAM utiliza las unidades del sistema internacional para que se


obtengan resultados coherentes cuando se realizan operaciones
matemáticas entre las magnitudes que intervienen.
Los parámetros que requieren datos iniciales (velocidad, presión,
temperatura, viscosidad, etc) se le indican mediante un vector los
exponentes de las dimensiones a la que se refiere.

Por ejemplo, para el caso de la viscosidad cinemática, se define como:

nu nu [ 0 2 -1 0 0 0 0 ] 0.001;

en donde cada uno de los términos dentro de los corchetes se refieren a


las unidades como sigue: masa en kilogramos, longitud en metros,
tiempo en segundos, temperatura en grados Kelvin, masa molar en
kilogramo-mol, corriente eléctrica en amperes e intensidad
luminosa en candelas respectivamente (OpenFOAM-1.6b, 2009).

69
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

APENDICE B – Solvers de OpenFOAM


B.1 Solver potentialFoam

El comando potentialFoam es un solver que calcula el campo de


movimiento utilizando la teoría de flujo potencial con las simplificaciones
que trae, o sea para un flujo incompresible e irrotacional (densidad
constante y viscosidad nula) y se utiliza para tener una noción del campo
de movimiento en el caso de la dinámica de los fluidos y se obtienen
resultados comparables con las ecuaciones analíticas de la teoría de flujo
potencial y también con algunos resultados experimentales (bajo ciertas
limitaciones).

Un caso típico (NACA0009) contiene los siguientes archivos:

B.1.1 /case/system/controlDict

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application potentialFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

Ahora se describen los parámetros utilizados en el presente trabajo:

70
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

application: acá va el nombre del solver.

startFrom: se indica el tiempo desde cuando se inician los cálculos, en


general se usa la opción startTime, si se usa la opción latestTime, el
solver, arranca desde el último tiempo grabado en el directorio del caso,
esto sirve cuando uno decide detener los cálculos y retomarlos por
ejemplo al día siguiente.

startTime: es el tiempo de inicio de los cálculos, en general vale cero.

stopAt: le indica al solver cuando detenerse, en general vale endTime.

endTime: es el tiempo de la finalización de los cálculos.

deltaT: es el paso de tiempo que el usuario ajusta, es pequeño.

writeControl: indica de que manera que se muestra en pantalla los


pasos de cálculo.

writeInterval: es muy importante, cuando el endTime es grande y el


deltaT es pequeño se tienen muchos directorios de tiempo, este indica
cada cuantos deltaT se escriben en el disco rígido. Ayuda a controlar la
cantidad de espacio que se ocupa en el disco rígido (OpenFOAM-1.6a,
2009).

B.1.2 /case/system/fvSolution

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
}
SIMPLE

71
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
{
nNonOrthogonalCorrectors 15;
}
// ************************************************************************* //

nNonOrthogonalCorrectors: este valor indica la cantidad de iteraciones


forzadas para la convergencia y corregir problemas de ortogonalidad de la
malla, por ello se utiliza un valor de 10 ó 15 cuando se tiene una malla
compleja de varios sectores, si la malla es una región entera, un valor de
3 ó 5 es suficiente (OpenFOAM-1.6b, 2009).

B.1.3 /case/system/fvSchemes

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
}
laplacianSchemes
{
default none;
laplacian(1,p) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

72
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

En este archivo se encuentran las opciones del solver y los parámetros y


esquemas de cálculo (no descriptos en el manual).

B.1.4 /case/system/sampleDict

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location system;
object sampleDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Set output format : choice of
// xmgr
// jplot
// gnuplot
// raw
//setFormat raw;
// Surface output format. Choice of
// null : suppress output
// foamFile : separate points, faces and values file
// dx : DX scalar or vector format
// vtk : VTK ascii format
// raw : x y z value format for use with e.g. gnuplot 'splot'.
surfaceFormat raw;
//interpolationScheme cellPoint;
fields
(
p
U
);
sets
(
);
surfaces
(
one // es el nombre del archivo de salida
{
type patch;
patchName perfil; // nombre del patch en estudio
}
);
// *********************************************************************** //

Si se incluye este archivo en el directorio /system, se puede extraer el


valor de las presiones y de las velocidades (p y U) de la región que se
quiera estudiar.

73
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

En este caso, la región a estudiar es sobre el perfil, esto se logra tipeando


en la consola:

sample

El resultado arroja sendos archivos, p_one.raw y U_one.raw dentro de un


directorio llamado surfaces para cada paso de tiempo (dado por
writeInterval)
Existen otras opciones para el archivo sample no tratadas en el presente
trabajo (CFD Online, 2010).

B.1.5 /case/constant/boundary

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
7
(
laterales
{
type empty;
nFaces 253710;
startFace 189831;
}
abajo
{
type patch;
nFaces 99;
startFace 443541;
}
salida
{
type patch;
nFaces 199;
startFace 443640;
}
arriba
{
type patch;
nFaces 99;
startFace 443839;
}
entrada
{
type patch;

74
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
nFaces 99;
startFace 443938;
}
perfil
{
type patch;
nFaces 407;
startFace 444037;
}
defaultFaces
{
type empty;
nFaces 0;
startFace 444444;
}
)
// ************************************************************************* //

En este archivo se encuentran los “parches” llamados patch por OpenFOAM


que se refieren a las regiones físicas de la geometría en estudio y sus
respectivas condiciones de contorno. Por ejemplo a la entrada del flujo se
la llama patch, luego en los archivos de configuración de la entrada en
cuanto a las condiciones iniciales (/0/p y /0/U) se le asigna un valor
inicial para la presión y para la velocidad.
El número 7 que aparece debajo del encabezado es propio para cada caso
y se refiere a la cantidad de parches que se tiene en estudio, en este caso
se cuenta con laterales, abajo, salida, arriba, entrada, perfil y
defaultFaces que en total son 7.

El patch del tipo empty indica que sobre esa cara no se calcula nada, por
ejemplo OpenFOAM siempre considera al caso como tridimensional, si se
tiene un caso bidimensional, el patch llamado “laterales” tiene asignado
el tipo empty en donde los laterales son las caras paralelas al flujo, ya que
no se requieren cálculos en esa dirección (empty en la dirección z)

El patch llamado “defaultFaces” es por defecto del tipo patch y se genera


automáticamente cuando se utiliza algún comando de conversión ó
importación de la malla (p.e. gmshToFoam). Debe llevar el valor empty
para que el caso pueda correr sin problemas (CFD Online, 2010).

B.1.6 /case/0/p

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;

75
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
laterales
{
type empty;
}
abajo
{
type slip;
}
salida
{
type fixedValue;
value uniform 0;
}
arriba
{
type slip;
}
entrada
{
type zeroGradient;
}
perfil
{
type slip;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

Este archivo indica las condiciones iniciales para la presión para cada uno
de las superficies que intervienen en la geometría en estudio. Cabe
destacar que debe contener la misma cantidad de “parches” que el archivo
boundary y los tipos de parches (más usados) pueden ser:

empty: con este tipo de parche se le indica al software que no realice


cálculos en la pared que se define con este parche. Se usa para el caso
bidimensional y para el parche defaultFaces que aparece luego de una
conversión ó importación de la malla.

slip: aplica la condición de deslizamiento sobre esa pared.

fixedValue: condiciona que sobre esa pared se tenga un valor fijo


especificado, por ejemplo en el caso de arriba se impone que el valor sea
de cero (value uniform 0;).

76
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

zeroGradient: impone la condición que tenga un gradiente igual a cero


sobre esa pared.

B.1.7 /case/0/U

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
laterales
{
type empty;
}
abajo
{
type slip;
}
salida
{
type zeroGradient;
}
arriba
{
type slip;
}
entrada
{
type fixedValue;
value uniform (1 0 0);
}
perfil
{
type slip;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

En este archivo se indican los valores del campo de velocidades. Tal como
el caso anterior de las presiones, los parches tienen asociada su tipología.

77
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Se puede apreciar que en la entrada se ha tomado un valor unitario en la


dirección del eje x, de esta manera se define el vector velocidad mediante
sus tres coordenadas (x y z).

B.1.8 Recomendación sobre el archivo U

Cuando se corra un caso con el solver potentialFoam, este arroja


resultados al archivo U que se encuentra en /0. Por ello, este archivo se
llena de información sobre el resultado de los cálculos y estos se escriben
entre el encabezado y la definición de los parches dentro del mismo
archivo. Por ello se recomienda que antes de correr el caso por primera
vez, se genere un archivo de respaldo de U que se puede llamar por
ejemplo U.bak. Una vez que se corrió el caso y se obtuvieron los
resultados, se puede borrar el archivo U y hacer una copia del archivo
U.bak renombrándolo a U para que quede listo para correr una nueva
simulación con los cambios realizados.

B.1.9 Generar un archivo de log con los resultados de pantalla

Antes de comenzar a correr un caso, se puede generar un archivo de texto


en donde se indican los resultados de la simulación.
Desde la consola se puede escribir para el caso del solver potentialFoam:

potentialFoam >> log.nombre_del_caso.txt

De esta manera el archivo log.nombre_del_caso.txt lleva los resultados


que se imprimen en la pantalla. Esto sirve para llevar un control de las
simulaciones cuando se dejan corriendo varios casos a la vez y para
verificar los posibles errores en la ejecución de los mismos (Stutz, 2004).

B.1.10 Ejecutar automáticamente el solver

Por cuestiones de comodidad y con la experiencia obtenida en el uso de la


consola de Linux y de los tipos de archivos, se puede tener un solo archivo
que internamente le “ordene” a los diferentes comandos a ejecutarse de
manera sucesiva sólo con escribir una sola orden.
El archivo creado para el presente trabajo se llama calcular, debe tener
permisos de ejecución, lectura y escritura y dentro del mismo contiene:

// ************************************************************************* //
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

78
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
# Indicar el nombre de la aplicacion:
application="potentialFoam"

# Se indica el orden de ejecucion de la aplicacion:


runApplication $application
runApplication foamToVTK
runApplication sample
// ************************************************************************* //

De esta manera se ejecuta el solver potentialFoam y cuando este finalice


se ejecutarán los siguientes comandos:

foamToVTK: es un convertidor de formato para que el software del post-


proceso (ParaView)pueda leer los resultados.

sample: ya descripto anteriomente.

79
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

B.2 Solver icoFoam

El comando icoFoam ejecuta el solver para el caso de un flujo laminar e


isotérmico, o sea que utiliza las ecuaciones de Navier-Stokes. El mismo
otorga resultados básicos para el campo de movimiento especificando las
presiones y las velocidades iniciales junto a los parámetros del flujo como
ser la viscosidad cinemática.
El solver icoFoam se basa en un parámetro muy especial para continuar
con sus cálculos del que se debe tener mucho cuidado y ajustar su valor
puede llevar tiempo sin las herramientas necesarias, este parámetro es el
número de Courant (OpenFOAM-1.6a, 2009):

∆t ⋅ U ∞
Co = (B1)
∆x

El mismo establece la relación entre el paso del tiempo (deltaT), la


velocidad de la corriente y el tamaño mínimo de la celda de la malla en la
dirección de la velocidad.

∆t : paso de tiempo dado por deltaT


∆x : longitud de la celda en la dirección de la velocidad
U∞ : magnitud de la velocidad de la corriente fluida

Para una buena precisión y estabilidad numérica, un número de Courant


menor a 1 es lo recomendado. Como se puede notar, a medida que se
disminuye el paso del tiempo, el número de Courant disminuye y aumenta
la precisión y la estabilidad en los cálculos (OpenFOAM-1.6a, 2009).

Un caso típico (NACA0009) contiene los siguientes archivos:

B.2.1 /case/system/controlDict

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;

80
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 20.000;
deltaT 0.001;
writeControl timeStep;
writeInterval 100;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

Ahora se describen los parámetros utilizados en el presente trabajo:

application: acá va el nombre del solver.

startFrom: se indica el tiempo desde cuando se inician los cálculos, en


general se usa la opción startTime, si se usa la opción latestTime, el
solver, arranca desde el último tiempo grabado en el directorio del caso,
esto sirve cuando uno decide detener los cálculos y retomarlos por
ejemplo al día siguiente.

startTime: es el tiempo de inicio de los cálculos, en general vale cero.

stopAt: le indica al solver cuando detenerse, en general vale endTime.

endTime: es el tiempo de la finalización de los cálculos.

deltaT: es el paso de tiempo que el usuario ajusta, es pequeño.

writeControl: indica de que manera que se muestra en pantalla los


pasos de cálculo.

writeInterval: es muy importante, cuando el endTime es grande y el


deltaT es pequeño se tienen muchos directorios de tiempo, este indica
cada cuantos deltaT se escriben en el disco rígido. Ayuda a controlar la
cantidad de espacio que se ocupa en el disco rígido.

Como el solver icoFoam utiliza las ecuaciones de Navier-Stokes, el valor


de la viscosidad entra en juego y por ello se pueden calcular las fuerzas
debidas a la presión y a la viscosidad.

81
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

También cuando se requiere calcular los coeficientes de sustentación,


resistencia y momento, como así las fuerzas actuantes debidas a la
presión y a la viscosidad y también el momento, se agregan las siguientes
líneas al archivo controlDict: que se encuentra en el directorio /system
del caso a estudiar:

// ************************************************************************* //
functions
{
forces
{
type forces;
functionObjectLibs ( "libforces.so" ); // es la librería que usa
outputControl timeStep;
outputInterval 1;
patches
(
perfil // ponerle el nombre del patch que se quiera referenciar
);
// nombre de los campos
pName p;
UName U;
log true; // para generar un archivo
rhoInf 0.1; // densidad del fluido de referencia
CofR ( 0.25 0 0 ); // centro de rotacion
}
forcesCoeffs
{
type forceCoeffs;
functionObjectLibs ( "libforces.so" ); // es la librería que usa
outputControl timeStep;
outputInterval 1;
patches
(
perfil // ponerle el nombre del patch que se quiera referenciar
);
// nombre de los campos
pName p;
UName U;
log true; // para generar un archivo
rhoInf 0.1; // densidad del fluido de referencia
CofR ( 0.25 0 0 ); // centro de rotacion
liftDir ( 0 1 0 ); // dirección y de la sustentacion
dragDir ( 1 0 0 ); // direccion x de la resistencia
pitchAxis ( 0 0 1 ); // eje de giro del momento
magUInf 1; // magnitud de la Uinf
lRef 1; // longitud de referencia
Aref 1; // area de referencia
}
}
// ************************************************************************* //

De esta manera, el resultado será un directorio que se llama forces y


otro que se llama forcesCoeffs. Dentro de ellos se encuentran los datos
buscados para cada intervalo de tiempo en los directorios
/forces/deltaT y /forcesCoeffs/deltaT en los archivos forces.dat y
forcesCoeffs.dat en donde deltaT es el valor del paso de tiempo
elegido (CFD Online, 2010).

82
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Un ejemplo del contenido del archivo forces.dat es:

# Time forces(pressure, viscous) moment(pressure, viscous)


0.001 (((68.3033 0.155526 -1.31231e-21) (0.0123889 -0.00292111 9.70377e-22)) ((-
0.0777632 34.1517 0.0307939) (0.00146056 0.00619447 0.000445525)))
0.002 (((-4.8413 -0.648302 -2.93701e-21) (0.00816068 -0.00218139 8.70858e-22))
((0.324151 -2.42065 -0.205813) (0.00109069 0.00408034 0.000629604)))
0.003 (((0.266975 0.114548 4.52036e-22) (0.00662839 -0.00139427 7.72702e-22)) ((-
0.0572738 0.133487 0.0504445) (0.000697136 0.00331419 0.000919662)))
0.004 (((-0.0052588 0.0241887 5.4967e-22) (0.00546556 -0.00168077 6.42364e-22))
((-0.0120943 -0.0026294 0.0149819) (0.000840383 0.00273278 0.000493928)))
0.005 (((0.0162225 -0.089377 -1.1007e-21) (0.00453496 -0.00109184 5.63108e-22))
((0.0446885 0.00811126 -0.0287636) (0.000545922 0.00226748 0.000751038)))


y del archivo forcesCoeffs.dat:

# Time Cd Cl Cm
0,001 136,631 0,30521 0,062478
0,002 -9,6662 -1,3009 -0,41036
0,003 0,54720 0,22630 0,102728
0,004 0,00041 0,04501 0,030951
0,005 0,04151 -0,1809 -0,05602


Estos archivos .dat se pueden editar mediante algún procesador de texto


antes de analizarlos con alguna planilla de cálculo ó de lo contrario se
podría programar algún script que extraiga los valores que contienen para
su posterior análisis.

B.2.2 /case/system/fvSolution

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;

83
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
preconditioner DIC;
tolerance 1e-08;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-08;
relTol 0;
}
}
PISO
{
nCorrectors 1;
nNonOrthogonalCorrectors 1;
pRefCell 0;
pRefValue 0;
}
// ************************************************************************* //

Este archivo contiene la información sobre la modalidad de la ejecución de


los cálculos como tolerancias y parámetros correctores para estabilizar la
solución. Se modifican cuando se quiere mejor precisión y cuando se
quiere afinar el resultado. No están descriptos en el manual de usuario.

B.2.3 /case/system/fvSchemes

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}
divSchemes
{
default Gauss upwind;
div(phi,U) Gauss upwind;
}
laplacianSchemes
{

84
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
default none;
laplacian(nu,U) Gauss linear limited 0.7;
laplacian((1|A(U)),p) Gauss linear limited 1;
}
interpolationSchemes
{
default linear;
interpolate(HbyA) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

En este archivo se encuentran las opciones del solver y los parámetros y


esquemas de cálculo (no descriptos en el manual).

B.2.4 /case/system/sampleDict

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location system;
object sampleDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Set output format : choice of
// xmgr
// jplot
// gnuplot
// raw
//setFormat raw;

// Surface output format. Choice of


// null : suppress output
// foamFile : separate points, faces and values file
// dx : DX scalar or vector format
// vtk : VTK ascii format
// raw : x y z value format for use with e.g. gnuplot 'splot'.
surfaceFormat raw;
//interpolationScheme cellPoint;
fields
(
p
U
);

85
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
sets
(
);
surfaces
(
one // es el nombre del archivo de salida
{
type patch;
patchName perfil;
}
);
// *********************************************************************** //

Si se incluye el archivo sampleDict en el directorio /system, se puede


extraer el valor de las presiones y de las velocidades (p y U) de la región
que se quiera estudiar y que se tenga como “parche”.
En este caso, la región a estudiar es sobre el perfil, esto se logra tipeando
en la consola:

sample

El resultado arroja sendos archivos, p_one.raw y U_one.raw dentro de un


directorio llamado surfaces para cada paso de tiempo (dado por
writeInterval).
Existen otras opciones para el archivo sample no tratadas en el presente
trabajo (CFD Online, 2010).

B.2.5 /case/constant/boundary

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
7
(
laterales
{
type empty;
nFaces 23546;
startFace 17508;
}
abajo
{
type patch;

86
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
nFaces 49;
startFace 41054;
}
salida
{
type patch;
nFaces 49;
startFace 41103;
}
arriba
{
type patch;
nFaces 49;
startFace 41152;
}
entrada
{
type patch;
nFaces 49;
startFace 41201;
}
perfil
{
type patch;
nFaces 107;
startFace 41250;
}
defaultFaces
{
type empty;
nFaces 0;
startFace 41357;
}
)
// ************************************************************************* //

En este archivo se encuentran los “parches” llamados patch por


OpenFOAM que se refieren a las regiones físicas de la geometría en
estudio y sus respectivas condiciones de contorno. Por ejemplo a la
entrada del flujo se la llama patch, luego en los archivos de configuración
de la entrada en cuanto a las condiciones iniciales de la presión p y de la
velocidad U (ubicados en /0/p y /0/U) se le asigna un valor inicial para la
presión y velocidad para cada parche.
El número 7 que aparece debajo del encabezado es propio para cada caso
y se refiere a la cantidad de parches que se tiene en estudio, en este caso
se cuenta con laterales, abajo, salida, arriba, entrada, perfil y
defaultFaces que en total son 7.

El patch del tipo empty indica que sobre esa cara no se calcula nada, por
ejemplo OpenFOAM siempre considera al caso como tridimensional, si se
tiene un caso bidimensional, el patch llamado “laterales” tiene asignado
el tipo empty en donde los laterales son las caras paralelas al flujo, ya que
no se requieren cálculos en esa dirección (empty en la dirección z)
El patch llamado “defaultFaces” es por defecto del tipo patch y se genera
automáticamente cuando se utiliza algún comando de conversión ó

87
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

importación de la malla (p.e. gmshToFoam). Debe llevar el valor empty


para que el caso pueda correr sin problemas (OpenFOAM-1.6a, 2009).

B.2.6 /case/constant/transportProperties

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nu nu [ 0 2 -1 0 0 0 0 ] 0.001;
// ************************************************************************* //
Este archivo, a diferencia del caso del solver potentialFoam que no lo
incluye entre sus archivos, informa del valor de la viscosidad cinemática
utilizada para realizar los cálculos por icoFoam.

Una vez establecido este valor, se puede tener una idea del número de
Reynolds al cual se está realizando la simulación, teniendo en cuenta que
como el solver icoFoam se utiliza para flujo laminar, si se emplea en un
caso en donde los datos experimentales y el sentido común indican que es
muy probable que haya turbulencia, los resultados serán incorrectos.

Para los casos simples en donde se conoce aproximadamente a que


número de Reynolds se produce la transición de flujo laminar a turbulento,
si se tiene que el número de Reynolds es elevado para un caso del solver
icoFoam, se deberá optar por otro solver que incluya un modelo adecuado
de turbulencia.

B.2.7 /case/0/p

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;

88
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
laterales
{
type empty;
}
abajo
{
type slip;
}
salida
{
type fixedValue;
value uniform 0;
}
arriba
{
type slip;
}
entrada
{
type zeroGradient;
}
perfil
{
type slip;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

Este archivo indica las condiciones iniciales para la presión para cada uno
de las superficies que intervienen en la geometría en estudio. Cabe
destacar que debe contener la misma cantidad de “parches” que el archivo
boundary y los tipos de parches (más usados) pueden ser:

empty: con este tipo de parche se le indica al software que no realice


cálculos en la pared que se define con este parche. Se usa para el caso
bidimensional y para el parche defaultFaces que aparece luego de una
conversión ó importación de la malla.

slip: aplica la condición de deslizamiento sobre esa pared.

fixedValue: condiciona que sobre esa pared se tenga un valor fijo


especificado, por ejemplo en el caso del parche arriba se impone que el
valor sea de cero (value uniform 0;).

89
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

zeroGradient: impone la condición que tenga un gradiente igual a cero


sobre esa pared.

B.2.8 /case/0/U

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
laterales
{
type empty;
}
abajo
{
type slip;
}
salida
{
type zeroGradient;
}
arriba
{
type slip;
}
entrada
{
type fixedValue;
value uniform (1 0 0);
}
perfil
{
type slip;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

En este archivo se indican los valores del campo de velocidades. Tal como
el caso anterior de las presiones, los parches tienen asociada su tipología.

90
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Se puede apreciar que en la entrada se ha tomado un valor unitario en la


dirección del eje x, de esta manera se define el vector velocidad mediante
sus tres coordenadas (x y z).

B.2.9 Generar un archivo de log con los resultados de pantalla

Cuando se estar por correr un caso, se puede generar un archivo de texto


en donde van los resultados de la simulación.
Desde la consola se puede escribir para el caso del solver icoFoam:

icoFoam >> log.nombre_del_caso.txt

De esta manera el archivo log.nombre_del_caso.txt lleva los resultados


que se imprimen en la pantalla. Esto sirve para llevar un control de las
simulaciones cuando se dejan corriendo varios casos y para verificar los
posibles errores en la ejecución (Stutz, 2004).

B.2.10 Ejecutar automáticamente el solver

Por cuestiones de comodidad y con la experiencia obtenida en el uso de la


consola de Linux y de los tipos de archivos, se puede tener un solo archivo
que internamente le “ordene” a los diferentes comandos a ejecutarse de
manera sucesiva sólo con tipear una sola orden.
El archivo creado para el presente trabajo se llama calcular, debe tener
permisos de ejecución, lectura y escritura. El mismo contiene:

// ************************************************************************* //
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

# Indicar el nombre de la aplicacion:


application="icoFoam"

# Se indica el orden de ejecucion de la aplicacion:


runApplication $application
runApplication foamToVTK
runApplication sample
// ************************************************************************* //

De esta manera se ejecuta el solver icoFoam y cuando este finalice se


ejecutarán los siguientes comandos:

foamToVTK: es un convertidor de formato para que el software del


postproceso pueda leer los resultados.

sample: ya descripto anteriomente.

91
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

B.3 Solver simpleFoam

El comando simpleFoam ejecuta el solver que utiliza las ecuaciones de


Navier-Stokes con distintos modelos de turbulencia e incluso sin
turbulencia para calcular solamente flujo laminar.
El modelo de turbulencia utilizado en el presente trabajo para modelar los
perfiles aerodinámicos es el de Spalart-Allmaras, el mismo es un
modelo de turbulencia de una sola ecuación y sus constantes se ajustan al
problema físico mediante los archivos turbulentProperties y
RASProperties. Estos contienen la información de varios modelos de
turbulencia que el usuario puede elegir (CFD Online, 2010).

La mayoría de los problemas físicos implican cierto grado de turbulencia


en su campo de movimiento, por ello el solver simpleFoam es uno de los
más utilizados en el campo incompresible de la mecánica de los fluidos del
software OpenFOAM.

Un caso típico (NACA0009) contiene los siguientes archivos:

B.3.1 /case/system/controlDict

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application simpleFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 20.000;
deltaT 0.001;
writeControl timeStep;
writeInterval 100;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;

92
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
// ************************************************************************* //

Ahora se describen los parámetros utilizados en el presente trabajo:


application: acá va el nombre del solver.

startFrom: se indica el tiempo desde cuando se inician los cálculos, en


general se usa la opción startTime, si se usa la opción latestTime, el
solver, arranca desde el último tiempo grabado en el directorio del caso,
esto sirve cuando uno decide detener los cálculos y retomarlos por
ejemplo al día siguiente.

startTime: es el tiempo de inicio de los cálculos, en general vale cero.

stopAt: le indica al solver cuando detenerse, en general vale endTime.

endTime: es el tiempo de la finalización de los cálculos.

deltaT: es el paso de tiempo que el usuario ajusta, es pequeño.

writeControl: indica de que manera que se muestra en pantalla los


pasos de cálculo.

writeInterval: es muy importante, cuando el endTime es grande y el


deltaT es pequeño se tienen muchos directorios de tiempo, este indica
cada cuantos deltaT se escriben en el disco rígido. Ayuda a controlar la
cantidad de espacio que se ocupa en el disco rígido.

Cuando se requiere calcular los coeficientes de sustentación, resistencia y


momento, como así las fuerzas actuantes debidas a la presión y a la
viscosidad y también el momento, se agrega la siguiente línea al archivo
controlDict:

// ************************************************************************* //
functions
{
forces
{
type forces;
functionObjectLibs ( "libforces.so" ); // es la librería que usa
outputControl timeStep;
outputInterval 1;
patches
(
perfil // ponerle el nombre del patch que se quiera referenciar
);
// nombre de los campos
pName p;
UName U;
log true; // para generar un archivo
rhoInf 0.1; // densidad del fluido de referencia

93
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
CofR ( 0.25 0 0 ); // centro de rotacion
}
forcesCoeffs
{
type forceCoeffs;
functionObjectLibs ( "libforces.so" ); // es la librería que usa
outputControl timeStep;
outputInterval 1;
patches
(
perfil // ponerle el nombre del patch que se quiera referenciar
);
// nombre de los campos
pName p;
UName U;
log true; // para generar un archivo
rhoInf 0.1; // densidad del fluido de referencia
CofR ( 0.25 0 0 ); // centro de rotacion
liftDir ( 0 1 0 ); // dirección y de la sustentacion
dragDir ( 1 0 0 ); // direccion x de la resistencia
pitchAxis ( 0 0 1 ); // eje de giro del momento
magUInf 1; // magnitud de la Uinf
lRef 1; // longitud de referencia
Aref 1; // area de referencia
}
}
// ************************************************************************* //

De esta manera, el resultado será un directorio que se llama forces y


otro que se llama forcesCoeffs. Dentro de ellos se encuentran los datos
buscados para cada intervalo de tiempo en los directorios
/forces/deltaT y /forcesCoeffs/deltaT en los archivos forces.dat y
forcesCoeffs.dat en donde deltaT es el valor del paso de tiempo
elegido.

Un ejemplo del contenido del archivo forces.dat es:

# Time forces(pressure, viscous) moment(pressure, viscous)


0.001 (((2.89238 0.164506 7.94817e-23) (3.1511e-07 1.10606e-09 -2.05875e-25)) ((-
0.0822529 1.44619 0.0606263) (-5.53031e-10 1.57555e-07 7.98014e-10)))
0.002 (((2.87475 0.197828 1.06366e-22) (3.03602e-06 8.99985e-09 -5.09343e-25))
((-0.0989139 1.43737 0.0692438) (-4.49993e-09 1.51801e-06 6.07087e-09)))
0.003 (((0.392781 0.552849 4.58905e-22) (5.75585e-06 1.47952e-08 -7.67532e-26))
((-0.276424 0.19639 0.167415) (-7.3976e-09 2.87793e-06 6.72167e-09)))
0.004 (((-1.55923 0.279908 3.0433e-22) (3.32147e-06 8.30987e-09 1.47057e-24)) ((-
0.139954 -0.779613 0.0732328) (-4.15494e-09 1.66074e-06 -5.17346e-09)))
0.005 (((-1.48112 -0.225088 -9.68711e-23) (-2.31151e-06 -5.71459e-09 1.94856e-
24)) ((0.112544 -0.740558 -0.0849047) (2.8573e-09 -1.15576e-06 -1.85281e-08)))


y del archivo forcesCoeffs.dat:

# Time Cd Cl Cm
0,001 57,847 3,2901 1,2125
0,002 57,495 3,9565 1,3848
0,003 7,8557 11,057 3,3482
0,004 -31,184 5,5981 1,4646

94
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
0,005 -29,622 -4,5017 -1,698


Estos archivos .dat se pueden editar mediante algún procesador de texto


antes de analizarlo con alguna planilla de cálculo ó de lo contrario se
podrá programar algún script que extraiga los valores que contienen
(Fortran, C++, etc).

B.3.2 /case/system/fvSolution

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
tolerance 1e-06;
relTol 0.1;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
}
U
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-08;
relTol 0.1;
}
nuTilda
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-08;
relTol 0.1;
}

95
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
}
SIMPLE
{
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
relaxationFactors
{
default 0;
p 0.3;
U 0.7;
nuTilda 0.7;
}
// ************************************************************************* //

Este archivo contiene la información sobre la modalidad de la ejecución de


los cálculos como tolerancias y parámetros correctores para estabilizar la
solución. Se modifican cuando se quiere mejor precisión y cuando se
quiere afinar el resultado (no están descriptos en el manual de usuario).

B.3.3 /case/system/fvSchemes

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss linearUpwind Gauss linear;
div(phi,nuTilda) Gauss linearUpwind Gauss linear;
div((nuEff*dev(grad(U).T()))) Gauss linear;
}
laplacianSchemes
{
default none;
laplacian(nuEff,U) Gauss linear corrected;

96
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
laplacian(1,p) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(U) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

En este archivo se encuentran las opciones del solver y los parámetros y


esquemas de cálculo (no descriptos en el manual de usuario).

B.3.4 /case/system/sampleDict

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/

FoamFile
{
version 2.0;
format ascii;
class dictionary;
location system;
object sampleDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Set output format : choice of
// xmgr
// jplot
// gnuplot
// raw
//setFormat raw;

// Surface output format. Choice of


// null : suppress output
// foamFile : separate points, faces and values file
// dx : DX scalar or vector format
// vtk : VTK ascii format
// raw : x y z value format for use with e.g. gnuplot 'splot'.
surfaceFormat raw;
//interpolationScheme cellPoint;
fields
(
p

97
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
U
);
sets
(
);
surfaces
(
one
{
type patch;
patchName perfil;
}
);
// *********************************************************************** //

Si se incluye el archivo sampleDict en el directorio /system, se puede


extraer el valor de las presiones y de las velocidades (p y U) de la región
que se quiera estudiar y que se tenga como “parche”.
En este caso, la región a estudiar es sobre el perfil, esto se logra tipeando
en la consola:

sample

El resultado arroja sendos archivos, p_one.raw y U_one.raw dentro de un


directorio llamado surfaces para cada paso de tiempo (dado por
writeInterval)
Existen otras opciones para el archivo sample no tratadas en el presente
trabajo (CFD Online, 2010).

B.3.5 /case/constant/boundary

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
7
(
laterales
{
type empty;
nFaces 42814;
startFace 31859;
}
abajo

98
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
{
type wall;
nFaces 49;
startFace 74673;
}
salida
{
type wall;
nFaces 49;
startFace 74722;
}
arriba
{
type wall;
nFaces 49;
startFace 74771;
}
entrada
{
type wall;
nFaces 49;
startFace 74820;
}
perfil
{
type wall;
nFaces 307;
startFace 74869;
}
defaultFaces
{
type empty;
nFaces 0;
startFace 75176;
}
)
// ************************************************************************* //

En este archivo se encuentran los “parches” llamados patch por


OpenFOAM que se refieren a las regiones físicas de la geometría en
estudio y sus respectivas condiciones de contorno.
El uso del solver simpleFoam (a diferencia del icoFoam) requiere que las
regiones se denominen wall en vez de patch para las distintas zonas en
estudio.
Por ejemplo a la entrada del flujo se la llama wall, luego en los archivos
de configuración de la entrada en cuanto a las condiciones iniciales de la
pesión p y de la velocidad U (ubicados en /0/p y /0/U) se le asigna un
valor inicial para la presión y velocidad para cada parche.
El número 7 que aparece debajo del encabezado es propio para cada caso
y se refiere a la cantidad de parches que se tiene en estudio, en este caso
se cuenta con laterales, abajo, salida, arriba, entrada, perfil y
defaultFaces que en total son 7.

El patch del tipo empty indica que sobre esa cara no se calcula nada, por
ejemplo OpenFOAM siempre considera al caso como tridimensional, si se
tiene un caso bidimensional, el patch llamado “laterales” tiene asignado

99
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

el tipo empty en donde los laterales son las caras paralelas al flujo, ya que
no se requieren cálculos en esa dirección (empty en la dirección z)
El patch llamado “defaultFaces” es por defecto del tipo patch y se genera
automáticamente cuando se utiliza algún comando de conversión ó
importación de la malla (p.e. gmshToFoam). Debe llevar el valor empty
para que el caso pueda correr sin problemas (OpenFOAM-1.6a, 2009).

Es de notar que el comando de conversión gmshToFoam le cambia al


archivo boundary todas sus tipologías a la categoría patch, se requiere
que el usuario renombre de patch a wall y a las regiones que no se
utilizarán, de patch a empty.

B.3.6 /case/constant/transportProperties

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
rho rho [ 1 -3 0 0 0 0 0 ] 1;
nu nu [ 0 2 -1 0 0 0 0 ] 3.33e-07;
CrossPowerLawCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
m m [ 0 0 1 0 0 0 0 ] 1;
n n [ 0 0 0 0 0 0 0 ] 1;
}
BirdCarreauCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
k k [ 0 0 1 0 0 0 0 ] 0;
n n [ 0 0 0 0 0 0 0 ] 1;
}
// ************************************************************************* //

Este archivo, a diferencia del caso del solver potentialFoam que no lo


incluye entre sus archivos, informa del valor de la viscosidad cinemática,
de la densidad y del modelo de transporte utilizado para realizar los
cálculos por simpleFoam como así también de otras constantes utilizadas
por los modelos de transporte.

100
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Una vez establecido el valor de la viscosidad cinemática y conocida la


magnitud de la velocidad y de la longitud de referencia, se puede calcular
el número de Reynolds al cual se está realizando la simulación.

Como el solver simpleFoam dispone de varios modelos de turbulencia para


elegir, el rango de números de Reynolds al cual este puede trabajar es
amplio y no se limita como el solver icoFoam que solo es para flujo
laminar (CFD Online, 2010).

B.3.7 /case/constant/turbulentProperties

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
turbulenceModel SpalartAllmaras;
turbulence on;
laminarCoeffs
{
}
kEpsilonCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
RNGkEpsilonCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.0845;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.42;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.68;
alphak alphaK [ 0 0 0 0 0 0 0 ] 1.39;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 1.39;
eta0 eta0 [ 0 0 0 0 0 0 0 ] 4.38;
beta beta [ 0 0 0 0 0 0 0 ] 0.012;
}
NonlinearKEShihCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76932;
A1 A1 [ 0 0 0 0 0 0 0 ] 1.25;

101
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
A2 A2 [ 0 0 0 0 0 0 0 ] 1000;
Ctau1 Ctau1 [ 0 0 0 0 0 0 0 ] -4;
Ctau2 Ctau2 [ 0 0 0 0 0 0 0 ] 13;
Ctau3 Ctau3 [ 0 0 0 0 0 0 0 ] -2;
alphaKsi alphaKsi [ 0 0 0 0 0 0 0 ] 0.9;
}
LienCubicKECoeffs
{
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
A1 A1 [ 0 0 0 0 0 0 0 ] 1.25;
A2 A2 [ 0 0 0 0 0 0 0 ] 1000;
Ctau1 Ctau1 [ 0 0 0 0 0 0 0 ] -4;
Ctau2 Ctau2 [ 0 0 0 0 0 0 0 ] 13;
Ctau3 Ctau3 [ 0 0 0 0 0 0 0 ] -2;
alphaKsi alphaKsi [ 0 0 0 0 0 0 0 ] 0.9;
}
QZetaCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaZeta alphaZeta [ 0 0 0 0 0 0 0 ] 0.76923;
anisotropic no;
}
LaunderSharmaKECoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
LamBremhorstKECoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
LienCubicKELowReCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
A1 A1 [ 0 0 0 0 0 0 0 ] 1.25;
A2 A2 [ 0 0 0 0 0 0 0 ] 1000;
Ctau1 Ctau1 [ 0 0 0 0 0 0 0 ] -4;
Ctau2 Ctau2 [ 0 0 0 0 0 0 0 ] 13;
Ctau3 Ctau3 [ 0 0 0 0 0 0 0 ] -2;
alphaKsi alphaKsi [ 0 0 0 0 0 0 0 ] 0.9;
Am Am [ 0 0 0 0 0 0 0 ] 0.016;
Aepsilon Aepsilon [ 0 0 0 0 0 0 0 ] 0.263;
Amu Amu [ 0 0 0 0 0 0 0 ] 0.00222;
}
LienLeschzinerLowReCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;

102
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
Am Am [ 0 0 0 0 0 0 0 ] 0.016;
Aepsilon Aepsilon [ 0 0 0 0 0 0 0 ] 0.263;
Amu Amu [ 0 0 0 0 0 0 0 ] 0.00222;
}
LRRCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
Clrr1 Clrr1 [ 0 0 0 0 0 0 0 ] 1.8;
Clrr2 Clrr2 [ 0 0 0 0 0 0 0 ] 0.6;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
Cs Cs [ 0 0 0 0 0 0 0 ] 0.25;
Ceps Ceps [ 0 0 0 0 0 0 0 ] 0.15;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
LaunderGibsonRSTMCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
Clg1 Clg1 [ 0 0 0 0 0 0 0 ] 1.8;
Clg2 Clg2 [ 0 0 0 0 0 0 0 ] 0.6;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
C1Ref C1Ref [ 0 0 0 0 0 0 0 ] 0.5;
C2Ref C2Ref [ 0 0 0 0 0 0 0 ] 0.3;
Cs Cs [ 0 0 0 0 0 0 0 ] 0.25;
Ceps Ceps [ 0 0 0 0 0 0 0 ] 0.15;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
alphaR alphaR [ 0 0 0 0 0 0 0 ] 1.22;
}
SpalartAllmarasCoeffs
{
alphaNut alphaNut [ 0 0 0 0 0 0 0 ] 1.5;
Cb1 Cb1 [ 0 0 0 0 0 0 0 ] 0.1355;
Cb2 Cb2 [ 0 0 0 0 0 0 0 ] 0.622;
Cw2 Cw2 [ 0 0 0 0 0 0 0 ] 0.3;
Cw3 Cw3 [ 0 0 0 0 0 0 0 ] 2;
Cv1 Cv1 [ 0 0 0 0 0 0 0 ] 7.1;
Cv2 Cv2 [ 0 0 0 0 0 0 0 ] 5;
}
wallFunctionCoeffs
{
kappa kappa [ 0 0 0 0 0 0 0 ] 0.4187;
E E [ 0 0 0 0 0 0 0 ] 9;
}
// ************************************************************************* //

Este archivo es el que dispone de todos los modelos de turbulencia que


puede trabajar el solver simpleFoam.
Cada modelo de turbulencia se elige mediante la siguiente línea:

turbulenceModel SpalartAllmaras;
turbulence on;

En este caso, el modelo elegido es el de Spalart-Allmaras, pero podría


haber sido otro del listado. Debajo del encabezado del archivo, se
encuentra el listado de los modelos y las constantes utilizadas por los
modelos de turbulencia, que se pueden cambiar según sea el caso.

103
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Es de notar que para elegir el nombre del modelo de turbulencia


disponible es el nombre sin la palabra Coeffs, por ejemplo el modelo de
turbulencia kEpsilon tiene sus constantes en el listado que se llama
kEpsilonCoeffs, el modelo SpalartAllmaras hace referencia al listado
de coeficientes SpalartAllmarasCoeffs, etc (CFD Online, 2010).

B.3.8 /case/constant/RASProperties

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel SpalartAllmaras;
turbulence on;
printCoeffs on;
// ************************************************************************* //

En este archivo se selecciona el modelo RAS de turbulencia (RAS =


Reynolds Averaged Stress).
La opción turbulence on indica que está activo el modelado de la
turbulencia y la opción printCoeffs on indica que se mostrarán en
pantalla, la salida de los resultados de la consola, los coeficientes que
utiliza el modelo de turbulencia activo, etc.

B.3.9 /case/0/p

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;

104
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
boundaryField
{
laterales
{
type empty;
}
abajo
{
type slip;
}
salida
{
type fixedValue;
value uniform 0;
}
arriba
{
type slip;
}
entrada
{
type zeroGradient;
}
perfil
{
type slip;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

Este archivo indica las condiciones iniciales para la presión para cada uno
de las superficies que intervienen en la geometría en estudio. Cabe
destacar que debe contener la misma cantidad de “parches” que el archivo
boundary y los tipos de parches (más usados) pueden ser:

empty: con este tipo de parche se le indica al software que no realice


cálculos en la pared que se define con este parche. Se usa para el caso
bidimensional y para el parche defaultFaces que aparece luego de una
conversión ó importación de la malla.

slip: aplica la condición de deslizamiento sobre esa pared.

fixedValue: condiciona que sobre esa pared se tenga un valor fijo


especificado, por ejemplo en el caso de arriba se impone que el valor sea
de cero (value uniform 0;).

zeroGradient: impone la condición que tenga un gradiente igual a cero


sobre esa pared.

105
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

B.3.10 /case/0/U

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
laterales
{
type empty;
}
abajo
{
type slip;
}
salida
{
type zeroGradient;
}
arriba
{
type slip;
}
entrada
{
type fixedValue;
value uniform (1 0 0);
}
perfil
{
type fixedValue;
value uniform (0 0 0);
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

En este archivo se indican los valores del campo de velocidades. Tal como
el caso anterior de las presiones, los parches tienen asociada su tipología.

Se puede apreciar que en la entrada se ha tomado un valor unitario en la


dirección del eje x, de esta manera se define el vector velocidad mediante

106
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

sus tres coordenadas (x y z) y en la región que se desea que la


velocidad sea nula, se especifica el valor fijo (0 0 0).

Por simplicidad, se toman valores unitarios de la velocidad y de la longitud


de referencia, de esta manera el número de Reynolds se calcula con la
inversa de la viscosidad cinemática aunque esta parezca ficticia por su
magnitud. Es más sencillo obtener un deseado número de Reynolds para
un caso determinado de esta manera, que imponer condiciones reales y
ajustar la velocidad hasta obtener el número de Reynolds buscado.

B.3.11 /case/0/nuT

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0.1;
boundaryField
{
laterales
{
type empty;
}
abajo
{
type slip;
}
salida
{
type nutWallFunction;
value uniform 0.1;
}
arriba
{
type nutWallFunction;
value uniform 0.1;
}
entrada
{
type nutWallFunction;
value uniform 0.1;
}
perfil
{
type nutWallFunction;

107
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
value uniform 0.1;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

Este archivo es propio del solver simpleFoam para el modelo Spalart-


Allmaras y tiene una estructura similar al archivo de la velocidad U (ó de
la presión p), en el cual se definen tipos de parches para cada región con
valores que deben ser ajustados cuidadosamente y se refieren a la
viscosidad cinemática turbulenta. En el modelo de Spalart-Allmaras, nut
se calcula mediante la multiplicación de nuTilda y una función propia del
modelo de turbulencia (CFD Online, 2010).

B.3.12 /case/0/nuTilda

/*--------------------------------*- C++ -*----------------------------------*\


| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object nuTilda;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0.14;
boundaryField
{
laterales
{
type empty;
}
abajo
{
type zeroGradient;
}
salida
{
type zeroGradient;
}
arriba
{
type zeroGradient;
}
entrada
{
type fixedValue;
value uniform 0.14;
}

108
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
perfil
{
type zeroGradient;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

Este archivo es propio del solver simpleFoam para el modelo Spalart-


Allmaras y tiene una estructura similar al archivo de la velocidad U (ó de
la presión p), en el cual se definen tipos de parches para cada región con
valores que deben ser ajustados cuidadosamente y se refieren a la
viscosidad cinemática turbulenta modificada, que es necesaria para
calcular la viscosidad cinemática turbulenta.

B.3.13 Generar un archivo de log con los resultados de pantalla

Cuando se estar por correr un caso, se puede generar un archivo de texto


en donde van los resultados de la simulación.
Desde la consola se puede escribir para el caso del solver simpleFoam:

simpleFoam >> log.nombre_del_caso.txt

De esta manera el archivo log.nombre_del_caso.txt lleva los resultados


que se imprimen en la pantalla. Esto sirve para llevar un control de las
simulaciones cuando se dejan corriendo varios casos y para verificar los
posibles errores en la ejecución (Stutz, 2004).

B.3.14 Ejecutar automáticamente el solver

Por cuestiones de comodidad y con la experiencia obtenida en el uso de la


consola de Linux y de los tipos de archivos, se puede tener un solo archivo
que internamente le “ordene” a los diferentes comandos a ejecutarse de
manera sucesiva sólo con tipear una sola orden.
El archivo creado para el presente trabajo se llama calcular, debe tener
permisos de ejecución, lectura y escritura. El mismo contiene:

// ************************************************************************* //
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

# Indicar el nombre de la aplicacion:


application="simpleFoam"

# Se indica el orden de ejecucion de la aplicacion:

109
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
runApplication $application
runApplication foamToVTK
runApplication sample
// ************************************************************************* //

De esta manera se ejecuta el solver simpleFoam y cuando este finalice se


ejecutarán los siguientes comandos:

foamToVTK: es un convertidor de formato para que el software del


postproceso pueda leer los resultados.

sample: ya descripto anteriomente.

110
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

APENDICE C – Software Gmsh


C.1 Introducción a la generación de la malla con Gmsh

Gmsh es un software para generar la geometría y el mallado de figuras


bidimensionales y tridimensionales automáticamente.
Fue concebido como un software académico para resolver problemas
simples, sin embargo a lo largo de los años se ha mejorado lo suficiente
para ser utilizado fuera de entornos universitarios.
Actualmente Gmsh incluye módulos de pre-procesado (incluido diseño
CAD), procesado (conexiones a solvers externos), y post-procesado
(visualización de resultados, operaciones vectoriales, etc). Para el
presente trabajo se utilizaron principalmente los módulos de diseño de la
geometría y del mallado (GMSH, 2010).
Estas etapas serán descriptas con ejemplos de los archivos generados.
Cabe destacar que Gmsh en la versión para Linux, se puede operar
mediante la consola de comandos ó directamente desde el entorno
gráfico.

C.2 Instalación de Gmsh


Desde el sitio web oficial de Gmsh se ofrecen ejecutables para el sistema
operativo Windows, Mac y Linux. La versión para el sistema operativo
Windows es del tipo “portable”, o sea que no requiere instalación sino un
directorio de trabajo para que corra el archivo ejecutable.

El sitio web oficial es:

http://geuz.org/gmsh/

http://geuz.org/gmsh/#Download (lugar de las descargas)

Cabe destacar que Gmsh hace uso de las capacidades de aceleración de las
placas de video 3D, lo cual es conveniente tener instalados los
controladores que permitan sacarle el máximo provecho al hardware,
sobre todo en el caso de que se traten de visualizar geometrías o mallas
con gran número de elementos.

C.3 Funcionalidades de Gmsh

111
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Como se ha dicho, Gmsh es un software que ha crecido con el paso de los


años. Aunque ha sido conocido principalmente por sus capacidades de
diseño y mallado, muchas otras funcionalidades han sido incorporadas.
Por una parte existe el modulo de diseño para definir la geometría, que
nos permite dibujar visualmente una figura. El mismo resulta intuitivo en
su manejo. De hecho el modulo para la creación de la geometría es muy
extenso, y es posible crear archivos tipo script (archivos de texto con
lenguaje propio Gmsh) en donde se puede definir en forma paramétrica la
geometría deseada.
El módulo de mallado se apoya en las definiciones geométricas para crear
mallados. Es posible hacer mallados en una, dos y tres dimensiones,
creando elementos con formas variadas (líneas, triángulos, tetraedros,
prismas triangulares y rectangulares, hexaedros y pirámides).
Además es posible definir que tipo de algoritmo de mallado queremos.
El módulo de post-procesado (relacionado a la visualización) incluye gran
número de operaciones diferenciales, vectoriales, herramientas para
trabajar con números complejos y funcionalidades para extraer resultados
de las distribuciones de datos de entrada (no utilizadas en el presente
trabajo).

C.4 Modulo geométrico

El módulo geométrico permite dibujar puntos, líneas, superficies y


volúmenes. Además permite seleccionar qué elementos están físicamente
presentes en las figuras, puesto que en ocasiones es necesario definir
elementos auxiliares sin sentido físico.
A partir de la definición de puntos en el espacio es posible ir construyendo
líneas, círculos y eclipses. Y con estos elementos se pueden definir las
superficies que constituyen a la figura que se busca. Una vez conseguida
la figura, es recomendable definir los puntos, líneas y superficies que
tienen sentido físico con el nombre de “Physical Groups”, pues así
indicaremos al mallador qué partes discretizar.
En la web oficial se incluyen algunos vídeos descriptivos para que el
usuario pueda familiarizarse en el uso de la aplicación gráfica.

C.4.1 Definir geometría con ficheros de texto

La manera más eficiente de crear geometrías en Gmsh es mediante


archivos de texto. Utilizando un lenguaje propio en ASCII se pueden crear
figuras o incluso incluir bucles cerrados o abiertos
Las funciones de Gmsh son muchas y pueden ser encontradas todas en el
manual oficial de Gmsh (GMSH, 2010).

112
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

El formato del archivo de la geometría usado en el presente trabajo tiene


el formato .geo y el mismo responde a lo siguiente:

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//
// "Modelado de Perfil NACA Gmsh 2.4.2"
// Uso posterior: tratarlo con OpenFOAM
// Fecha: 26.10.2010
// Autor: Jorge Darío Montes
// darioth@hotmail.com
// Carrera: Ingeniería Aeronáutica
// Tesis de Grado
// Universidad Nacional de Córdoba
// Facultad de Ciencias Exactas, Físicas y Naturales
//
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Definición de variables de escala puntuales
// (el comando Transfinite está por encima de éstos):
lc1 = 0.1;
lc2 = 0.1;
lc = 0.01;
bf = 0.1;
alfa = 0; // aca se pone el angulo de ataque deseado
ang = -alfa/180*Pi;
// Definición de Puntos del perfil:
p1 = newp; Point(p1) = {1, 0.000945, 0, lc};
p2 = newp; Point(p2) = {0.999753, 0.000971, 0, lc};
p3 = newp; Point(p3) = {0.999013, 0.001049, 0, lc};
p4 = newp; Point(p4) = {0.997781, 0.001178, 0, lc};
p5 = newp; Point(p5) = {0.996057, 0.001359, 0, lc};
p6 = newp; Point(p6) = {0.993844, 0.00159, 0, lc};
p7 = newp; Point(p7) = {0.991144, 0.001872, 0, lc};
. . .
. . .
. . .
p195 = newp; Point(p195) = {0.991144, -0.001872, 0, lc};
p196 = newp; Point(p196) = {0.993844, -0.00159, 0, lc};
p197 = newp; Point(p197) = {0.996057, -0.001359, 0, lc};
p198 = newp; Point(p198) = {0.997781, -0.001178, 0, lc};
p199 = newp; Point(p199) = {0.999013, -0.001049, 0, lc};
p200 = newp; Point(p200) = {0.999753, -0.000971, 0, lc};
p201 = newp; Point(p201) = {1, -0.000945, 0, lc};
// Punto del Borde de fuga:
p202 = newp; Point(p202) = {1.009, 0, 0, bf};
//Puntos del contorno:
Point(901) = { -1, -1, 0, lc1}; //entrada
Point(902) = { 2, -1, 0, lc1}; //salida
Point(903) = { 2, 1, 0 , lc2}; //salida
Point(904) = { -1, 1, 0 , lc2}; //entrada
// Definición de la spline del perfil, debe empezar y
// terminar en el mismo punto
Spline (1000) = {p1,p2,p3,p4,p5,p6,p7,. . .,
. . .,p195,p196,p197,p198,p199,p200,p201};
// Lineas del contorno:
Line(4) = {901,902};
Line(5) = {902,903};
Line(6) = {903,904};
Line(7) = {904,901};
Line(8) = {201,202};
Line(9) = {202,1};
Rotate {{0, 0, 1}, {0, 0, 1}, ang} {Line{8,9,1000};}
// Líneas cerradas para generar la extrusión:
Line Loop(21) = {1000,8,9};
Line Loop(23) = {4,5,6,7};

113
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes
// Creación de la superficie sin el perfil:
Plane Surface(24) = {23,21};
// Aquí es donde se genera el volumen con el comando que hace
// la extrusión:
Extrude{0,0,1}{Surface{24}; Layers{1};Recombine;}
// Con el comando Transfinite, hacemos que las líneas se dividan en
// la cantidad de partes que se deseen:
Transfinite Line{1000} = 100; // cantidad de divisiones del perfil
Transfinite Line{8,9} = 5; // divisiones del borde de fuga
Transfinite Line{4,6,7} = 50; // divisiones de arriba, abajo y entrada
Transfinite Line{5} = 50; // cantidad de divisiones de la salida
//Agregamos los comentarios en cuanto al creador y otros datos que sean
// relevantes para explicar de la mejor manera la geometría en estudio:
View "comments"
{
//10 pixels desde la izquierda y 15 pixels desde arriba:
T2(10,15,0){"Archivo creado el 26.10.2010"};
//10 pixels desde ya izquierda y 10 pixels desde abajo:
T2(10,-10,0){"Autor: Jorge Dario Montes - Archivo: NACA0009r_a+00.geo"};
//sobre la geometría, según (X,Y,Z,altura de fuente)=(0,0,0,5):
T3(0,0.2,0,0){"Perfil"};
T3(-3,0,0,0){"Entrada"};
T3(3.5,0,0,0){"Salida"};
T3(0,2.5,0,0){"Arriba"};
T3(0,-2.5,0,0){"Abajo"};
};
//Color Grey50{ Surface{ 22 }; }
Color Black{ Surface {24,1037}; }
Color Red{ Line{ 1000 }; }
//Color Yellow{ Line{ 15:20 }; }
// Definición de las superficies físicas para trabajar con OpenFOAM, se
// usa gmsh >Tools>Options>Geometry>Visibility para saber cuales son las
// superficies de interés:
Physical Surface("laterales") = {24,1037};
Physical Surface("abajo") = {1012};
Physical Surface("arriba") = {1020};
Physical Surface("entrada") = {1024};
Physical Surface("perfil") = {1036,1028,1032};
Physical Surface("salida") = {1016};
// El volumen generado por el comando extrude se lo llama 1 y se le
// llama "internalField" para que sea compatible con OpenFOAM:
Physical Volume("internalField") = {1};
// Fin.NACA0009r_a+00.geo

En el ejemplo anterior se muestra la creación de un perfil aerodinámico


con una serie de 201 puntos definiendo la geometría del perfil en sentido
antihorario desde el borde de fuga. El sistema de coordenadas toma como
centro al punto que define el borde de ataque y este punto es sobre el
cual se realiza la rotación para los diferentes ángulos de ataque.

Gmsh usa variables de escala locales, las mismas se encuentran definidas


como una “cuarta” coordenada cuando se define un nuevo punto. En el
siguiente ejemplo, se denomina a esa coordenada como lc.

p4 = newp; Point(p4) = {0.997781, 0.001178, 0, lc};

114
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Para la generación de la geometría del perfil aerodinámico bidimensional,


se crea una línea que contiene a todos los puntos del perfil. Luego se
define un contorno ó borde que define la frontera del modelo.
Una vez que se tienen unidos los puntos con líneas curvas, se definen las
líneas cerradas, estas serán de utilidad cuando se definan las superficies.
Para la creación de la superficie, se utiliza el comando Plane Surface que
genera una superficie plana de la línea cerrada a la que se le aplique.
Si se quiere crear una superficie con un “hueco” ó un “déficit superficial”,
al comando Plane Surface se le indica primero la línea cerrada que
denota el contorno externo y luego la línea cerrada que denota el “hueco”,
que en este caso es el perfil aerodinámico.
Resumiendo, hasta ahora se tiene una superficie rectangular en la cual se
le ha recortado una parte de esta, que tiene la forma del perfil
aerodinámico en estudio.
Cuando ya se tiene la superficie recortada, se procede a usar el comando
Extrude, lo que este hace es darle la dimensión de profundidad a la
superficie y por ende transformarla en una entidad tridimensional (no es
más que una superficie extruida).

C.4.2 Archivos de otros programas

Gmsh permite utilizar definiciones de geometría procedentes de otros


programas, concretamente archivos con formato IGES, Step y BRep.
También es posible importar (mediante una herramienta externa) archivos
dxf, pero en tal caso solo se asumirán puntos y líneas, así que será
necesario definir superficies y elementos físicos dentro del propio Gmsh (no
tratado en el presente trabajo).

C.5 Módulo de mallado

En Gmsh es posible modificar una multitud de parámetros a la hora de


crear un mallado.
En el presente trabajo, se utilizó el comando Transfinite Line para
indicarle al programa Gmsh en cuantas partes se divide una línea
especificada. De esta manera y a la hora de mallar, se concentrarán
mayor cantidad de elementos en las regiones en la cuales se hayan
dividido las líneas en un mayor ó menor número de partes.
Es de destacar que el comando Transfinite Line está por encima de las
variables de escala locales cuando se realiza un mallado.
El comando Extrude, también permite crear capas en el volumen extruido
al igual que concentrarlos en uno de los extremos de la geometría
generada. Permite generar mallas estructuradas.

115
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

En la figura C.1 se puede observar el resultado del comando Extrude para


distintas configuraciones del mismo.

Figura C.1 – Mallado con el comando Extrude

En la figura C.2, se observa el uso de Transfinite Line en una región del


borde de fuga del perfil aerodinámico, la línea se dividió en 5 partes,
mientras que en la figura C.3, se dividió en 20 partes.
Esto demuestra las utilidades del módulo de mallado de Gmsh en el cual, si
bien tiene algunas limitaciones respecto a otros paquetes de software
comercial, se desempeña bastante bien en cuanto a sus funciones básicas.

116
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura C.2 – Uso del comando Transfinite Line = 5

Figura C.3 – Uso del comando Transfinite Line = 20

En el presente trabajo, la generación de la malla ha sido diseñada para


que sea del tipo semi-estructurada, ya que contiene poliedros prismáticos
triangulares y no poliedros tetraédricos.

117
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Como la malla será utilizada por un código CFD para el estudio de un caso
bidimensional, los prismas han sido orientados transversalmente para que
en la simulación, el flujo de fluido pase en sentido transversal al elemento
prisma, de esta manera se obtiene un resultado más homogéneo que no
se obtendría con elementos tetraédricos.
Se sabe que en una estructura tridimensional pura, los elementos del tipo
tetraédricos otorgan el mejor resultado ya que por su forma característica
producen un “llenado” más uniforme que si se tratara de elementos
prismáticos u otro tipo de elemento de malla.
En el presente trabajo, se estudia un caso bidimensional con
“profundidad” unitaria, por ello el comando extrude ayuda a generar los
prismas en las regiones de interés.

Figura C.4 – Cavidad con malla semi-estructurada con prismas triangulares

Figura C.5 – Cavidad con malla no-estructurada con tetraedros

118
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

En la figura C.4 se puede notar que la malla compuesta por prismas es más
homogénea en cuanto a su estructuración, y en la zona de la cavidad
presenta un determinado grado de “llenado” de la misma.

Por otro lado, la figura C.5, muestra una malla compuesta por elementos
tetraédricos en los cuales el “llenado” de la cavidad tiene un grado mayor,
por ello se puede concluir que para geometrías que van a ser tratadas
como bidimensionales es conveniente que se utilicen prismas como
elementos de malla mientras que para estructuras tridimensionales puras,
los elementos de malla del tipo tetraédricos son los que producen un
mejor copiado de la geometría.

C.6 Compatibilidad con OpenFOAM

La malla creada por Gmsh puede ser leída por el software OpenFOAM
mediante un comando de conversión. El mismo crea o actualiza si ya
existen archivos dentro del directorio:

/case/constant/polyMesh/

Dentro de este directorio se encuentran los datos de la malla, que se


distribuyen en varios archivos como ser: cells, cellZones, faces,
faceZone, neighbour, owner, points, pointZones y boundary y en otro
directorio llamado /case/constant/polyMesh/sets/ en donde se
encuentra el archivo internalField que define el volumen de la
geometría en estudio y que además pueden figurar otros archivos
dependiendo del solver utilizado.

El comando de conversión se llama gmshToFoam y se aplica de la siguiente


manera:

gmshToFoam nombre_del_archivo.msh

Este comando realiza la conversión del archivo generado por Gmsh con
extensión .msh para que el solver de software OpenFOAM pueda leer la
discretización espacial generada.

119
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

C.6.1 Error en la conversión del archivo .msh

Cuando se ejecuta la conversión con el comando anterior, es probable que


se produzca un error en la ejecución cuando la versión del software Gmsh
no es compatible con la versión del conversor.
Esto se debe a que el encabezado del archivo tiene caracteres que
denotan la dimensión de las propiedades físicas de la geometría, por
ejemplo si se trata de una pared, aparecerá el número 2 y si se trata de
un volumen aparecerá el número 3 en los “Physicals Groups”.

El encabezado normal de un archivo .msh puede ser:

$MeshFormat
2.1 0 8
$EndMeshFormat
$PhysicalNames
7
2 1 "laterales"
2 2 "abajo"
2 3 "arriba"
2 4 "entrada"
2 5 "cilindro"
2 6 "salida"
3 7 "internalField"
$EndPhysicalNames
$Nodes
. . .
. . .
. . .

El mismo puede traer conflictos cuando se ejecute el comando


gmshToFoam, por ello deberá editarse mediante algún editor de textos
(Gedit, 2010) para que quede de la siguiente manera:

2.1 0 8
$EndMeshFormat
$PhysicalNames
7
1 "laterales"
2 "abajo"
3 "arriba"
4 "entrada"
5 "cilindro"
6 "salida"
7 "internalField"
$EndPhysicalNames
$Nodes
. . .
. . .
. . .

De esta manera de puede ejecutar el comando de conversión sin que


traiga inconvenientes. Luego resta que el usuario modifique los archivos
necesarios para correr el caso con el solver del software OpenFOAM (CFD
Online, 2010).

120
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

APENDICE D – Software ParaView


D.1 Post-proceso

El software ParaView es un programa de descarga gratuita y se utiliza


para visualizar los datos que se obtienen mediante las simulaciones
computacionales (ParaView-3.6.1, 2010).
La página oficial del software es la siguiente:

http://www.paraview.org/

y la de la descarga del mismo tanto para Windows como para Linux es:

http://www.paraview.org/paraview/resources/software.html

Luego de la descarga, la instalación es similar a la de cualquier otro


software, un usuario con un poco de conocimiento, la podrá realizar sin
problemas
En el presente trabajo, se ha utilizado el mismo para realizar las
visualizaciones del campo de movimiento del fluido cuando este pasa a
alrededor de cuerpos bidimensionales como ser un cilindro y un perfil
aerodinámico desde las simulaciones numéricas hechas con el software
OpenFOAM.

D.2 Formato de archivos

El formato de los archivos que soporta el software ParaView es muy


diverso, sin embargo el formato que se utilizó en el presente trabajo es el
Legacy VTK con archivos que tienen la extensión .vtk.
El formato .vtk se logra mediante un comando de conversión que se
llama foamToVTK, el mismo se ejecuta cuando la simulación ha terminado
para tomar los datos de la simulación y crear una serie de archivos .vtk
que serán leídos por ParaView.

D.3 Apariencia de ParaView


La ventana de trabajo de ParaView tiene la apariencia que se muestra en
la figura D.1, en la misma se encuentra la barra de herramientas estándar,
un selector de vistas, un grupo de controles de paso del tiempo, las
herramientas para utilizar los filtros y el visor de la estructura tipo “árbol”
con el o los casos estudiados.

121
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Figura D.1 – Ventana de trabajo de ParaView

En la figura D.2, se muestra la información sobre un caso de un perfil


aerodinámico, en el cual se ha seleccionado el campo de velocidades y se
le aplicarán los filtros correspondientes para visualizar los datos.

Figura D.2 – Ventana de trabajo de ParaView con un caso en estudio

122
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

D.4 Barras y ventanas de herramientas


Las barras y ventanas de herramientas más útiles son las que se muestra
en las siguientes figuras.

D.4.1 Barra Menu

Figura D.3 – Barra de Menu

Es la barra de comandos del menú. En la misma se encuentran todas las


opciones de control del software ParaView.

D.4.2 Barra Main Controls

Figura D.4 – Controles de abrir-guardar-conectar

En la misma se encuentran las opciones de abrir, guardar, conectar,


desconectar y ayuda.

D.4.3 Barra Active Variable Control

Figura D.5 – Controles de variable activa

En esta barra de herramientas se encuentran las opciones de visualización


de la variable en estudio. En la figura D.5 se muestra seleccionada el
campo de la velocidad como magnitud. Otras variables pueden aparecer
como opciones, por ejemplo la presión, la temperatura, la vorticidad, etc,
según sea el caso de estudio.

D.4.4 Barra Camera Controls

Figura D.6 – Control de la cámara

123
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

En la figura D.6 se muestran las opciones que tiene el usuario para mostrar
la entidad en estudio según sean los ejes elegidos. Es muy útil cuando se
quiere visualizar desde un lugar fijo, por ejemplo desde el eje z para un
caso bidimensional.

D.4.5 Barra VCR Controls

Figura D.7 – Control del tiempo

La barra del control del tiempo permite navegar a través del intervalo de
tiempo resuelto por el programa de CFD en todo su rango. Además tiene
la opción de ejecutar una simulación del tipo animada (mediante el botón
de “play”) del fenómeno en estudio, siempre y cuando el mismo se haya
resuelto en intervalos de tiempo
En el caso del software OpenFOAM, el solver icoFoam y simpleFoam
permiten navegar en el tiempo mientras que el solver potentialFoam solo
dispone de un solo intervalo de tiempo.

D.4.6 Ventana Lookmarks

Figura D.8 – Visualización 3D

En la figura D.8, se muestra la visualización del cuerpo en estudio. Esta


ventana se puede configurar para mostrar distintas categorías de
visualización como ser gráficos 2D, histogramas, tablas, etc.

124
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

D.4.7 Ventana Pipeline Browser

Figura D.9 – Navegador de objetos

El pipeline browser, permite la navegación a través de los objetos en


estudio como así también los filtros aplicados, permite que se activen ó se
desactiven los mismos para que se visualicen en la ventana de lookmarks.

D.4.8 Ventana Object Inspector

Figura D.10 – Opciones de filtros y vistas

El inspector de objetos permite que se seleccionen las opciones de cada


una de los elementos que se muestran en el pipeline browser, como ser

125
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

tipo de filtros, opciones de la configuración propia de los filtros, elementos


de análisis de datos, elementos relacionados con las opciones temporales,
colores, tipo de gráficos, espesor de líneas, puntos, etc.

D.5 Exportar resultados

El software ParaView permite realizar la operación de exportar los


resultados para poder visualizar de una mejor manera los mismos.
Algunos de los formatos de imagen pueden ser del tipo JPG, PNG, BMP, TIF
e incluso en un PDF.

También permite que se realicen animaciones sobre las simulaciones


computacionales. Esto permite una visualización muy detallada del
comportamiento del fenómeno en estudio a través del tiempo y de poder
tener un registro de la simulación de una manera más gráfica.
El formato del video generado es AVI y también permite que se genere
una secuencia de imágenes JPG ó PNG de cada intervalo de tiempo elegido
como si fueran sucesivas capturas.

126
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

APENDICE E – Ejecución de Casos de OpenFOAM


E.1 Uso del solver potentialFoam

Para la ejecución de un caso (case) del solver potentialFoam de


OpenFOAM, es necesario contar con los siguientes archivos:

/case/script_de_ejecucion (no requerido pero recomendado)


/case/nombre_del_archivo.geo
/case/nombre_del_archivo.msh
/case/0/p
/case/0/U
/case/0/U.bak (no requerido pero recomendado)
/case/constant/polyMesh/boundary
/case/constant/polyMesh/cellZones
/case/constant/polyMesh/faces
/case/constant/polyMesh/faceZones
/case/constant/polyMesh/neighbour
/case/constant/polyMesh/owner
/case/constant/polyMesh/points
/case/constant/polyMesh/pointZones
/case/constant/polyMesh/sets/highAspectRatioCells
/case/constant/polyMesh/sets/internalField
/case/constant/polyMesh/sets/twoInternalFacesCells
/case/constant/polyMesh/sets/underdeterminedCells
/case/system/controlDict
/case/system/fvSchemes
/case/system/fvSolution
/case/system/sampleDict (no requerido pero recomendado)

(en donde dice case se refiere al nombre que el usuario le da al caso)

Algunos de estos archivos se generarán luego de una serie de comandos,


otros ya pueden existir de antemano en el directorio del caso.

Los pasos a seguir serían:

- Generar el archivo de la geometría (nombre_del_archivo.geo) con


Gmsh asegurándose que las superficies ó paredes tengan un nombre único
y que tengan significado físico (por ejemplo entrada, salida, etc.), y que el
volumen generado, por más que se estudie un caso bidimensional, se
llame internalField.

- Generar el archivo de la malla (nombre_del_archivo.msh) con el


software Gmsh desde la consola o mediante el entorno gráfico (ver
APENDICE C)

127
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

- Situarse a través de la consola en el directorio raíz del caso y ejecutar el


comando de conversión:

gmshToFoam nombre_del_archivo.msh

Si da errores en su ejecución, editarlo como se explica en el APENDICE C.


De lo contrario, si sale bien la conversión, seguir con el procedimiento.

- Editar el archivo:

/case/constant/polyMesh/boundary

En las paredes ó caras que no se quiere que se realicen los cálculos, por
ejemplo en los laterales de un caso 2D, se deberá cambiar en donde dice
patch por la palabra empty, si en el proceso de conversión aparece una
nueva entidad llamada defaultFaces, es necesario cambiarle su tipología
de patch a empty.

- Editar el archivo

/case/0/U

En donde aparecerán y se deberán editar las condiciones iniciales de la


velocidad y las condiciones de contorno. Es recomendable que se haga
una copia de respaldo una vez impuestas los datos en el archivo U, la
copia debería llamarse U.bak para que sea fácil recordarla ya que una ves
hecha la simulación, el archivo original U se llena de información,
cambiando así su estructura interna.

- Editar el archivo:

/case/0/p

En este archivo se indican las condiciones iniciales de la presión y de


contorno.

- Editar el archivo:

/case/system/controlDict

Se establece el paso del tiempo y el control de la simulación.

- Se editan los archivos en caso de ser necesario (para usuarios


avanzados):

/case/system/fvSchemes

128
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

/case/system/fvSolution

Verificar que todos los archivos abiertos hayan sido guardados y se deberá
tener la cantidad indicada más arriba (en total 22 ó 19 si se sacan los no
requeridos).

- Se ejecuta el comando del solver en la consola:

potentialFoam

- Una vez que finalizó, se podrá ejecutar el comando

sample

Siempre y cuando se tenga al archivo sampleDict indicado en el directorio


/case/system/sampleDict.

- Ejecutar la conversión al formato .vtk mediante el comando:

foamToVTK

- Iniciar el software Paraview y abrir los archivos generados con el


formato .vtk.

129
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

E.2 Uso del solver icoFoam

Para la ejecución de un caso (case) del solver icoFoam de OpenFOAM, es


necesario contar con los siguientes archivos:

/case/script_de_ejecucion (no requerido pero recomendado)


/case/nombre_del_archivo.geo
/case/nombre_del_archivo.msh
/case/0/p
/case/0/U
/case/constant/transportProperties
/case/constant/polyMesh/boundary
/case/constant/polyMesh/cellZones
/case/constant/polyMesh/faces
/case/constant/polyMesh/faceZones
/case/constant/polyMesh/neighbour
/case/constant/polyMesh/owner
/case/constant/polyMesh/points
/case/constant/polyMesh/pointZones
/case/constant/polyMesh/sets/highAspectRatioCells
/case/constant/polyMesh/sets/internalField
/case/constant/polyMesh/sets/twoInternalFacesCells
/case/constant/polyMesh/sets/underdeterminedCells
/case/system/controlDict
/case/system/fvSchemes
/case/system/fvSolution
/case/system/sampleDict (no requerido pero recomendado)

(en donde dice case se refiere al nombre que el usuario le da al caso)

Algunos de estos archivos se generarán luego de una serie de comandos,


otros ya pueden existir de antemano en el directorio del caso.

Los pasos a seguir serían:

- Generar el archivo de la geometría (nombre_del_archivo.geo) con


Gmsh asegurándose que las superficies ó paredes tengan un nombre único
y que tengan significado físico (por ejemplo entrada, salida, etc.), y que el
volumen generado, por más que se estudie un caso bidimensional, se
llame internalField.

- Generar el archivo de la malla (nombre_del_archivo.msh) con el


software Gmsh desde la consola o mediante el entorno gráfico (ver
APENDICE C)

130
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

- Situarse a través de la consola en el directorio raíz del caso y ejecutar el


comando de conversión:

gmshToFoam nombre_del_archivo.msh

Si da errores en su ejecución, editarlo como se explica en el APENDICE C.


De lo contrario, si sale bien la conversión, seguir con el procedimiento.

- Editar el archivo:

/case/constant/polyMesh/boundary

En las paredes ó caras que no se quiere que se realicen los cálculos, por
ejemplo en los laterales de un caso 2D, se deberá cambiar en donde dice
patch por la palabra empty, si en el proceso de conversión aparece una
nueva entidad llamada defaultFaces, es necesario cambiarle su tipología
de patch a empty.

- Editar el archivo

/case/0/U

En donde aparecerán las condiciones iniciales de la velocidad y de


contorno.

- Editar el archivo:

/case/0/p

En este archivo se indican las condiciones iniciales de la presión y también


de contorno.

- Editar el archivo:

/case/constant/transportProperties

En este archivo se le otorga el valor de la viscosidad cinemática.

- Editar el archivo:

/case/system/controlDict

Se establece el paso del tiempo y el control de la simulación. Recordar que


el número de Courant es muy sensible al paso del tiempo.

131
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

- Se editan los archivos en caso de ser necesario (para usuarios


avanzados):

/case/system/fvSchemes
/case/system/fvSolution

Verificar que todos los archivos abiertos hayan sido guardados y se deberá
tener la cantidad indicada más arriba (en total 22 ó 20 si se sacan los no
requeridos).

- Se ejecuta el comando del solver en la consola:

icoFoam

- Una vez que finalizó, se podrá ejecutar el comando

sample

siempre y cuando se tenga al archivo sampleDict indicado en el directorio


/case/system/sampleDict.

- Ejecutar la conversión al formato .vtk mediante el comando:

foamToVTK

- Iniciar el software Paraview y abrir los archivos generados con el


formato .vtk.

132
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

E.3 Uso del solver simpleFoam

Para la ejecución de un caso (case) del solver simpleFoam de OpenFOAM,


es necesario contar con los siguientes archivos:

/case/script_de_ejecucion (no requerido pero recomendado)


/case/nombre_del_archivo.geo
/case/nombre_del_archivo.msh
/case/0/p
/case/0/U
/case/0/nut
/case/0/nuTilda
/case/constant/transportProperties
/case/constant/turbulenceProperties
/case/constant/RASProperties
/case/constant/polyMesh/boundary
/case/constant/polyMesh/cells
/case/constant/polyMesh/cellZones
/case/constant/polyMesh/faces
/case/constant/polyMesh/faceZones
/case/constant/polyMesh/neighbour
/case/constant/polyMesh/owner
/case/constant/polyMesh/points
/case/constant/polyMesh/pointZones
/case/constant/polyMesh/sets/highAspectRatioCells
/case/constant/polyMesh/sets/internalField
/case/constant/polyMesh/sets/twoInternalFacesCells
/case/constant/polyMesh/sets/underdeterminedCells
/case/system/controlDict
/case/system/fvSchemes
/case/system/fvSolution
/case/system/sampleDict (no requerido pero recomendado)

(en donde dice case se refiere al nombre que el usuario le da al caso)

Algunos de estos archivos se generarán luego de una serie de comandos,


otros ya pueden existir de antemano en el directorio del caso.

Los pasos a seguir serían:

- Generar el archivo de la geometría (nombre_del_archivo.geo) con


Gmsh asegurándose que las superficies ó paredes tengan un nombre único
y que tengan significado físico (por ejemplo entrada, salida, etc.), y que el
volumen generado, por más que se estudie un caso bidimensional, se
llame internalField.

133
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

- Generar el archivo de la malla (nombre_del_archivo.msh) con el


software Gmsh desde la consola o mediante el entorno gráfico (ver
APENDICE C)

- Situarse a través de la consola en el directorio raíz del caso y ejecutar el


comando de conversión:

gmshToFoam nombre_del_archivo.msh

Si da errores en su ejecución, editarlo como se explica en el APENDICE C.


De lo contrario, si sale bien la conversión, seguir con el procedimiento.

- Editar el archivo:

/case/constant/polyMesh/boundary

En las paredes ó caras que no se quiere que se realicen los cálculos, por
ejemplo en los laterales de un caso 2D, se deberá cambiar en donde dice
patch por la palabra empty, si en el proceso de conversión aparece una
nueva entidad llamada defaultFaces, es necesario cambiarle su tipología
de patch a empty. El resto de las tipologías patch deben cambiarse por
wall.

- Editar el archivo

/case/0/U

En donde aparecerán las condiciones iniciales de la velocidad y de


contorno.

- Editar el archivo:

/case/0/p

En este archivo se indican las condiciones iniciales de la presión y también


de contorno.

- Editar el archivo:

/case/0/nut

En este archivo se indican las condiciones iniciales de la viscosidad


cinemática turbulenta. Su valor es muy sensible a la inestabilidad en los
resultados.

- Editar el archivo:

134
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

/case/0/nuTilda

En este archivo se editan las condiciones iniciales de la viscosidad


cinemática turbulenta modificada. Su valor es muy sensible a la
inestabilidad en los resultados.

- Editar el archivo:

/case/constant/transportProperties

En este archivo se le otorga el valor de la viscosidad cinemática, densidad


y modelo de transporte (por default Newtoniano)

- Editar el archivo:

/case/constant/RASProperties

En este archivo se indica el modelo de turbulencia elegido y si se activa o


desactiva el mismo.

- Editar el archivo:

/case/constant/turbulenceProperties

En este archivo se indica los modelos de turbulencia disponibles junto a


las constantes utilizadas por ellos.

- Editar el archivo:

/case/system/controlDict

Se establece el paso del tiempo y el control de la simulación.

- Se editan los archivos en caso de ser necesario (para usuarios


avanzados):

/case/system/fvSchemes
/case/system/fvSolution

Verificar que todos los archivos abiertos hayan sido guardados y se deberá
tener la cantidad indicada más arriba (en total 27 ó 25 si se sacan los no
requeridos).

- Se ejecuta el comando del solver en la consola:

135
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

simpleFoam

- Una vez que finalizó, se podrá ejecutar el comando

sample

siempre y cuando se tenga al archivo sampleDict indicado en el directorio


/case/system/sampleDict.

- Ejecutar la conversión al formato .vtk mediante el comando:

foamToVTK

- Iniciar el software Paraview y abrir los archivos generados con el


formato .vtk.

136
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

NOTA IMPORTANTE:

Estos pasos han sido probados con los modelos de geometrías y de mallas
hechos con el software Gmsh, por lo tanto los mismos pueden variar
levemente en algunos casos si no se reproducen de igual manera.
Las referencias utilizadas para la generación de los pasos anteriores han
sido tomadas desde el Manual del Programador de OpenFOAM (OpenFOAM-
1.6b, 2009), la Guía de Usuario de OpenFOAM (OpenFOAM-1.6a, 2009), el
foro del sitio web de CFD Online (CFD Online, 2010) y la fuente de mayor
provecho: la experiencia compartida entre el autor y el director del
presente trabajo.

137
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

Referencias

Abbott I.H. and Doenhoff A.E., Theory of Wing Sections, Including a


summary of airfoil data, Dover, 1959.

Anderson, J.D.Jr, Fundamentals of Aerodynamics, Third Edition.


MacGraw Hill Higher Education, 2001.

Blazek, J., Computational Fluid Dynamics: Principles and Applications.


Elsevier, 2001.

Blum, R., Linux Command Line and Shell Scripting Bible, Wiley Publishing,
2008.

Calvi, T.R., Mecánica de los Fluidos: Notas Didácticas 1 a 10.


Universidad Nacional de Córdoba, 2003.

CFD Online, An online center for Computational Fluid Dynamics, 2010.


http://www.cfd-online.com/

Drela, M., XFLR5 Documentation, 2010,


http://xflr5.sourceforge.net/xflr5.htm

Gedit-2.30.1-1, Gedit, Text Editor Of The Gnome Desktop Environment,


2010. http://projects.gnome.org/gedit/

Gmsh-2.4.2, Reference Manual, 2010. http://geuz.org/gmsh/

Kundu, P.K. and Cohen I.M., Fluid Mechanics, Fourth Edition.


Elsevier, 2010.

MultiFoil, Aplicación del Método de los Paneles, Universidad Nacional de


Córdoba, 2007. http://www.efn.unc.edu.ar/departamentos/aero/

NACA Report Nº619, Drag of Cylinders of Simple Shapes, 1937.

NACA Report Nº1191, On the Development of Turbulent Wakes from


Vortex Streets, 1954.

Negus, C. and Caen F., Ubuntu Linux Toolbox, 1000+ Commands for
Ubuntu and Debian Power Users, Wiley Publishing, 2008.

OpenFOAM, Página Web, 2010, http://www.openfoam.com/

138
Tesis de Grado
Título: Ingeniero Aeronáutico
Autor: Jorge Darío Montes

OpenFOAM-1.6a, The Open Source CFD Toolbox, User Guide, OpenCFD,


2009. http://www.openfoam.com/

OpenFOAM-1.6b, The Open Source CFD Toolbox, Programmer´s Guide,


OpenCFD, 2009. http://www.openfoam.com/

ParaView-3.6.1, Online Documentation, 2010, http://www.paraview.org/

Shames, I.H., Mecánica de los Fluidos, Tercera Edición, 1995.

Stutz, M., The Linux Cookbook, Tips and Techniques for Everyday Use,
Second Edition, No Starch Press, 2004

Van Dyke, M., Album of Fluid Motion, The Parabolic Press, 1982.

Versteeg H.K. and Malalasekera W., An introduction to computacional fluid


dynamics, The finite volume method. Longman, 1995.

139

You might also like