CFD Aula 2

59
EN3224 Dinâmica de Fluidos Computacional Universidade Federal do ABC Aula 2 Formulações via diferenças finitas EN3224 Dinâmica de Fluidos Computacional

description

Aula 2 sobre CFD do professor Annibal Hetem da UFABC

Transcript of CFD Aula 2

Page 1: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Universidade Federal do ABC

Aula 2 Formulações via diferenças finitas

EN3224 Dinâmica de Fluidos Computacional

Page 2: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Pergunta do dia:

Como escrever um programa de computador que resolva

?

vvvvv

vvv

v

gpqTkEt

E

gpt

t

:

0

Page 3: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Introdução

• Os computadores somente podem executar operações aritméticas padrão e operações lógicas.

• As diferenciais de variáveis dependentes que aparecem em EDPs precisam ser traduzidas para expressões de diferenças finitas que as aproximam.

x

xyxxy

dx

dy

x

)()(lim

0

Page 4: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Métodos de aproximação de diferenciais

1. Expansão em séries de Taylor

2. Expansão em polinômios de grau n

3. Equações de diferenças finitas

Page 5: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

DIFERENÇAS FINITAS VIA EXPANSÕES DE SÉRIES DE TAYLOR

Page 6: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Expansão em séries de Taylor

Dada um função analítica f(x), a expansão em série de Taylor de f(x+x) é dada por

3

33

2

22

!3

)(

!2

)()()()(

x

fx

x

fx

x

fxxfxxf

1 !

)()()(

nn

nn

x

f

n

xxfxxf

Page 7: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A primeira diferencial

Isolando a primeira diferencial, obtemos

3

33

2

22

!3

)(

!2

)()()()(

x

fx

x

fx

x

fxxfxxf

3

32

2

2

!3

)(

!2

)()(

x

fx

x

fx

x

xfxxf

x

f

)()()(

xOx

xfxxf

x

f

Soma de todos os termos com

potências positivas de x

Page 8: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A primeira diferencial

f

x x x+x

f(x) f(x+x)

)()()(

xOx

xfxxf

x

f

para frente...

Page 9: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A primeira diferencial

f

x x-x x

f(x-x)

f(x)

)()()(

xOx

xxfxf

x

f

para trás...

Page 10: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Intervalos discretos iguais

f

x xi xi+1

fi

fi+1

)(1 xOx

ff

x

f ii

i

Introdução da indexação: O índice i (discreto) indica intervalos de valor x.

x

)(1 xOx

ff

x

f ii

i

Page 11: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

O que isso quer dizer...

)(1 xOx

ff

x

f ii

i

for ( i=imin; i<imax; i++ ) {

dfdx[i] = ( fx[i+1] – fx[i] ) / (x[i+1] – x[i]);

}

O erro O(x) faz parte do “risco” assumido por quem está fazendo a modelagem.

Page 12: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A “diferença das diferenças”

(negativa apenas nas potências ímpares de x)

3

33

2

22

!3

)(

!2

)()()(

x

fx

x

fx

x

fxxfxxf

3

33

2

22

!3

)(

!2

)()()(

x

fx

x

fx

x

fxxfxxf

3

33

!3

)(22)()(

x

fx

x

fxxxfxxf

Page 13: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Aproximação da diferença central

Isolando a primeira diferencial:

2)(2

)()(xO

x

xxfxxf

x

f

211 )(2

xOx

ff

x

f ii

i

ou Aproximação de

diferença central da primeira derivada

Page 14: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A segunda derivada

Partindo da expansão em série de Taylor

Calculamos a expansão para f(x+2x):

3

33

2

22

!3

)(

!2

)()()(

x

fx

x

fx

x

fxxfxxf

3

33

2

22

!3

)2(

!2

)2()2()()2(

x

fx

x

fx

x

fxxfxxf

Page 15: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A segunda derivada

Queremos calcular -2f(x+x) + f(x+2x):

3

33

2

22

!3

)(2

!2

)(2)2()(2)(2

x

fx

x

fx

x

fxxfxxf

3

33

2

22

!3

)2(

!2

)2()2()()2(

x

fx

x

fx

x

fxxfxxf

Resultado:

3

33

2

22 )()()()2()(2

x

fx

x

fxxfxxfxxf

Page 16: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A segunda derivada

)()(

)()(2)2(22

2

xOx

xfxxfxxf

x

f

)()(

22

12

2

2

xOx

fff

x

f iii

i

para frente

)()(

22

21

2

2

xOx

fff

x

f iii

i

para trás

ou

Page 17: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Aproximação via diferença central da segunda derivada

Somando

e

Resultado:

3

33

2

22

!3

)(

!2

)()()(

x

fx

x

fx

x

fxxfxxf

3

33

2

22

!3

)(

!2

)()()(

x

fx

x

fx

x

fxxfxxf

2

22

2

)()(

)()(2)(xO

x

xxfxfxxf

x

f

Page 18: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Aproximação via diferença central da segunda derivada

2

22

2

)()(

)()(2)(xO

x

xxfxfxxf

x

f

2

2

11

2

2

)()(

2xO

x

fff

x

f iii

i

Aproximação de

diferença central da segunda derivada

Page 19: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Derivadas de ordem superior

Introduzindo a notação:

(diferença para frente)

(diferença para trás)

As diferenças de várias ordens podem ser expressas por expressões recursivas:

1

1

iiix

iiix

fff

fff

ix

n

xi

n

x

ix

n

xi

n

x

ff

ff

1

1

Page 20: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Derivadas de ordem superior

Fórmulas de recorrências derivadas das séries de Taylor:

(para frente)

(para trás)

(diferença central, n par)

(diferença central, n ímpar)

22

)1(2

)1(

222

2

2

xOx

ff

x

f

xOx

ff

x

f

xOx

f

x

f

xOx

f

x

f

n

ni

n

xni

n

x

i

n

n

n

ni

n

xni

n

x

i

n

n

n

i

n

x

i

n

n

n

i

n

x

i

n

n

Page 21: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Mais precisão?

Até aqui, foram considerados apenas os termos até a primeira ordem da série de Taylor.

Pode-se aumentar a precisão (diminuir o erro) considerando-se mais termos da expansão em série de Taylor.

Como resultado, obtém-se expressões mais trabalhosas, mas mais precisas. Exemplo:

2)(2

)(3)(4)2(xO

x

xfxxfxxf

x

f

Aproximação de segunda ordem para frente da primeira derivada

Page 22: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

DIFERENÇAS FINITAS VIA EXPANSÕES DE POLINÔMIOS

Page 23: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Expansão em polinômios

Dada um função analítica f(x), pode-se considerar que em um dado intervalo a função possa ser aproximada por um polinômio de grau n.

Por exemplo

CBxAxxf 2)(

Page 24: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo

Aproximação via polinômio de segunda ordem.

xx

xx

x

i

i

i

2

0

2

1

CBxAxxf 2)(

CxBxAxf

CxBxAxf

Cxf

i

i

i

22)(

)(

)(

2

2

2

1

Page 25: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A primeira derivada

CxBxAf

CxBxAf

Cf

i

i

i

222

2

2

1

212

12

2

2

2

34

x

fffA

x

fffB

fC

iii

iii

i

BAxx

f

2 xi=0

x

fff

x

f iii

2

34 12

Aproximação via polinômio de segunda ordem:

Page 26: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A segunda derivada

Aproximação via polinômio de segunda ordem:

CxBxAf

CxBxAf

Cf

i

i

i

222

2

2

1

212

12

2

2

2

34

x

fffA

x

fffB

fC

iii

iii

i

Ax

f2

2

2

2

12

2

2

)(

2

x

fff

x

f iii

Page 27: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Espaçamento não uniforme

xx

xx

x

i

i

i

)1(

0

2

1

CBxAxxf 2)(

CxBxAxf

CxBxAxf

Cxf

i

i

i

11)(

)(

)(

22

2

2

1

Page 28: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

CxBxAf

CxBxAf

Cf

i

i

i

1122

2

2

1

A primeira derivada

2

12

2

1

2

2

1

1

1

21

x

fffA

x

fffB

fC

iii

iii

i

BAxx

f

2

x

fff

x

f iii

i

)1(

)2()1( 1

2

2

Aproximação via polinômio de segunda ordem:

Page 29: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Ax

f2

2

2

CxBxAf

CxBxAf

Cf

i

i

i

1122

2

2

1

A segunda derivada

2

12

2

1

2

2

1

1

1

21

x

fffA

x

fffB

fC

iii

iii

i

Aproximação via polinômio de segunda ordem:

2

12

2

2

))(1(

)1(2

x

fff

x

f iii

Page 30: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

EQUAÇÕES DE DIFERENÇAS FINITAS

Page 31: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Equações de diferenças finitas

Usaremos as expressões apresentadas para reescrever as EDPs da Mecânica dos Fluidos.

Nosso interesse é obter expressões que possam ser incluídas em algoritmos e programas escritos em linguagens de programação.

Page 32: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Duas dependências

no espaço

Um estudo de caso

Consideremos a EDP:

2

2

2

2

y

f

x

f

t

f

Dependência no tempo

é uma constante

Page 33: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Convenções / notação

x

y

i,j

i,j-1

i,j+1

i-1,j

i+1,j

x

y

x

y i,j

i,j-1

i,j+1

i-1,j

i+1,j

t

tempo “n”

tempo “n+1”

n

jif ,1

,

n

jif

Page 34: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Primeira derivada no tempo

2

2

2

2

y

f

x

f

t

f

)(,

1

,tO

t

ff

t

fn

ji

n

ji

Diferença para frente de primeira

ordem

Page 35: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Segundas derivadas no espaço

2

2

,1,,1

2

2

)()(

2xO

x

fff

x

fn

ji

n

ji

n

ji

Diferenças centrais de segunda ordem

2

2

2

2

y

f

x

f

t

f

2

2

1,,1,

2

2

)()(

2yO

y

fff

y

fn

ji

n

ji

n

ji

Page 36: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

A expressão final

2

2

2

2

y

f

x

f

t

f

22

2

1,,1,

2

,1,,1,

1

,

)(,)(,

)(

2

)(

2

yxtO

y

fff

x

fff

t

ff n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

EDP

Equação a diferenças

finitas

Page 37: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Para frente e para trás no tempo

Formulação explícita (avança no tempo):

Formulação implícita (volta no tempo):

22

2

1,,1,

2

,1,,1,

1

,

)(,)(,

)(

2

)(

2

yxtO

y

fff

x

ff

t

ff n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

22

2

1

1,

1

,

1

1,

2

1

,1

1

,

1

,1,

1

,

)(,)(,

)(

2

)(

2

yxtO

y

fff

x

ff

t

ff n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

n

ji

Page 38: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Explícita x implícita

Explícita

• Tem apenas uma incógnita

• Simples e rápida

• Instável

Implícita

• Tem cinco incógnitas

• A solução exige que toda a matriz seja resolvida simultaneamente

• Estável

1

,

n

jif 1

1,

1

,1

1

,

1

1,

1

,1

,

,,,

n

ji

n

ji

n

ji

n

ji

n

ji

ff

fff

Page 39: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 1

Ache uma estimativa para frente para 4

4

x

f

Solução:

Partindo de

Com n=4 obtemos

xO

x

f

x

fn

i

n

x

i

n

n

xOf

xx

fix

i

4

44

4 1

Page 40: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 1: resolução

Aplicando ix

n

xi

n

x ff 1

iiiii

iiiiiiii

ixixixixiiiix

iiiiiixixixixx

iiixiiiix

ixixxiixixxix

fffff

ffffffff

ffffffff

fffffffff

fffffff

ffffff

1234

1122334

123123

1122312

12

2

112

2

1

2

1

334

464

)(3)(3)(

3333

22

2

xOfffff

xx

fiiiii

i

123444

4

4641

Page 41: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Compare as expressões obtidas para a representação de diferenças finitas para frente de quando calculadas via:

Exemplo 2

a) Séries de Taylor

b) Fórmulas de recorrência

