Sie sind auf Seite 1von 17

Universidade Federal do ABC

Engenharia Aeroespacial

Solução por métodos de relaxação para


escoamento potencial incompressı́vel sobre
um aerofólio simétrico sem sustentação

Trabalho final da disciplina ESZS035-17 - Dinâmica de


Fluidos Computacional - Prof. Dr. Marcelo T. Hayashi.

Aluno: Leonardo Rodrigues Dias


RA: 11009814

São Bernardo do Campo, 2017


1 Definição do Problema
É dado um aerofólio biconvexo, definido pela curva:

y = w(x) = 2tx(1 − x), (1)

com espessura máxima do perfil t = 0.05. O aerofólio está imerso com ângulo de ataque
nulo em um escoamento potencial bidimensional com velocidade de escoamento livre V∞ =
1 no sentido positivo de x. As informações do escoamento ao redor do aerofólio são obtidas
através da solução da equação que governa o movimento:

∂ 2φ ∂ 2φ
+ = 0, (2)
∂x2 ∂x2

sujeita à condições que serão apresentadas mais a frente.


O problema é resolvido numericamente, com o auxı́lio do MATLAB (códigos em
apêndice).

2 Solução Numérica
Para solução do problema, necessitamos discretizar o domı́nio, discretizar as equações
que governam o problema para que estas possam ser aplicadas neste domı́nio discretizado,
definir as condições iniciais e de contorno, e escolher um método de solução. Trataremos
disso a seguir.

2.1 Discretização do Domı́nio


O domı́nio computacional foi discretizado em uma malha retangular uniforme com
−4 ≤ x ≤ 5 e 0 ≤ y ≤ 4, e ∆x = ∆y = 0.1.

2.2 Discretização da Equação


Para a resolução numérica do problema, utilizamos um operador centrado de segunda
ordem em cada uma das duas derivadas parciais da Eq. (2):

∂ 2φ
 
φi+1 − 2φi + φi−1 2

= + O ∆x , (3)
∂x2 i ∆x2

∂ 2φ
 
φj+1 − 2φj + φj−1
+ O ∆y 2 ,

= (4)
∂y 2 j ∆y 2

1
que quando substituidos na Eq.(2) resultam em:

φni+1,j − 2φni,j + φni−1,j φni,j+1 − 2φni,j + φni,j−1


   
+ = 0. (5)
∆x2 ∆y 2

2.3 Condições Iniciais e de Contorno


Uma vez que o escoamento livre é V∞ no sentido positivo do eixo x, a condição inicial
para a Eq. (2) será dada por:
φ∞ = V∞ x = (6)

Como condição de contorno, a mesma condição da Eq. (6) foi aplicada para as fronteiras
esquerda, direita e superior da malha. Já para a fronteira inferior, isto é, os pontos com
j = 1, os valores são dados por:
 
∂φ
φi,1 = φi,2 − ∆y (7)
∂y
y=0

onde, para 0 ≤ x ≤ 1:
 
∂φ ∂w
= V∞ = V∞ [2t(1 − 2x)] , (8)
∂y
y=0 ∂x

e para x ≤ 0 e x ≥ 1:  
∂φ
= 0. (9)
∂y
y=0

2.4 Método de Solução


Para achar uma solução, foi utilizado um processo de relaxação no qual o problema é
escrito na forma delta:
n
N Ci,j + Lφni,j = 0, (10)

onde:
n
Ci,j = φn+1 n
i,j − φi,j (11)

e, para a discretização adotada na Seção 2.2:

φni+1,j − 2φni,j + φni−1,j φni,j+1 − 2φni,j + φni,j−1


   
Lφni,j = + . (12)
∆x2 ∆y 2

O termo N se refere aos esquemas de iteração. Neste trabalho, foram utilizados três
métodos diferentes: Jacobi, Gauss-Seidel e Succesive Overrelaxation, os quais serão apre-
sentados a seguir.

2
2.4.1 Método de Jacobi

Para o método de Jacobi, temos:

2 2
NJ = − 2
− (13)
∆x ∆y 2

Substituindo as Eqs. (11), (12) e (13) na Eq. (10):


  n
φi+1,j − 2φni,j + φni−1,j
  n
