CFD Aula 2

Post on 04-Jun-2015

183 views 3 download

description

Aula 2 sobre CFD do professor Annibal Hetem da UFABC

Transcript of 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

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

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

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

EN3224 Dinâmica de Fluidos Computacional

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

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

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

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...

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...

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

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.

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

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

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

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

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

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

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

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

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

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

EN3224 Dinâmica de Fluidos Computacional

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

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)(

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

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:

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

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

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:

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

EN3224 Dinâmica de Fluidos Computacional

EQUAÇÕES DE DIFERENÇAS FINITAS

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.

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

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

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

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

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

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

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

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

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

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

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

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:

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

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

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

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.

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

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

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

EN3224 Dinâmica de Fluidos Computacional

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

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

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

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

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

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

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

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

EN3224 Dinâmica de Fluidos Computacional

Exercícios

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