c) Polinômio do terceiro grau

3

3

x

f

Page 42: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 2: resolução

a) Expansão em série de Taylor

Precisaremos de três pontos:

3

3

x

f

4

3

33

2

22

)(!3

)(

!2

)()()( xO

x

fx

x

fx

x

fxxfxxf

4

3

33

2

22

)2(!3

)2(

!2

)2(2)()2( xO

x

fx

x

fx

x

fxxfxxf

4

3

33

2

22

)3(!3

)3(

!2

)3(3)()3( xO

x

fx

x

fx

x

fxxfxxf

2

3

1

Page 43: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 2: resolução

Podemos agora isolar

3

3

x

f

4

3

33

2

22

31 )()(4)(323 xOx

fx

x

fxfff iii

)()(

333

223

3

3

xOx

ffff

x

f iiii

3

3

x

f

Somando a 1ª e a 3ª expressão:

4

3

33

2

22

12 )()()(2 xOx

fx

x

fxfff iii

Somando a 1ª e a 2ª expressão:

Somando estas duas:

Page 44: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 2: resolução

b) Usando fórmulas de recorrência:

3

3

x

f

xO

x

f

x

fn

i

n

x

i

n

n

xO

x

f

x

f ix

3

3

3

3

iiii

iiiiiiixixix