φi,j+1 − 2φni,j + φni,j−1
  
2 2 n+1 n

− 2− φi,j − φi,j + + =0
∆x ∆y 2 ∆x2 ∆y 2
(14)
e manipulando os termos:

2φni,j 2φni,j
  n
φi+1,j 2φni,j φni−1,j φni,j+1 2φni,j φni,j−1
  
2 2 n+1
− 2− φi,j + + + − + + − + = 0,
∆x ∆y 2 ∆x2 ∆y 2 ∆x2 ∆x2 ∆x2 ∆y 2 ∆y 2 ∆y 2
(15)

φni+1,j + φni−1,j φni,j+1 + φni,j−1


 
2 2
− 2− φn+1
i,j + + = 0, (16)
∆x ∆y 2 ∆x2 ∆y 2

φni+1,j + φni−1,j φni,j+1 + φni,j−1


 
2 2
2
+ φn+1
i,j = + , (17)
∆x ∆y 2 ∆x2 ∆y 2
chegamos à expressão:
 n
(∆x)2 (∆y)2 φi+1,j + φni−1,j φni,j+1 + φni,j−1

φn+1
i,j = + . (18)
2(∆x)2 + 2(∆y)2 ∆x2 ∆y 2

Os valores de φ são obtidos a partir da Eq. (18) e devem ser atualizados a cada nı́vel n de
iteração, até a convergência, que, neste trabalho, foi avaliada pela variação da quantidade
|Lφni,j |.

3
2.4.2 Método de Gauss-Seidel

Para o método de Gauss-Seidel:


Ex−1 − 2 Ey−1 − 2
NGS = + (19)
∆x2 ∆y 2
Assim:       
Ex−1 − 2 Ey−1 − 2  φni+1,j − 2φni,j + φni−1,j φni,j+1 − 2φni,j + φni,j−1
+ φn+1
i,j − φni,j + + =0 (20)
∆x2 ∆y 2 ∆x2 ∆y 2
   
Ex−1 Ey−1  2 2 n+1
φni+1,j φni−1,j φni,j+1 φni,j−1
+ φn+1
i,j − φni,j + − 2− φi,j + + + + =0 (21)
∆x2 ∆y 2 ∆x ∆y 2 ∆x2 ∆x2 ∆y 2 ∆y 2
 
Ex−1 (φn+1
i,j ) Ey−1 (φn+1
i,j ) Ex−1 (φni,j ) Ey−1 (φni,j ) 2 2 n+1
φni+1,j φni−1,j φni,j+1 φni,j−1
+ − − + − − φi,j + + + + =0 (22)
∆x2 ∆y 2 ∆x2 ∆y 2 ∆x2 ∆y 2 ∆x2 ∆x2 ∆y 2 ∆y 2

4
 
φn+1
i−1,j φn+1
i,j−1 φni−1,j φni,j−1 2 2 n+1
φni+1,j φni−1,j φni,j+1 φni,j−1
+ − − + − − φi,j + + + + =0 (23)
∆x2 ∆y 2 ∆x2 ∆y 2 ∆x2 ∆y 2 ∆x2 ∆x2 ∆y 2 ∆y 2
 
2 2 n+1
φni+1,j + φn+1
i−1,j φni,j+1 + φn+1
i,j−1
− 2− 2
φi,j + 2
+ 2
=0 (24)
∆x ∆y ∆x ∆y
" #
n n+1
(∆x)2 (∆y)2 φni+1,j + φn+1
i−1,j φi,j+1 + φ i,j−1
φn+1
i,j = 2 2 2
+ 2
(25)
2(∆x) + 2(∆y) ∆x ∆y
2.4.3 Successive Overrelaxation (SOR)

Para o método SOR:    


1 2 1 2
NSOR = Ex−1 − + Ey−1 − (26)
∆x2 r ∆y 2 r
onde r é o parâmetro de relaxação. Temos:
         
1 2 1 2  φni+1,j − 2φni,j + φni−1,j φni,j+1 − 2φni,j + φni,j−1
Ex−1 − + Ey−1 − φn+1
i,j − φni,j + + =0 (27)
∆x2 r ∆y 2 r ∆x2 ∆y 2

   
Ex−1 Ey−1  1 2 2 n
 φni+1,j 2φni,j φni−1,j φni,j+1 2φni,j φni,j−1
+ φn+1
i,j − φni,j + − 2− φn+1
i,j − φi,j + − + + − + =0 (28)
∆x2 ∆y 2 r ∆x ∆y 2 ∆x2 ∆x2 ∆x2 ∆y 2 ∆y 2 ∆y 2

5
 
1 2 2 n+1 n
 φni+1,j 2φni,j φn+1
i−1,j φni,j+1 2φni,j φn+1
i,j−1
− 2− φi,j − φi,j + − + + − + =0 (29)
r ∆x ∆y 2 ∆x2 ∆x2 ∆x2 ∆y 2 ∆y 2 ∆y 2
 
1 2 2 1 2φni,j 1 2φni,j φni+1,j 2φni,j φn+1
i−1,j φni,j+1 2φni,j φn+1
i,j−1
− 2− φn+1
i,j + 2
+ 2
+ 2
− 2
+ 2
+ 2
− 2
+ =0 (30)
r ∆x ∆y 2 r ∆x r ∆x ∆x ∆x ∆x ∆y ∆y ∆y 2
 
1 2 2 n+1
φni+1,j − (1 − 1r )2φni,j + φni−1,j φni,j+1 − (1 − 1r )2φni,j + φni,j−1
− 2− φi,j + + =0 (31)
r ∆x ∆y 2 ∆x2 ∆x2
 n 
r(∆x)2 (∆y)2 φi+1,j − (1 − r−1 )2φni,j + φni−1,j φni,j+1 − (1 − r−1 )2φni,j + φni,j−1
φn+1
i,j = + (32)
2(∆x)2 + 2(∆y)2 ∆x2 ∆x2
3 Quantidades de Interesse
Após a implementação computacional da Eq. (18), (25) ou (32), e convergência da
solução, podemos obter os resultados em termos de váriaveis de significado mais intuitivo
do que o potencial de velocidades, como, por exemplo, a própria velocidade, e a pressão.

3.1 Campo de Velocidades


Após obter os valores de φi,j em cada ponto (i, j) da malha computacional, podemos
obter as velocidades ui,j e vi,j . Sabemos que:

∂φ
u= , (33)
∂x

∂φ
v= . (34)
∂y
Necessitamos, então, de esquemas de diferenças finitas para encontrar esses valores. Para
esses cálculos, foram utilizados esquemas centrados:
 
∂φ φi+1 − φi−1
+ O ∆x2 ,

= (35)
∂x i 2∆x
 
∂φ φj+1 − φj−1
+ O ∆y 2 ,

= (36)
∂y j 2∆y
esquemas forward :  
∂φ φi+1 − φi
= + O (∆x) , (37)
∂x i ∆x
 
∂φ φj+1 − φj
= + O (∆y) , (38)
∂y j ∆y
e esquemas backward :  
∂φ φi − φi−1
= + O (∆x) , (39)
∂x i ∆x
 
∂φ φj − φj−1
= + O (∆y) . (40)
∂y j ∆y
Tendo definido:

φi+1,j − φi−1,j φi,j+1 − φi,j−1


Cx ≡ , Cy ≡ ,
2∆x 2∆y

6
φi+1,j − φi,j φi,j+1 − φi,j
Fx ≡ , Fy ≡ ,
∆x ∆y

φi,j − φi−1,j φi,j − φi,j−1


Bx ≡ , By ≡ ,
∆x ∆y

as velocidades em cada trecho da malha foram obtidas da seguinte forma:

Trecho ui,j vi,j


Pontos internos Cx Cy
Ponto inferior esquerdo Fx Fy
Fronteira esquerda Fx Cy
Ponto superior esquerdo Fx By
Fronteira superior Cx By
Ponto superior direito Bx By
Fronteira direita Bx Cy
Ponto inferior direito Bx Fy
Fronteira inferior Cx Fy

A utilização das discretizações dessa maneira fornece uma solução geral com segunda
ordem de precisão, mesmo que tenhamos utilizado discretizações de primeira ordem nas
fronteiras do domı́nio.
De posse das velocidades nas direções x e y, podemos encontrar facilmente a magnitude
da velocidade, Vi,j : q
Vi,j = (ui,j )2 + (vi,j )2 (41)