iiixiiiix

ixixxiixixxix

ffff

fffffffff

fffffff

ffffff

123

1122312

12112

11

223

33

22

2

xO

x

ffff

x

f iiii

3

123

3

3 33

Page 45: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 2: resolução

c) Usando polinômio de terceiro grau

3

3

x

f

DCxBxAxxf 23)(

Precisaremos de quatro pontos:

xx

xx

xx

x

i

i

i

i

3

2

0

3

2

1

Page 46: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 2: resolução 3

3

x

f

Df

DxCxBxAf

DxCxBxAf

DxCxBxAf

i

i

i

i

23

1

23

2

23

3

222

333

3123

2

123

123

6

33

6

615123

6

111892

x

ffffA

x

ffffB

x

ffffC

fD

iiii

iiii

iiii

i

Page 47: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 2: resolução

As derivadas de f(x) são dadas por

3

3

x

f

Ax

fBAx

x

fCBxAx

x

f62623

3

3

2

22

xO

x

ffff

x

f iiii

3

123

3

3 33

Com os três métodos obtivemos o mesmo resultado.

Page 48: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 3

Obtenha uma expressão de para trás com ordem (x)3 x

f

Solução:

A série de Taylor de f(x-x) é

4

3

33

2

22

)(!3

)(

!2

)()()( xO

x

fx

x

fx

x

fxxfxxf

Page 49: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 3: resolução

Isolamos :

Usaremos

4

3

33

2

22

)(!3

)(

!2

)()()( xO

x

fx

x

fxxxfxf

x

fx

x

fx

2

2

123

2

2 254xO

x

ffff

x

f iiii

xO

x

ffff

x

f iiii

3

123

3

3 33

Diferença para trás de segunda ordem da segunda derivada

Diferença para trás de primeira ordem da terceira derivada

Page 50: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exemplo 3: resolução

Substituindo:

4

3

123

3

2

2

123

2

1

)(33

6

)(

254

2

)(

xOxOx

ffffx

xOx

ffffxff

x

fx

iiii

iiiiii

4

123 )(1118926 xOfffx

fx iii

3123 )(6

111892xO

x

fff

x

f iii

Page 51: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

APROXIMAÇÕES DE DIFERENÇAS FINITAS DE DERIVADAS PARCIAIS MISTAS

Page 52: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Derivadas parciais mistas: séries de Taylor

Considere a derivada parcial mista

A expansão em série de Taylor para as duas variáveis x e y de f(x+x,y+y) é dada pela expressão

yx

f

2

332

2

22

2

22

,!2

2

!2!2

),(),(

yxOyx

fyx

y

fy

x

fx

y

fy

x

fxyxfyyxxf

Page 53: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Derivadas parciais mistas: séries de Taylor

Usando os índices i e j para representar o ponto (x,y) na grade, a mesma expressão pode ser reescrita como

33

2

22

2

22

2

,1,1

,22

yxOy

fy

x

fx

yx

fyx

y

fy

x

fxff jiji

Page 54: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Derivadas parciais mistas: séries de Taylor

Pode-se aplicar o mesmo método e obter as diferenciais em outras direções:

33

2

22

2

222

,1,1 ,22

yxOy

fy

x

fx

yx

fyx

y

fy

x

fxff jiji

33

2

22

2

222

,1,1 ,22

yxOy

fy

x

fx

yx

fyx

y

fy

x

fxff jiji

33

2

22

2

222

,1,1 ,22

yxOy

fy

x

fx

yx

fyx

y

fy

x

fxff jiji

Page 55: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Derivadas parciais mistas: séries de Taylor

Isolando nestas expressões, obtém-se

Diferenciais mistas de ordem superior podem ser obtidas usando-se o mesmo método.

221,11,11,11,12

,))((4

yxOyx

ffff

yx

f jijijiji

yx

f

2

Page 56: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Diferenciais mistas com respeito a uma variável independente

Considere a derivada parcial

Usando a diferença central de ordem (y)2 para chega-se a

Derivando em x:

x

f

xyx

f2

y

f

21,1,

2yO

y

ff

y

f jiji

21,1,2

2yO

y

ff

xyx

f jiji

Page 57: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Diferenciais mistas com respeito a uma variável independente

Aplicando-se diferença central de ordem (x)2 para chega-se a

E finalmente:

2

1,1,

21,1,2

2

1

2yO

x

f

x

f

yyO

y

ff

xyx

f

jiji

jiji

x

f

221,11,11,11,12

,222

1yxO

x

ff

x

ff

yyx

f jijijiji

221,11,11,11,1

2

,4

yxOyx

ffff

yx

f jijijiji

Page 58: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Diferenciais mistas com respeito a uma variável independente

Usando diferenças para frente, chega-se a

yxOx

ff

x

ff

y

yOx

f

x

f

y

yOy

ff

xy

f

xyx

f

jijijiji

jiji

jiji

,1

1

,,11,1,1

,1,

,1,2

yx

ffff

yx

f jijijiji

,,11,1,12

Page 59: CFD Aula 2

EN3224 Dinâmica de Fluidos Computacional

Exercícios

• Problemas 2.8 do Hoffmann “Computational Fluid Dynamics Vol.I”