3.2 Pressões
Para um escoamento potencial, podemos obter as pressões de forma adimensionalizada,
por meio do coeficiente de pressão, Cp . Para cada ponto da malha, o coeficiente de pressão
pode ser calculado a partir de:
 2
Vi,j
(Cp )i,j = 1 − . (42)
V∞

7
4 Resultados
As solução foi obtida utilizando os três métodos, sendo o SOR com diferentes parâmetros
de relaxação escolhidos arbitrariamente, como segue na Tabela 1, onde o resı́duo é dado

SOR
Jacobi Gauss-Seidel
r = 0.8 r = 1.5 r = 1.9495
Número de
14396 12570 17454 4627 494
iterações
Resı́duo (×10−13 ) 5.3291 5.3291 5.9952 5.7732 11.546

Tabela 1: Resultados para cada método.

por |Lφni,j |max , e o critério de convergência utilizado foi o da estagnação do valor dessa
quantidade.
Analisando esses resultados e os históricos de convergência (Figura 1), notamos que
o método de sobrerelaxação (r > 1) foi extremamente eficiente para a aceleração de
convergência do problema, sendo r = 1.9495 o valor (1 < r < 2) que apresentou o menor
número de iterações para convergência com relação ao critério utilizado. A subrelaxação
(r < 1), propicia o oposto, fazendo com que o número de iterações para convergência
aumente. Esse método só é necessário caso a convergência não esteja sendo normalmente
alcançada.

Figura 1: Históricos de convergência para cada um dos métodos utilizados.

Após obter as variáveis de interesse, foi feito o pós-processamento dos resultados com
as ferramentas do MATLAB. O mapa de cores da velocidade é visto nas Figuras 2 e 3.
Como esperado, o resultado é totalmente simétrico, uma vez que se trata de um aerofólio
simétrico com ângulo de ataque nulo. Podem ser observados os pontos de estagnação nos

8
bordos de ataque e de fuga do aerofólio, bem como um pico de velocidade no eixo vertical
que corta o seu centro.

Figura 2: Mapa de cores da magnitude da velocidade do escoamento em todo o domı́nio.

Na Figura 4 está representada a distribuição do coeficiente de pressão na corda do


aerofólio, com um valor mı́nimo de aproximadamente -0.165 em seu centro e 0.11 nos
bordos de ataque e de fuga.

9
Figura 3: Mapa de cores e curvas de nı́vel (em preto) da velocidade próximos ao aerofólio.
A linha vermelha representa a superfı́cie do aerofólio.

Figura 4: Distribuição do coeficiente de pressão ao longo da corda do aerofólio.

10
A Código do MATLAB para solução pelo Método
SOR

1 %% ESZS035 - Din^ a mica de Fluidos Computacional - Prof Marcelo


T . Hayashi
2 % 06/12/2017 - Trabalho : Equaç~ a o de Laplace Bidimensional
3 % Leonardo Rodrigues Dias - RA : 11009814
4
5 %% Parte 3 - SOR
6
7 clc ; close all ; clear all
8
9 %% Dados
10 t = 0.05; % espessura máxima do aerofólio
11 V_inf = 1; % velocidade do escoamento livre
12
13 criterio = 1.2 e -12 % criterio p residuo
14
15 r = 1.9495; % par^ a metro de relaxaç~
ao
16
17 %% Domı́nio e discretizaç~ ao
18
19 % intervalos de discretizaç~ ao
20 dx = 0.1;
21 dy = 0.1;
22
23 % domı́nio
24 x_left = -4; x_right = 5; % limites do domı́nio em x
25 y_lower = 0; y_upper = 4; % limites do domı́nio em y
26
27 % discretizaç~ a o espacial
28 I = ceil (( abs ( x_left ) + abs ( x_right ) ) / dx ) ; % numero de
intervalos em x
29 x = zeros (1 , I +1) ;
30 x (1) = x_left ;
31 for i = 1: I
32 x ( i +1) = x ( i ) + dx ;

11
33 end
34
35 J = ceil (( abs ( y_lower ) + abs ( y_upper ) ) / dy ) ; % numero de
intervalos em y
36 y = zeros (1 , J +1) ;
37 y (1) = y_lower ;
38 for j = 1: J
39 y ( j +1) = y ( j ) + dy ;
40 end
41
42 %% Condiç~ o es iniciais e de contorno
43
44 % condiç~ o es iniciais
45 [ X Y ] = meshgrid (x , y ) ;
46 phi_inf = V_inf * X ;
47 % meshc (x ,y , phi_inf )
48
49 % condiç~ o es de contorno
50
51 % dominio do aerofólio ( raı́zes da equaç~ a o que descreve o
aerofólio simetrico )
52 x_inicial = 0; % posiç~
a o do bordo de ataque
53 x_final = 1; % posiç~
a o do bordo de fuga
54 X_inicial = ( abs ( x_left ) + x_inicial ) / dx + 1; %
numero do nó inicial
55 X_final = ( abs ( x_left ) + x_final ) / dx + 1; % numero do
nó final
56
57 % derivada parcial de phi em relaç~ ao a y
58
59 phi_y = zeros (1 , I +1) ;
60 % x < 0 e x > 1
61 phi_y (1 ,:) = 0;
62
63 % 0 <= x <= 1
64 for i = X_inicial : X_final
65 phi_y (1 , i ) = V_inf *(2* t *(1 - 2* x ( i ) ) ) ;

12
66 end
67
68 %% Método SOR
69
70 A = ((( dx ^2) *( dy ^2) ) /(2*( dx ^2) + 2*( dy ^2) ) ) ;
71
72 phi_n = phi_inf ; phi_n1 = phi_inf ; Lphi = ones ( J +1 , I +1) ;
73 N_de_iteracoes = 0;
74 residuo = 1;
75 while residuo > criterio
76 for i = 2: I
77 phi_n1 (1 , i ) = phi_n (2 , i ) - dy * phi_y (1 , i ) ;
78 end
79 for j = 2: J
80 for i = 2: I
81 phi_n1 (j , i ) = r * A *...
82 (( phi_n (j , i +1) - 2*(1 - r ^( -1) ) * phi_n (j , i ) +
phi_n1 (j ,i -1) ) /( dx ^2) + ...
83 ( phi_n ( j +1 , i ) - 2*(1 - r ^( -1) ) * phi_n (j , i ) +
phi_n1 (j -1 , i ) ) /( dy ^2) ) ;
84 end
85 end
86 for j = 2: J
87 for i = 2: I
88 Lphi (j , i ) = ( phi_n1 (j , i +1) - 2* phi_n1 (j , i ) +
phi_n1 (j ,i -1) ) /( dx ^2) + ...
89 ( phi_n1 ( j +1 , i ) - 2* phi_n1 (j , i ) +
phi_n1 (j -1 , i ) ) /( dy ^2) ;
90 end
91 end
92 residuo = max ( max ( abs ( Lphi (2: J ,2: I ) ) ) )
93 N_de_iteracoes = N_de_iteracoes + 1
94 res ( N_de_iteracoes ) = residuo ;
95
96 plot ([1: N_de_iteracoes ] , log10 ( res ) )
97 title ([ ' N = ' , num2str ( N_de_iteracoes ) ])
98 pause (1 e -3)

13
99
100 phi_n = phi_n1 ;
101 end
102
103 %% Cálculo da velocidade
104
105 u = zeros ( J +1 , I +1) ; v = zeros ( J +1 , I +1) ;
106
107 % malha interna
108 for j = 2: J
109 for i = 2: I
110 u (j , i ) = ( phi_n (j , i +1) - phi_n (j ,i -1) ) /(2* dx ) ;
111 v (j , i ) = ( phi_n ( j +1 , i ) - phi_n (j -1 , i ) ) /(2* dy ) ;
112 end
113 end
114
115 % ponto inferior esquerdo
116 u (1 ,1) = ( phi_n (1 ,2) - phi_n (1 ,1) ) / dx ;
117 v (1 ,1) = ( phi_n (2 ,1) - phi_n (1 ,1) ) / dy ;
118
119 % esquerda
120 for j = 2: J
121 u (j ,1) = ( phi_n (j ,2) - phi_n (j ,1) ) / dx ;
122 v (j ,1) = ( phi_n ( j +1 ,1) - phi_n (j -1 ,1) ) /(2* dy ) ;
123 end
124
125 % ponto superior esquerdo
126 u ( J +1 ,1) = ( phi_n ( J +1 ,2) - phi_n ( J +1 ,1) ) / dx ;
127 v ( J +1 ,1) = ( phi_n ( J +1 ,1) - phi_n (J ,1) ) / dy ;
128
129 % cima
130 for i = 2: I
131 u ( J +1 , i ) = ( phi_n ( J +1 , i +1) - phi_n ( J +1 ,i -1) ) /(2* dx ) ;
132 v ( J +1 , i ) = ( phi_n ( J +1 , i ) - phi_n (J , i ) ) / dy ;
133 end
134
135 % ponto superior direito

14
136 u ( J +1 , I +1) = ( phi_n ( J +1 , I +1) - phi_n ( J +1 , I ) ) / dx ;
137 v ( J +1 , I +1) = ( phi_n ( J +1 , I +1) - phi_n (J , I +1) ) / dy ;
138
139 % direita
140 for j = 2: J
141 u (j , I +1) = ( phi_n (j , I +1) - phi_n (j , I ) ) / dx ;
142 v (j , I +1) = ( phi_n ( j +1 , I +1) - phi_n (j -1 , I +1) ) /(2* dy ) ;
143 end
144
145 % ponto inferior direito
146 u (1 , I +1) = ( phi_n (1 , I +1) - phi_n (1 , I ) ) / dx ;
147 v (1 , I +1) = ( phi_n (2 , I +1) - phi_n (1 , I +1) ) / dy ;
148
149 % baixo
150 for i = 2: I
151 u (1 , i ) = ( phi_n (1 , i +1) - phi_n (1 ,i -1) ) /(2* dx ) ;
152 v (1 , i ) = ( phi_n (2 , i ) - phi_n (1 , i ) ) / dy ;
153 end
154
155 V = sqrt ( u .^2 + v .^2) ;
156
157 % coordenadas do aerofólio
158 airfoil = 2* t * x ( X_inicial : X_final ) .*(1 - x ( X_inicial : X_final )
);
159
160 % coeficiente de press~ ao
161 Cp = 1 - ( V / V_inf ) .^2;
162
163 %% Plots
164
165 % mapa de cores
166
167 figure (2)
168 contourf (x ,y ,V ,25)
169 hold on
170 contourf (x , -y ,V ,25)
171 colorbar ( ' southoutside ' )

15
172 pbaspect ([9 8 1])
173 hold on
174 plot ( x ( X_inicial : X_final ) , airfoil , ' k ' , ' LineWidth ' ,1.5)
175 hold on
176 plot ( x ( X_inicial : X_final ) ,- airfoil , ' k ' , ' LineWidth ' ,1.5)
177 xlim ([ -1 2]) ; ylim ([ -1 1])
178 hold off
179
180 % curvas de nı́vel
181
182 figure (3)
183 contour (x ,y ,V ,30)
184 hold on
185 quiver (x ,y ,u , v )
186 hold on
187 plot ( x ( X_inicial : X_final ) ,2* t * x ( X_inicial : X_final ) .*(1 - x (
X_inicial : X_final ) ) , ' k ' , ' LineWidth ' ,4)
188 xlim ([ -1 2]) ; ylim ([ -.1 .25])
189 pbaspect ([3 1 1])
190 hold off
191
192 % distribuiç~ a o de Cp
193
194 figure (4)
195 plot ( x ( X_inicial : X_final ) ,- Cp (1 , X_inicial : X_final ) )
196 hold on
197 plot ( x ( X_inicial : X_final ) , airfoil , ' k ' , ' LineWidth ' ,1.5)
198 hold on
199 plot ( x ( X_inicial : X_final ) ,- airfoil , ' k ' , ' LineWidth ' ,1.5)
200 grid on ; grid minor ;
201 title ( ' Distribuiç~ a o do coeficiente de press~ ao ')
202 xlim ([ -.1 1.1]) ; ylim ([ -.14 .18])
203 xlabel ( ' x / c ' ) ; ylabel ( ' - C_p ' )

16