09.05.2013 Visualizações

Esquemas Essencialmente Não-Oscilatórios de ... - Marcos Castro

Esquemas Essencialmente Não-Oscilatórios de ... - Marcos Castro

Esquemas Essencialmente Não-Oscilatórios de ... - Marcos Castro

SHOW MORE
SHOW LESS

Transforme seus PDFs em revista digital e aumente sua receita!

Otimize suas revistas digitais para SEO, use backlinks fortes e conteúdo multimídia para aumentar sua visibilidade e receita.

Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro<br />

<strong>Esquemas</strong> <strong>Essencialmente</strong> <strong>Não</strong>-<strong>Oscilatórios</strong> <strong>de</strong><br />

Alta Precisão para Leis <strong>de</strong> Conservação<br />

Hiperbólicas<br />

<strong>Marcos</strong> <strong>Castro</strong><br />

Rio <strong>de</strong> Janeiro<br />

Novembro <strong>de</strong> 2009


Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro<br />

<strong>Esquemas</strong> <strong>Essencialmente</strong> <strong>Não</strong>-<strong>Oscilatórios</strong> <strong>de</strong> Alta Precisão<br />

para Leis <strong>de</strong> Conservação Hiperbólicas<br />

<strong>Marcos</strong> <strong>Castro</strong> C. T. <strong>de</strong> Azevedo<br />

Dissertação <strong>de</strong> Mestrado apresentada ao Programa <strong>de</strong> Pós-graduação em Matemática<br />

Aplicada, Instituto <strong>de</strong> Matemática da Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro (UFRJ),<br />

como parte dos requisitos necessários obtenção do título <strong>de</strong> Mestre em Matemática Aplicada.<br />

Orientador: Prof. Bruno Alexandre Soares da Costa.<br />

Rio <strong>de</strong> Janeiro<br />

Novembro <strong>de</strong> 2009


ii<br />

Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro<br />

<strong>Esquemas</strong> <strong>Essencialmente</strong> <strong>Não</strong>-<strong>Oscilatórios</strong> <strong>de</strong> Alta Precisão<br />

para Leis <strong>de</strong> Conservação Hiperbólicas<br />

<strong>Marcos</strong> <strong>Castro</strong> C. T. <strong>de</strong> Azevedo<br />

Dissertação <strong>de</strong> Mestrado apresentada ao Programa <strong>de</strong> Pós-graduação em Matemática<br />

Aplicada, Instituto <strong>de</strong> Matemática da Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro (UFRJ),<br />

como parte dos requisitos necessários obtenção do título <strong>de</strong> Mestre em Matemática Aplicada.<br />

Aprovada por:<br />

———————————————————<br />

Presi<strong>de</strong>nte, Prof. Bruno Alexandre Soares da Costa<br />

———————————————————<br />

Prof. Wai Sun Don<br />

———————————————————<br />

Prof. Marco Aurélio Palumbo Cabral<br />

Rio <strong>de</strong> Janeiro<br />

Novembro <strong>de</strong> 2009


<strong>Castro</strong>, <strong>Marcos</strong>.<br />

<strong>Esquemas</strong> <strong>Essencialmente</strong> <strong>Não</strong>-<strong>Oscilatórios</strong> <strong>de</strong><br />

Alta Precisão para Leis <strong>de</strong> Conservação Hiperbólicas / <strong>Marcos</strong><br />

<strong>Castro</strong>. – Rio <strong>de</strong> Janeiro: UFRJ/ IM, 2009.<br />

viii, 132f.:il.; 29,7 cm.<br />

Orientador: Bruno Alexandre Soares da Costa.<br />

Dissertação (Mestrado) — UFRJ/ IM/ Programa <strong>de</strong><br />

Pós-graduação em Matemática Aplicada, 2009.<br />

Referências Bibliográficas: f. 131-132 .<br />

1. Método WENO. 2. Leis <strong>de</strong><br />

Conservação. 3. Métodos Numéricos<br />

I. Costa, Bruno Alexandre Soares.<br />

II. Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro,<br />

Instituto <strong>de</strong> Matemática. III. <strong>Esquemas</strong> <strong>Essencialmente</strong><br />

<strong>Não</strong>-<strong>Oscilatórios</strong> <strong>de</strong> Alta Precisão para Leis<br />

<strong>de</strong> Conservação Hiperbólicas.<br />

iii


iv<br />

Dedicado à minha famlia.


Agra<strong>de</strong>cimentos<br />

Aos meus pais e família, aqueles que tornaram tudo isto possível.<br />

A Luciana, por todo o carinho e apoio, pelos quais não tenho como agra<strong>de</strong>cer através<br />

<strong>de</strong> palavras.<br />

Ao meu orientador, Bruno Costa, pelos ensinamentos, paciência e compreensão durante<br />

este trabalho e os anos que o prece<strong>de</strong>ram.<br />

Ao professor Marco Cabral, um dos meus primeiros professores e um dos gran<strong>de</strong>s responsáveis<br />

para que eu seguisse este caminho.<br />

Ao professor Wai Sun Don, que, assim como o professor Marco Cabral, prontamente<br />

aceitou o convite para compor a banca avaliadora.<br />

Aos meus amigos e colegas, que contribuíram <strong>de</strong> diversas maneiras para que eu chegasse<br />

até aqui. <strong>Não</strong> os citarei nominalmente para não cometer injustiças e não me alongar.<br />

v<br />

<strong>Marcos</strong> <strong>Castro</strong><br />

Novembro <strong>de</strong> 2009


vi<br />

“<strong>Não</strong> existe um caminho para a<br />

paz. A paz é o caminho."<br />

Mahatma Gandhi<br />

Lí<strong>de</strong>r espiritual e pacifista indiano


Resumo<br />

<strong>Esquemas</strong> <strong>Essencialmente</strong> <strong>Não</strong>-<strong>Oscilatórios</strong> <strong>de</strong> Alta Precisão para Leis <strong>de</strong><br />

Conservação Hiperbólicas<br />

<strong>Marcos</strong> <strong>Castro</strong><br />

Resumo da dissertação <strong>de</strong> Mestrado submetida ao Programa <strong>de</strong> Pós-graduação em<br />

Matemática Aplicada, Instituto <strong>de</strong> Matemática da Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro<br />

(UFRJ), como parte dos requisitos necessrios obtenção do título <strong>de</strong> Mestre em Matemática<br />

Aplicada.<br />

Resumo: Nesta dissertação <strong>de</strong>senvolvemos um novo esquema essencialmente<br />

não-oscilatório pon<strong>de</strong>rado (WENO) <strong>de</strong> quinta or<strong>de</strong>m adicionando um indicador<br />

<strong>de</strong> suavida<strong>de</strong> <strong>de</strong> alta or<strong>de</strong>m, obtido por uma simples combinação linear<br />

(e <strong>de</strong> baixo custo computacional) dos indicadores <strong>de</strong> suavida<strong>de</strong> já existentes.<br />

Este novo esquema, <strong>de</strong>nominado WENO-Z, tem um custo computacional equivalente<br />

ao clássico WENO-JS e consi<strong>de</strong>ravelmente menor do que o mapeado<br />

(WENO-M), uma vez que não há nenhum mapeamento envolvido. Também<br />

observamos mais <strong>de</strong> perto as expansões <strong>de</strong> Taylor dos polinômios <strong>de</strong> Lagrange<br />

dos subestênceis WENO e as simetrias herdadas dos indicadores <strong>de</strong> suavida<strong>de</strong><br />

<strong>de</strong> or<strong>de</strong>m menor para obter uma fórmula geral para os indicadores <strong>de</strong> suavida<strong>de</strong><br />

<strong>de</strong> alta or<strong>de</strong>m, permitindo a extensão do método WENO-Z para todas as<br />

or<strong>de</strong>ns (ímpares) <strong>de</strong> aproximação. Observamos também a boa aproximação do<br />

WENO-Z em pontos críticos <strong>de</strong> soluções suaves tal como suas características<br />

numéricas diferenciadas, <strong>de</strong>rivadas do novo conjunto <strong>de</strong> pesos não-linares e<br />

também mostramos que em relação à dissipação numérica weno-Z ocupa uma<br />

posição intermediária entre WENO-JS e WENO-M.<br />

Palavras–chave., WENO, Leis <strong>de</strong> Conservação, Indicadores <strong>de</strong> Suavida<strong>de</strong>, Pesos <strong>Não</strong>-<br />

Lineares.<br />

Rio <strong>de</strong> Janeiro<br />

Novembro <strong>de</strong> 2009<br />

vii


viii<br />

Abstract<br />

High Or<strong>de</strong>r Weighted Essentially Non-Oscillatory Schemes for Hyperbolic<br />

Conservation Laws<br />

<strong>Marcos</strong> <strong>Castro</strong><br />

Abstract da dissertação <strong>de</strong> Mestrado submetida ao Programa <strong>de</strong> Pós-graduao em Matemática<br />

Aplicada, Instituto <strong>de</strong> Matemática da Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro<br />

(UFRJ), como parte dos requisitos necessários obtenção do título <strong>de</strong> Mestre em Matemática<br />

Aplicada.<br />

Abstract: In this work we <strong>de</strong>sign a new fifth or<strong>de</strong>r WENO finite-difference<br />

scheme by adding a higher or<strong>de</strong>r smoothness indicator which is obtained as<br />

a simple and inexpensive linear combination of the already existing low or<strong>de</strong>r<br />

smoothness indicators. Moreover, this new scheme, dubbed as WENO-Z, has a<br />

CPU cost which is equivalent to the one of the classical WENO-JS and significantly<br />

lower than that of the mapped WENO-M„ since it involves no mapping<br />

of the nonlinear weights. We also take a closer look at Taylor expansions of<br />

the Lagrangian polynomials of the WENO substencils and the related inherited<br />

symmetries of the classical lower or<strong>de</strong>r smoothness indicators to obtain<br />

a general formula for the higher or<strong>de</strong>r smoothness indicators that allows the<br />

extension of the WENO-Z scheme to all (odd) or<strong>de</strong>rs of accuracy. We further<br />

investigate the improved accuracy of the WENO-Z schemes at critical points<br />

of smooth solutions as well as their distinct numerical features as a result of<br />

the new sets of nonlinear weights and we show that regarding the numerical<br />

dissipation WENO-Z occupies an intermediary position between WENO-JS<br />

and WENO-M.<br />

Keywords.WENO, Conservation Laws, Smoothness Indicators, Non-linear Weights.<br />

Rio <strong>de</strong> Janeiro<br />

Novembro 2009


Sumário<br />

1 Introdução 3<br />

2 Tópicos introdutórios 11<br />

2.1 Aproximação por polinômios . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.1.1 Interpolação via polinômios <strong>de</strong> Lagrange . . . . . . . . . . . . . . . 14<br />

2.2 Indicadores <strong>de</strong> suavida<strong>de</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

2.2.1 Um exemplo: a medida da variação total . . . . . . . . . . . . . . . 19<br />

2.3 Leis <strong>de</strong> conservação hiperbólicas . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

2.3.1 Equações <strong>de</strong> Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

2.4 Métodos numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

2.4.1 Resolução numérica <strong>de</strong> leis <strong>de</strong> conservação . . . . . . . . . . . . . . 29<br />

2.4.2 Aproximação por estêncil fixo . . . . . . . . . . . . . . . . . . . . . 30<br />

2.4.3 O que torna um método conservativo? . . . . . . . . . . . . . . . . 34<br />

2.4.4 Oscilações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3 Métodos essencialmente não-oscilatórios 39<br />

3.1 O método ENO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

3.2 <strong>Esquemas</strong> WENO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

3.2.1 Pesos i<strong>de</strong>ais e comparação com upstream central . . . . . . . . . . . 47<br />

1


SUMÁRIO SUMÁRIO<br />

3.2.2 WENO clássico: os pesos <strong>de</strong> Jiang-Shu . . . . . . . . . . . . . . . . 49<br />

3.2.3 Pontos críticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

3.2.4 WENO mapeado: corrigindo algumas falhas . . . . . . . . . . . . . 60<br />

4 O método WENO-Z 65<br />

4.1 Uma nova fórmula para os pesos do WENO . . . . . . . . . . . . . . . . . 66<br />

4.1.1 Generalização para todo r . . . . . . . . . . . . . . . . . . . . . . . 69<br />

4.2 Resultados auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

4.2.1 Representação dos polinômios ˆ f k . . . . . . . . . . . . . . . . . . . 71<br />

4.2.2 Or<strong>de</strong>m dos indicadores <strong>de</strong> suavida<strong>de</strong>s βk . . . . . . . . . . . . . . . 82<br />

4.3 Existência <strong>de</strong> τn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

4.4 Or<strong>de</strong>m máxima <strong>de</strong> τn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

4.5 Uma alternativa para obter or<strong>de</strong>m n . . . . . . . . . . . . . . . . . . . . . 106<br />

5 Resultados numéricos 109<br />

5.1 Análise dos pesos WENO . . . . . . . . . . . . . . . . . . . . . . . . . . . 112<br />

5.1.1 Or<strong>de</strong>ns mais altas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

5.2 Tempo <strong>de</strong> execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />

5.3 Equações <strong>de</strong> Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />

5.3.1 Comparação entre os esquemas WENO . . . . . . . . . . . . . . . . 122<br />

5.3.2 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />

2


Capítulo 1<br />

Introdução<br />

Uma equação <strong>de</strong> lei <strong>de</strong> conservação hiperbólica é uma equação da forma<br />

∂u<br />

∂t<br />

on<strong>de</strong> F é <strong>de</strong>finido como o fluxo conservado.<br />

+∇·F(u) = 0,<br />

Sem perda <strong>de</strong> generalida<strong>de</strong>, restringiremos nossa discussão ao caso unidimensional,<br />

∂ ∂<br />

u(x,t)+ f(u(x,t)) = 0. (1.1)<br />

∂t ∂x<br />

O nome lei <strong>de</strong> conservação se <strong>de</strong>ve ao seguinte fato: consi<strong>de</strong>re u(x,t) a <strong>de</strong>nsida<strong>de</strong> <strong>de</strong> uma<br />

certa gran<strong>de</strong>za, <strong>de</strong> modo que<br />

x2<br />

x1<br />

u(x,t)dx<br />

represente a quantida<strong>de</strong> <strong>de</strong>sta gran<strong>de</strong>za no intervalo [x1,x2] no tempo t. Integrando (1.1)<br />

em [x1,x2]×[t1,t2] chegamos à fórmula conservativa<br />

x2<br />

x1<br />

u(x,t2)dx =<br />

x2<br />

x1<br />

u(x,t1)dx+<br />

t2<br />

t1<br />

3<br />

f(u(x1,t))dx−<br />

t2<br />

t1<br />

f(u(x2,t))dx


CAPÍTULO 1. INTRODUÇÃO<br />

Informalmente, a quantida<strong>de</strong> da gran<strong>de</strong>za no instante t2 > t1 é igual à quantida<strong>de</strong> no<br />

instante t1 mais o que entra pela extremida<strong>de</strong> x1 e menos o que sai pela extremida<strong>de</strong> x2.<br />

Por isto, a função f recebe o nome <strong>de</strong> fluxo.<br />

As equações <strong>de</strong> leis <strong>de</strong> conservação frequentemente aparecem na física quando lidamos<br />

com quantida<strong>de</strong>s que se conservam. Algumas das equações mais famosas são a equação<br />

do transporte<br />

a equação <strong>de</strong> Burgers<br />

ut +<br />

e o sistema <strong>de</strong> equações <strong>de</strong> Euler<br />

ut +αux = 0,<br />

2 u<br />

t<br />

2<br />

x<br />

= ut +uux = 0<br />

⎡ ⎤ ⎡<br />

⎢<br />

ρ<br />

⎥ ⎢<br />

ρv<br />

⎢ ⎥ ⎢<br />

⎢ ρv ⎥ + ⎢ ρv<br />

⎣ ⎦ ⎣<br />

E<br />

2 ⎤<br />

⎥<br />

+p ⎥<br />

⎦<br />

v(E +p)<br />

As equações <strong>de</strong> Euler têm aplicação na dinâmica <strong>de</strong> fluidos, especialmente sobre fluidos<br />

em alta velocida<strong>de</strong>. A variável ρ representa a <strong>de</strong>nsida<strong>de</strong> <strong>de</strong> massa, v é a velocida<strong>de</strong>, E<br />

é a energia total e p é a pressão, geralmente uma função das três primeiras variáveis. A<br />

primeira linha do sistema correspon<strong>de</strong> à conservação <strong>de</strong> massa, a segunda à conservação<br />

<strong>de</strong> momento e a terceira à conservação <strong>de</strong> energia.<br />

As equações <strong>de</strong> leis <strong>de</strong> conservação não-lineares em geral não possuem uma solução<br />

analítica explícita. Por este motivo métodos numéricos são frequentemente utilizados para<br />

obter soluções. Porém, pela natureza das leis <strong>de</strong> conservação, alguns cuidados têm que ser<br />

tomados. Uma equação <strong>de</strong> lei <strong>de</strong> conservação po<strong>de</strong> ter uma solução u(x,t) <strong>de</strong>scontínua<br />

mesmo quando a condição inicial u0(x) é C ∞ . Estas soluções <strong>de</strong>scontínuas, mais apropri-<br />

4<br />

x<br />

= 0


CAPÍTULO 1. INTRODUÇÃO<br />

adamente chamadas <strong>de</strong> soluções fracas, em geral não são únicas para um dado problema,<br />

apesar <strong>de</strong> haver apenas uma solução fisicamente relevante (aquela que satisfaz condições<br />

<strong>de</strong> entropia, adicionais ao problema). Isto torna mais complicada a tarefa <strong>de</strong> achar uma<br />

solução numérica.<br />

Primeiramente, para obtermos a solução fraca fisicamente relevante o método numérico<br />

<strong>de</strong>ve ser conservativo e as soluções por ele obtidas <strong>de</strong>vem satisfazer a condições <strong>de</strong> entropia.<br />

<strong>Não</strong> entraremos em <strong>de</strong>talhes sobre este importante tópico. Uma boa referência se encontra<br />

em [6, cap. 12].<br />

Em segundo lugar, o método numérico que vamos usar <strong>de</strong>ve se comportar bem diante<br />

<strong>de</strong> <strong>de</strong>scontinuida<strong>de</strong>s. Em geral, um método comum baseado em volumes ou diferenças<br />

finitas é dissipativo (suavizando as <strong>de</strong>scontinuida<strong>de</strong>s) se sua or<strong>de</strong>m é 1 ou dispersivo<br />

(com oscilações parecidas com o fenômeno <strong>de</strong> Gibbs) se a or<strong>de</strong>m é maior ou igual a 2.<br />

Estas oscilações tornam estes métodos instáveis e as soluções são qualitativamente ruins.<br />

Entretanto, as dissipações geradas por métodos <strong>de</strong> or<strong>de</strong>m 1 são severas, <strong>de</strong> maneira que<br />

muitos pontos são necessários para se obter uma solução confiável.<br />

Se quisermos soluções <strong>de</strong> or<strong>de</strong>m alta (<strong>de</strong> 2 em diante) então precisamos usar métodos<br />

especiais para não gerarmos oscilações. Uma classe <strong>de</strong> métodos que não são dispersivos<br />

mas sim dissipativos mesmo em or<strong>de</strong>ns altas é a dos chamados métodos <strong>Essencialmente</strong><br />

<strong>Não</strong>-<strong>Oscilatórios</strong>. O nome se <strong>de</strong>ve ao método <strong>de</strong>nominado essentially non-oscillatory<br />

schemes (conhecido também por sua abreviatura ENO), proposto no artigo [1] <strong>de</strong> Harten,<br />

Enquist, Osher e Chakravarthy. Mais tar<strong>de</strong>, outros métodos baseados no ENO surgiram.<br />

O mais importante <strong>de</strong>les foi o esquema essencialmente não-oscilatório pon<strong>de</strong>rado (WENO,<br />

do original em inglês weighted essentially non-oscillatory), <strong>de</strong>senvolvido nos artigos [2] <strong>de</strong><br />

Liu, Osher e Chan e [4] <strong>de</strong> Jiang e Shu. Recentemente, o artigo [3] <strong>de</strong> Henrick, Aslam e<br />

Powers lançou uma nova luz sobre o WENO, com o <strong>de</strong>senvolvimento do WENO mapeado.<br />

Há ainda outras modificações, como por exemplo oo ENO geométrico [8] e o power ENO<br />

5


CAPÍTULO 1. INTRODUÇÃO<br />

Figura 1.1: Solução numérica da equação do transporte obtida com um método <strong>de</strong> estêncil<br />

fixo <strong>de</strong> or<strong>de</strong>m 1. Note como o método é dissipativo<br />

[7]. O estudo dos esquemas essencialmente não-oscilatórios, em especial o ENO e os<br />

esquemas baseados no WENO, será o assunto principal <strong>de</strong>ste texto.<br />

O esquema ENO se baseia numa escolha: para cada ponto, há r conjuntos <strong>de</strong> r pontos<br />

adjacentes (chamados <strong>de</strong> estênceis) que são candidatos a serem usados para aproximar<br />

f ′ . Usando medidores <strong>de</strong> suavida<strong>de</strong>, o algoritmo escolhe qual <strong>de</strong>ntre os estênceis é o mais<br />

suave e o utiliza para aproximar f ′ , evitando as oscilações.<br />

Entretanto, em regiões on<strong>de</strong> a solução é suave tem um inconveniente: <strong>de</strong>sprezamos<br />

informação útil sobre a função quando usamos 1 estêncil na aproximação e <strong>de</strong>scartamos os<br />

outros r−1. Se usássemos todos os estênceis, teríamos uma quantida<strong>de</strong> maior <strong>de</strong> pontos<br />

(2r − 1, para ser mais preciso) disponíveis para a aproximação e, consequentemente,<br />

aumentaríamos a or<strong>de</strong>m <strong>de</strong> convergência do método. O esquema WENO faz isto ao<br />

atribuir pesos a cada estêncil. A aproximação final é obtida pela soma pon<strong>de</strong>rada da<br />

aproximação em cada um dos estênceis. Os pesos foram <strong>de</strong>senvolvidos <strong>de</strong> tal forma que<br />

um estêncil on<strong>de</strong> a função é <strong>de</strong>scontínua recebe peso praticamente nulo. Deste modo, o<br />

6


CAPÍTULO 1. INTRODUÇÃO<br />

Figura 1.2: Solução numérica da equação do transporte obtida com um método <strong>de</strong> estêncil<br />

fixo <strong>de</strong> or<strong>de</strong>m 5. As oscilações vistas são comuns em métodos alta or<strong>de</strong>m<br />

WENO emula o comportamento do ENO nas vizinhanças <strong>de</strong> <strong>de</strong>scontinuida<strong>de</strong>s, evitando<br />

assim oscilações na solução. Ao mesmo tempo, em regiões contínuas todos os estênceis<br />

são levados em conta, permitindo um ganho em termos <strong>de</strong> or<strong>de</strong>m <strong>de</strong> convergência. Os<br />

métodos essencialmente não-oscilatórios se encontram em uma página recente da história<br />

da matemática (o artigo pioneiro [1]<strong>de</strong>senvolvido neste campo data <strong>de</strong> 1987).<br />

No capítulo 2 apresentaremos tópicos preliminares, necessários para o entendimento<br />

dos métodos ENO. Na primeira seção <strong>de</strong>ste capítulo estudaremos a aproximação polino-<br />

mial, através da interpolação <strong>de</strong> Lagrange. Os métodos <strong>de</strong> diferença finita que veremos,<br />

incluindo os essencialmente não-oscilatórios, utilizam este tipo <strong>de</strong> aproximação polinomial<br />

em suas fórmulas.<br />

Na segunda seção do capítulo 2 entraremos em <strong>de</strong>talhes sobre os medidores <strong>de</strong> suavi-<br />

7


CAPÍTULO 1. INTRODUÇÃO<br />

da<strong>de</strong> - outra peça fundamental para os esquemas ENO. Definiremos o que é um medidor<br />

<strong>de</strong> suavida<strong>de</strong>; informalmente falando, trata-se <strong>de</strong> um operador que associa um valor a um<br />

conjunto <strong>de</strong> valores pontuais <strong>de</strong> uma função. A magnitu<strong>de</strong> <strong>de</strong>ste valor indica o grau <strong>de</strong><br />

suavida<strong>de</strong> <strong>de</strong> uma função: quanto menor for o valor, mais suave será a função no domínio<br />

da medição. Existem diversos tipos <strong>de</strong> medidores <strong>de</strong> suavida<strong>de</strong>, mas estudaremos apenas<br />

a medida da variação total, que será o medidor utilizado nos esquemas ENO.<br />

Na terceira seção do capítulo 2 abordaremos uma importante proprieda<strong>de</strong> das leis <strong>de</strong><br />

conservação hiperbólicas, que é a possibilida<strong>de</strong> <strong>de</strong> diagonalizar o sistema <strong>de</strong> equações, <strong>de</strong><br />

modo a <strong>de</strong>sacoplar as variáveis, isto é, fazer com que cada equação <strong>de</strong>penda <strong>de</strong> apenas<br />

uma variável. Veremos que esta proprieda<strong>de</strong> é fundamental para a resolução <strong>de</strong> certas<br />

equações, como o sistema <strong>de</strong> equações <strong>de</strong> Euler, por exemplo.<br />

Na quarta seção do capítulo 2 veremos questões relevantes a esquemas numéricos<br />

<strong>de</strong> resolução <strong>de</strong> leis <strong>de</strong> conservação, como as condições para estabilida<strong>de</strong> e a proprieda<strong>de</strong><br />

conservativa <strong>de</strong> um método. Nesta seção, veremos ainda os chamados esquemas <strong>de</strong> estêncil<br />

fixo e mostraremos seu comportamento oscilatório. Os esquemas <strong>de</strong> estêncil fixo recebem<br />

esta terminologia <strong>de</strong>vido ao fato <strong>de</strong> que o estêncil utilizado não varia em função do ponto<br />

da malha on<strong>de</strong> se faz a aproximação. Estes esquemas são bem simples <strong>de</strong> se implementar;<br />

porém, eles geram oscilações significativas nas proximida<strong>de</strong>s <strong>de</strong> uma <strong>de</strong>scontinuida<strong>de</strong>.<br />

Apesar <strong>de</strong>ste mal comportamento diante <strong>de</strong>ste tipo <strong>de</strong> problema, o estudo dos esquemas<br />

<strong>de</strong> estêncil fixo se faz necessário, já que o ENO po<strong>de</strong> ser entendido como uma modificação<br />

<strong>de</strong>ste tipo <strong>de</strong> esquema.<br />

No capítulo 3 estudaremos alguns tipos <strong>de</strong> métodos ENO: o ENO original [1], o WENO<br />

clássico com os pesos <strong>de</strong> Jiang-Shu [4] e o WENO mapeado, proposto em [3] para contornar<br />

problemas encontrados em vizinhanças <strong>de</strong> pontos críticos (isto é, pontos <strong>de</strong> <strong>de</strong>rivada zero).<br />

O nome WENO mapeado se <strong>de</strong>ve ao fato <strong>de</strong> que um mapeamento é aplicado aos pesos <strong>de</strong><br />

Jiang-Shu <strong>de</strong> modo a corrigir estes problemas observados. Além disso, este mapeamento<br />

8


CAPÍTULO 1. INTRODUÇÃO<br />

faz com que os pesos calculados perto das <strong>de</strong>scontinuida<strong>de</strong>s ganhem mais importância,<br />

tornando o método menos dissipativo. No entanto, vemos que o mapeamento acaba por<br />

<strong>de</strong>ixar o esquema mais caro computacionalmente.<br />

No capítulo 4 introduziremos o método WENO-Z [13], que introduz um novo cálculo<br />

para os pesos <strong>de</strong> Jiang-Shu: a i<strong>de</strong>ia é inserir na formulação dos pesos um medidor <strong>de</strong><br />

suavida<strong>de</strong> global que contém informações sobre todos os r estênceis. Observamos que o<br />

WENO-Z sempre alcança or<strong>de</strong>m ótima em regiões contínuas afastadas <strong>de</strong> pontos críticos<br />

e que, em or<strong>de</strong>ns mais altas, a optimalida<strong>de</strong> ainda é alcançada mesmo com a presença<br />

<strong>de</strong>stes pontos críticos.<br />

Finalmente, no capítulo 5 mostraremos soluções numéricas <strong>de</strong> alguns exemplos clássi-<br />

cos, como a equação do transporte e o sistema <strong>de</strong> equações <strong>de</strong> Euler, comparando os três<br />

tipos <strong>de</strong> WENO vistos neste texto. Os resultados encontrados confirmaram que o WENO<br />

mapeado é o menos dissipativo <strong>de</strong>ntre os três esquemas, seguido do WENO-Z e por fim<br />

o WENO clássico. Em termos <strong>de</strong> <strong>de</strong>sempenho computacional, o WENO-Z, por sua vez,<br />

apresentou vantagens em relação ao WENO mapeado.<br />

9


10<br />

CAPÍTULO 1. INTRODUÇÃO


Capítulo 2<br />

Tópicos introdutórios<br />

Antes <strong>de</strong> iniciarmos o estudo sobre esquemas ENO será preciso examinar dois assuntos<br />

importantes, ainda que relativamente simples. O primeiro <strong>de</strong>les surge no processo <strong>de</strong><br />

aproximação dos esquemas <strong>de</strong> diferença finita. Neste processo, em um dado momento<br />

estamos interessados em obter coeficientes c−l,c−l+1,...,ck que servirão para obtermos<br />

uma aproximação para f ′ (xi),, <strong>de</strong> or<strong>de</strong>m r, usando os valores <strong>de</strong> f em um conjunto <strong>de</strong> r<br />

pontos que inclui xi,<br />

on<strong>de</strong><br />

A aproximação assume a forma<br />

S = {xi−l,xi−l+1,...,xi,...,xi+k}, r = k +l+1,<br />

xi+j = xi +j∆x.<br />

k<br />

j=−l cjf(xi+j)− k<br />

j=−l cjf(xi+j−1)<br />

∆x<br />

11<br />

= f ′ (xi)+O(∆x r ). (2.1)


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

Há uma formulação equivalente para este problema, na qual é mais simples encontrar<br />

estes coeficientes. Consi<strong>de</strong>re o fluxo numérico h <strong>de</strong>finido implicitamente como<br />

Esta função satisfaz<br />

f(x) = 1<br />

∆x<br />

x+ 2<br />

∆x x− ∆x<br />

h(ξ)dξ. (2.2)<br />

2<br />

<br />

∂f<br />

<br />

∂x<br />

x=xi<br />

Po<strong>de</strong>-se mostrar (vi<strong>de</strong> [5]) que os coeficientes que satisfazem<br />

k<br />

j=−l<br />

= hi+ 1 −h 1<br />

i− 2 2.<br />

(2.3)<br />

∆x<br />

cjf(xi+j) = h(x 1<br />

i+ )+O(∆x<br />

2<br />

r ) (2.4)<br />

são os mesmos que satisfazem (2.1). Destacamos que para cada j o valor f(xi+j) é<br />

uma média celular <strong>de</strong> h no intervalo [x 1<br />

i+j− ,x 1<br />

i+j+ ]. Portanto, o problema que estamos<br />

2 2<br />

resolvendo é<br />

Problema 1. Dado os valoresf(xi+j) das médias celulares <strong>de</strong>h, ache coeficientesc−l,c−l+1,...,ck<br />

que satisfazem (2.4).<br />

Este problema é facilmente resolvido através da interpolação polinomial. Veremos a<br />

solução na seção seguinte, via polinômios <strong>de</strong> Lagrange.<br />

O segundo assunto <strong>de</strong>ste capítulo se refere aos chamados medidores <strong>de</strong> suavida<strong>de</strong>. Ba-<br />

sicamente, um medidor <strong>de</strong> suavida<strong>de</strong> é um operador capaz <strong>de</strong> <strong>de</strong>terminar a suavida<strong>de</strong> <strong>de</strong><br />

uma função f em um dado intervalo [x0,xr] a partir <strong>de</strong> um conjunto <strong>de</strong> valores pontuais<br />

f(x0),f(x1),...,f(xr),xi ∈ [x0,xr]. Por causa <strong>de</strong>sta proprieda<strong>de</strong>, os medidores <strong>de</strong> suavi-<br />

da<strong>de</strong> são empregados nos esquemas baseados no ENO. Estes esquemas <strong>de</strong>terminam uma<br />

região on<strong>de</strong> a função é contínua e a utilizam para realizar a aproximação <strong>de</strong> f ′ (xi). Dentre<br />

12


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.1. APROXIMAÇÃO POR POLINÔMIOS<br />

diversos exemplos <strong>de</strong> medidores <strong>de</strong> suavida<strong>de</strong>, veremos a medida <strong>de</strong> variação total, um<br />

medidor introduzido em [4] que é bastante utilizado nos esquemas WENO.<br />

Finalmente, na terceira seção <strong>de</strong>ste capítulo estudaremos os rudimentos da resolução<br />

numérica <strong>de</strong> equações <strong>de</strong> leis <strong>de</strong> conservação. Veremos as condições que o método ne-<br />

cessariamente precisa satisfazer para que tenhamos uma solução correta: a condição <strong>de</strong><br />

Courant-Friedrichs-Lax (CFL). Veremos também um método numérico <strong>de</strong> resolução <strong>de</strong><br />

leis <strong>de</strong> conservação bastante simples. Este esquema, ainda que oscilatório, constitui uma<br />

base da qual os métodos essencialmente não-oscilatórios são uma modificação.<br />

2.1 Aproximação por polinômios<br />

Consi<strong>de</strong>re uma função f e uma malha <strong>de</strong> pontos<br />

S = {x0,...,xk}, x0 < x1 < ... < xk. (2.5)<br />

Vamos supor que saibamos o valor <strong>de</strong> f nos pontos da malha<br />

f(xi) = fi, i = 0,...,k<br />

mas que não saibamos, ou não queiramos calcular, o valor <strong>de</strong> f em nenhum outro ponto.<br />

Porém, estamos interessados em obter um valor aproximado <strong>de</strong> f(x) para x ∈ (x0,xk).<br />

Uma maneira muito natural <strong>de</strong> se fazer isto é achar o polinômio p(x) que interpola f na<br />

malha S, isto é, o polinômio que satisfaz<br />

p(xi) = fi, i = 0,...,k (2.6)<br />

A partir daí, usamos p(x) como uma aproximação para f(x) no intervalor (x0,xk).<br />

13


2.1. APROXIMAÇÃO POR POLINÔMIOS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

A escolha do grau <strong>de</strong> p é muito importante. Se o grau for pequeno po<strong>de</strong> ser impossível<br />

achar p que satisfaça (2.6). Por outro lado, se o grau for gran<strong>de</strong> <strong>de</strong>mais então po<strong>de</strong> existir<br />

mais <strong>de</strong> um polinômio que satisfaça (2.6), e neste caso a aproximação fica igualmente<br />

in<strong>de</strong>terminada. Felizmente há um fato que nos ajudará a resolver esta questão (omitiremos<br />

a <strong>de</strong>monstração, apesar <strong>de</strong> ser relativamente simples).<br />

Teorema 1. Consi<strong>de</strong>re uma malha <strong>de</strong> pontos e uma função f <strong>de</strong>finidas como acima.<br />

Existe um único polinômio p(x) <strong>de</strong> grau menor ou igual a k tal que p(xi) = f(xi) para<br />

i = 0,...,k.<br />

Algo também importante é a or<strong>de</strong>m do erro que obtemos com a aproximação. O<br />

teorema a seguir nos dá esta informação:<br />

Teorema 2. Seja p o único polinômio <strong>de</strong> grau menor ou igual a k que interpola f na<br />

malha S. Além disto, vamos <strong>de</strong>finir<br />

Se f ∈ C k [x0,xk] então<br />

para todo x ∈ [x0,xk].<br />

∆x ≡ max<br />

1≤i≤k xi −xi−1.<br />

f(x)−p(x) = O(∆x k+1 )<br />

2.1.1 Interpolação via polinômios <strong>de</strong> Lagrange<br />

(2.7)<br />

Há uma maneira bastante simples <strong>de</strong> calcular o polinômio interpolante p(x). Consi<strong>de</strong>re<br />

a família <strong>de</strong> polinômios li(x) <strong>de</strong> grau k que é <strong>de</strong>finida como<br />

li(x) =<br />

k<br />

j=0<br />

j=i<br />

x−xj<br />

, i = 0,...,k<br />

xi −xj<br />

14


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.1. APROXIMAÇÃO POR POLINÔMIOS<br />

Os polinômios li(x) são bem <strong>de</strong>finidos <strong>de</strong>s<strong>de</strong> que a malha só contenha pontos distintos,<br />

o que é o caso <strong>de</strong> (2.5).<br />

Observe que, por <strong>de</strong>finição,<br />

⎧<br />

⎪⎨ 0, se i = j<br />

li(xj) =<br />

⎪⎩ 1, se i = j<br />

Daí segue um fato interessante a respeito <strong>de</strong>stes polinómios:<br />

Teorema 3. k<br />

i=0 li(x) = 1 para todo x ∈ R.<br />

Demonstração. Vamos chamar q(x) = k<br />

i=0 li(x). Usando (2.8) po<strong>de</strong>mos ver que<br />

q(xj) =<br />

k<br />

li(xj) = 1, j = 0,...,k.<br />

i=0<br />

(2.8)<br />

Portanto, o polinomio r(x) = 1 interpolaq(x) nos pontos x0,...,xk. Por outro lado, q(x) é<br />

um polinômio <strong>de</strong> grau no máximo k e, obviamente, ele também se interpola em x0,...,xk.<br />

Pelo Teorema 1, existe um único polinômio <strong>de</strong> grau no máximo k que interpola q(x) em<br />

x0,...,xk. Logo k<br />

i=0 li(x) ≡ r(x) ≡ 1.<br />

Vejamos como po<strong>de</strong>mos usar os polinomios li(x) para acharmos uma fórmula para o<br />

polinomio interpolante p(x). Usando (2.8), verifica-se facilmente que k<br />

i=0 fili(xj) = fj.<br />

Daí segue imediatamente que<br />

p(x) =<br />

k<br />

fili(x) =<br />

i=0<br />

k<br />

i=0<br />

fi<br />

k<br />

j=0<br />

j=i<br />

x−xj<br />

xi −xj<br />

(2.9)<br />

é o polinomio que procurávamos. Note que p(x) é uma soma <strong>de</strong> polinomios <strong>de</strong> or<strong>de</strong>m k<br />

e que, por isto, o grau <strong>de</strong> p(x) é menor ou igual a k. Assim, acabamos <strong>de</strong> <strong>de</strong>monstrar a<br />

parte da existência do polinomio interpolante do teorema 1.<br />

15


2.2. INDICADORES DE SUAVIDADECAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

Esta maneira <strong>de</strong> escrever o polinomio interpolante é conhecida como fórmula interpola-<br />

dora <strong>de</strong> Lagrange. Há outras maneiras <strong>de</strong> se calcular o polinômio interpolante, como pela<br />

fórmula <strong>de</strong> Newton (não abordaremos este assunto aqui). Porém a fórmula <strong>de</strong> Lagrange<br />

será mais conveniente para nós neste momento. Vejamos o porquê.<br />

Neste texto, em vários momentos, estaremos interessados em obter uma expressão<br />

para a aproximação polinomial <strong>de</strong> f(x) em termos dos valores conhecidos f0,...,fk. Em<br />

outras palavras, vamos querer achar os coeficientes c0,...,ck que satisfaçam<br />

f(x) ≈ p(x) =<br />

Po<strong>de</strong>mos ver, por (2.9), que no contexto atual<br />

ci = li(x) =<br />

k<br />

j=0<br />

j=i<br />

2.2 Indicadores <strong>de</strong> suavida<strong>de</strong><br />

k<br />

i=0<br />

cifi<br />

x−xj<br />

.<br />

xi −xj<br />

(2.10)<br />

Como saber se uma função f é contínua? Esta pergunta, aparentemente inocente, es-<br />

con<strong>de</strong> um problema dos mais relevantes. Claro, quando sabemos a <strong>de</strong>finição da função(f(x) =<br />

sin(x) ou f(x) = 1/(x+3), por exemplo), a resposta é mais fácil. Mas e se não tivermos<br />

tanta informação sobre a função? Na prática, quando lidamos com funções num compu-<br />

tador raramente sabemos a <strong>de</strong>finição <strong>de</strong>las, a não ser que estejamos usando um programa<br />

<strong>de</strong> matemática simbólica, como o Maple. Por exemplo, em geral não sabemos nada sobre<br />

a solução <strong>de</strong> uma EDP. Ao invés disto, quando a resolvemos numericamente o que temos<br />

são apenas avaliações pontuais da solução u (uma aproximação <strong>de</strong>la, na verda<strong>de</strong>) em um<br />

conjunto finito e discreto <strong>de</strong> pontos {x0,...,xk}. Será que conhecendo apenas estes va-<br />

lores pontuais é possível afirmar algo a respeito da continuida<strong>de</strong> <strong>de</strong> u? Ou, formulando<br />

16


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS2.2. INDICADORES DE SUAVIDADE<br />

melhor,é possível dizer se uma função f(x) é contínua conhecendo-se apenas um conjunto<br />

discreto <strong>de</strong> valores f(x0),f(x1),...,f(xk))? Ou simplesmente, é possível dizer se uma<br />

função f(x) é contínua apenas olhando para o seu gráfico? Qualquer um respon<strong>de</strong>ria<br />

ao problema acima dizendo que sim, é possível dizer se uma função é contínua ou não<br />

só olhando para seu gráfico. Isto porque o cérebro humano é equipado com um “sensor<br />

<strong>de</strong> continuida<strong>de</strong>” que faz toda a tarefa <strong>de</strong> <strong>de</strong>tectar <strong>de</strong>scontinuida<strong>de</strong>s automaticamente.<br />

Sabemos quando uma função é suave e quando ela dá saltos. Um olho mais treinado é<br />

capaz até <strong>de</strong> <strong>de</strong>tectar <strong>de</strong>scontinuida<strong>de</strong>s na segunda <strong>de</strong>rivada <strong>de</strong> uma função só <strong>de</strong> olhar<br />

para o seu gráfico.<br />

Mas acontece que no mundo real em que vivemos é impossível representar exatamente<br />

o gráfico <strong>de</strong> uma função cujo domínio é um conjunto <strong>de</strong>nso. Por exemplo, nunca consegui-<br />

remos <strong>de</strong>senhar perfeitamente uma reta <strong>de</strong>nsa, aquela em que entre dois pontos quaisquer<br />

sempre existe mais um ponto. Isto porque quando <strong>de</strong>senhamos um gráfico com um lápis,<br />

a linha que parece cheia é na verda<strong>de</strong> uma ca<strong>de</strong>ia discreta <strong>de</strong> moléculas <strong>de</strong> grafite. Ou<br />

então quando <strong>de</strong>senhamos o gráfico no computador, usamos um conjunto finito <strong>de</strong> pixels,<br />

e assim por diante. Porém, quando olhamos para um gráfico, nosso cérebro não é capaz<br />

<strong>de</strong> <strong>de</strong>tectar os buracos entre uma molécula e outra (ou entre um pixel e outro), criando<br />

a ilusão <strong>de</strong> que vemos <strong>de</strong> fato uma reta <strong>de</strong>nsa. E por causa disto que o nosso “sensor <strong>de</strong><br />

continuida<strong>de</strong>” ainda funciona mesmo nestes gráficos que não representam tão exatamente<br />

a função.<br />

Observe que o gráfico <strong>de</strong>f(x) na verda<strong>de</strong> ilustra a avaliação <strong>de</strong>f em um conjunto finito<br />

e discreto <strong>de</strong> pontos. Por este motivo, os dois problemas acima são semelhantes. Logo,<br />

já que a nossa mente consegue olhar para um gráfico esburacado e dizer se uma função é<br />

contínua, então po<strong>de</strong> haver alguma maneira <strong>de</strong> se fazer o mesmo matematicamente. E há<br />

uma maneira, <strong>de</strong> fato: usando-se os medidores <strong>de</strong> suavida<strong>de</strong>, que <strong>de</strong>finimos a seguir:<br />

17


2.2. INDICADORES DE SUAVIDADECAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

Definição 1. Consi<strong>de</strong>re uma malha <strong>de</strong> pontos x0 < x1 < ... < xk tal que ∆x =<br />

max1≤i≤kxi − xi−1 < 1. Além disto, consi<strong>de</strong>re uma função f : D ⊂ R −→ R con-<br />

tínua por partes em (x0,xk) tal que, para todo x ∈ D, temos f(x) = limt→x +f(t) ou<br />

f(x) = limt→x −f(t). Seja f(xi) = fi,i = 0,...,k. Um medidor <strong>de</strong> suavida<strong>de</strong> β é um<br />

operador que, a partir dos valores f0,f1,...,fk, é capaz <strong>de</strong> avaliar a suavida<strong>de</strong> <strong>de</strong> f em<br />

(x0,xk) no seguinte sentido:<br />

• Se f é contínua em (x0,xk) então β(f0,f1,...,fk) = O(∆x p ) para algum p ≥ 1;<br />

• Se f é <strong>de</strong>scontínua em (x0,xk) então β(f0,f1,...,fk) = O( 1<br />

∆x q) para algum q ≥ 0;<br />

O nome "medidor <strong>de</strong> suavida<strong>de</strong>"vem do fato <strong>de</strong> que quanto mais suave forf em(x0,xk)<br />

em geral menores serão os valores <strong>de</strong> β(f0,f1,...,fk). Deste modo é possível <strong>de</strong>tectar a<br />

presença <strong>de</strong> <strong>de</strong>scontinuida<strong>de</strong>s em f num domínio apenas olhando para a magnitu<strong>de</strong> <strong>de</strong> β.<br />

Po<strong>de</strong>mos ver que nesta <strong>de</strong>finição é exigido que f seja contínua por partes. Vejamos o<br />

porquê. Para uma função f <strong>de</strong>scontínua em um conjunto <strong>de</strong> medida não-nula po<strong>de</strong> ser<br />

impossível <strong>de</strong>senharmos seu gráfico. Seria preciso que utilizássemos um instrumento com<br />

resolução infinita, capaz <strong>de</strong> realizar a impossível tarefa <strong>de</strong> mostrar o valor da função em<br />

todos os pontos on<strong>de</strong> há <strong>de</strong>scontinuida<strong>de</strong>. Do mesmo modo, seria preciso um ∆x infini-<br />

tesimalmente pequeno para que pudéssemos captar todas as nuances <strong>de</strong> f neste conjunto<br />

<strong>de</strong> medida não-nula, o que é impossível neste universo em que vivemos. Além do mais,<br />

nas aplicações com maior interesse prático é muito incomum lidarmos com funções que<br />

não sejam contínuas por partes, fato que torna esta imposição algo nem tanto restritivo.<br />

Mas ainda há outro problema. Consi<strong>de</strong>re a função<br />

⎧<br />

⎪⎨ 1, se x = 0<br />

g(x) =<br />

⎪⎩ 0, se x = 0<br />

18<br />

(2.11)


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS2.2. INDICADORES DE SUAVIDADE<br />

Neste caso, qualquer medidor <strong>de</strong> suavida<strong>de</strong> <strong>de</strong>finido numa malha que não contenha o<br />

ponto x = 0 não será capaz <strong>de</strong> <strong>de</strong>tectar a <strong>de</strong>scontinuida<strong>de</strong> <strong>de</strong> g(x), apesar <strong>de</strong> g(x) ser<br />

contínua por partes. Por causa <strong>de</strong> casos assim é que exigimos que f(x) = limt→x +f(t) ou<br />

f(x) = limt→x−f(t) para todo x ∈ D.<br />

A <strong>de</strong>finição (1) é genérica o suficiente para englobar várias classes <strong>de</strong> medidores <strong>de</strong><br />

suavida<strong>de</strong>. De fato, há medidores <strong>de</strong> suavida<strong>de</strong> baseados na interpolação polinomial,<br />

como a comparação com a aproximação polinomial e as diferenças divididas <strong>de</strong> Newton;<br />

há a medida da variação total, que, como o nome diz, usa a variação total da função; há<br />

também os medidores que se utilizam das séries <strong>de</strong> Fourier da função [10], [11] e medidores<br />

<strong>de</strong> suavida<strong>de</strong> que se baseiam em outros artifícios matemáticos (por exemplo, [12]). Por<br />

brevida<strong>de</strong>, apenas abordaremos a medida <strong>de</strong> variação total.<br />

2.2.1 Um exemplo: a medida da variação total<br />

Introduzida por Jiang e Shu [4], a medida <strong>de</strong> variação total é o medidor <strong>de</strong> suavida<strong>de</strong><br />

padrão para o WENO. Ela é baseada no conceito <strong>de</strong> variação total, ou TV. A variação<br />

total <strong>de</strong> uma função f no intervalo [a,b], é <strong>de</strong>finida como<br />

TV[f] = sup<br />

P<br />

<br />

i|xi,xi+1∈P<br />

|f(xi+1)−f(xi)|,<br />

on<strong>de</strong> P = {a = x0 < x1 < ... < xN = b} é uma partição <strong>de</strong> [a,b]. Po<strong>de</strong>-se mostrar que,<br />

se f é contínua por partes em [a,b], então<br />

TV[f] =<br />

b<br />

|f<br />

a<br />

′ (x)|dx = f ′ (x)L1 .<br />

19


2.2. INDICADORES DE SUAVIDADECAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

Aqui vamos usar a versão L 2 da variação total,<br />

Consi<strong>de</strong>re o estêncil<br />

TV L 2[f] =<br />

b<br />

a<br />

(f ′ (x)) 2 dx = f ′ (x) 2<br />

L 2.<br />

Sk = {xi+k−r+1,xi+k−r+2,...,xi+k}, k = 0,1,...,r −1<br />

e seja pk(x) o polinômio (<strong>de</strong> or<strong>de</strong>m até r−1) que interpola f em Sk. A medida <strong>de</strong> variação<br />

total <strong>de</strong> or<strong>de</strong>m r <strong>de</strong> f em Sk é <strong>de</strong>finida como<br />

βk =<br />

=<br />

r−1<br />

∆x<br />

n=1<br />

2n−1 TVL2[p (n)<br />

k ]<br />

r−1<br />

xi+ 1<br />

2<br />

∆x<br />

n=1 x<br />

i−1 2<br />

2n−1<br />

<br />

p (n)<br />

k (x)<br />

2 dx,<br />

on<strong>de</strong> p (n)<br />

k <strong>de</strong>nota a n-ésima <strong>de</strong>rivada <strong>de</strong> pk(x). Ou seja, βk é em essência uma aproximação<br />

da soma das variações totais das <strong>de</strong>rivadas <strong>de</strong> f. O termo ∆x 2n−1 na integral é apenas<br />

para remover termos <strong>de</strong>pen<strong>de</strong>ntes <strong>de</strong> ∆x na n-ésima <strong>de</strong>rivada <strong>de</strong> pk. No caso r = 3, a<br />

expressão para βk fica<br />

β0 = 13<br />

12 (fi−2 −2fi−1 +fi) 2 + 1<br />

4 (fi−2 −4fi−1 +3fi) 2<br />

β1 = 13<br />

12 (fi−1 −2fi +fi+1) 2 + 1<br />

4 (fi−1 −fi+1) 2<br />

β2 = 13<br />

12 (fi −2fi−1 +fi+2) 2 + 1<br />

4 (3i −4fi+1 +fi+2) 2 .<br />

A medida da variação total tem ainda a seguinte proprieda<strong>de</strong>, que provaremos na seção<br />

4.2.2: se f é contínua no domínio <strong>de</strong> Sk e não contém pontos críticos (isto é, pontos<br />

on<strong>de</strong> a <strong>de</strong>rivada se anula), então βk = O(∆x 2 ). Outra proprieda<strong>de</strong> é que se Sk contém<br />

20


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.3. LEIS DE CONSERVAÇÃO HIPERBÓLICAS<br />

alguma <strong>de</strong>scontinuida<strong>de</strong> <strong>de</strong> f então βk = O(1). É isto que nos permite utilizar a medida<br />

da variação total como um medidor <strong>de</strong> suavida<strong>de</strong>.<br />

2.3 Leis <strong>de</strong> conservação hiperbólicas<br />

Os métodos que <strong>de</strong>senvolveremos no capítulo 3, como o ENO e WENO, são <strong>de</strong>senvol-<br />

vidos para aproximar problemas da forma<br />

∂ ∂<br />

u+ f(u(x,t)) = 0,<br />

∂t ∂x<br />

que possui apenas uma variável u. No entanto, como vimos no primeiro capítulo, muitos<br />

dos mo<strong>de</strong>los que queremos aproximar numericamente <strong>de</strong>pen<strong>de</strong>m <strong>de</strong> diversas variáveis,<br />

como no caso do sistema <strong>de</strong> equações <strong>de</strong> Euler<br />

⎡ ⎤ ⎡<br />

⎢ ρ ⎥ ⎢ ρv<br />

⎢ ⎥ ⎢<br />

⎢ ρv<br />

⎥ + ⎢ ρv<br />

⎣ ⎦ ⎣<br />

E<br />

2 ⎤<br />

⎥<br />

+p<br />

⎥<br />

⎦<br />

v(E +p)<br />

t<br />

Observamos que cada linha do sistema <strong>de</strong>pen<strong>de</strong> <strong>de</strong> mais <strong>de</strong> uma variável, o que impe<strong>de</strong><br />

que os métodos que <strong>de</strong>finiremos a seguir sejam utilizados <strong>de</strong> maneira trivial. O que na<br />

verda<strong>de</strong> <strong>de</strong>sejamos é que cada linha possa conter informações <strong>de</strong> apenas uma variável, isto<br />

é, que o sistema esteja <strong>de</strong>sacoplado. Felizmente os sistemas lineares hiperbólicos po<strong>de</strong>m<br />

ser diagonalizados, <strong>de</strong> modo a reescrever o mesmo sistema com novas variáveis, estas por<br />

sua vez <strong>de</strong>sacopladas. Por esta razão é que o caráter hiperbólico das leis <strong>de</strong> conservação<br />

é tão importante para a resolução <strong>de</strong>ste tipo <strong>de</strong> problema.<br />

21<br />

x<br />

= 0.


2.3. LEIS DE CONSERVAÇÃO HIPERBÓLICAS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

Definição 2. Um sistema linear da forma<br />

ut +Aux = 0, (2.12)<br />

com u = (u1,u2,...,um) T , é dito hiperbólico se a matriz A = (aij) <strong>de</strong> dimensão m×m<br />

é diagonalizável com autovalores reais. Se os autovalores forem todos distintos, o sitema<br />

é dito estritamente hiperbólico.<br />

Chamaremos u <strong>de</strong> vetor das variáveis conservadas, e <strong>de</strong>notaremos os autovalores por<br />

λ1 ≤ λ2 ≤ ... ≤ λm.<br />

A matriz é diagonalizável se existem vetores não-nulos r1,r2,...,rm ∈ R m , ditos os<br />

autovetores <strong>de</strong> A, tais que<br />

Arp = λprp, p = 1,...,m<br />

e r1,r2,...,rm são linearmente in<strong>de</strong>pen<strong>de</strong>ntes. Neste caso, a matriz<br />

R = [r1|r2|...|rm]<br />

é não-singular, e possui uma inversa R −1 . Temos então que<br />

Λ = R −1 AR e A = RΛR −1 , (2.13)<br />

22


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.3. LEIS DE CONSERVAÇÃO HIPERBÓLICAS<br />

on<strong>de</strong><br />

⎡<br />

⎢<br />

Λ = ⎢<br />

⎣<br />

λ1<br />

λ2<br />

...<br />

λm<br />

⎤<br />

⎥ ≡ diag(λ1,λ2,...,λm).<br />

⎥<br />

⎦<br />

A importância <strong>de</strong>sta representação da matriz A está no <strong>de</strong>sacoplamento das variáveis.<br />

Quando escrevemos a equação (2.12) linha por linha, isto é,<br />

(u1) t +a11(u1) x +...+a1m(um) x = 0<br />

(u2) t +a21(u1) x +...+a2m(um) x = 0<br />

.<br />

(um) t +am1(u1) x +...+amm(um) x = 0,<br />

vemos que cada linha <strong>de</strong>pen<strong>de</strong> <strong>de</strong> mais <strong>de</strong> uma variável, a menos que a matriz A seja<br />

diagonal. Exatamente por isto é que queremos fazer uma mudança <strong>de</strong> base, <strong>de</strong> modo que<br />

matriz A seja "substituída" pela matriz diagonal Λ. Com efeito, fazendo uso das equações<br />

(2.12) e (2.13),<br />

ut +RΛR −1 ux = 0.<br />

Multiplicando à esquerda por R −1 e <strong>de</strong>finindo w = R −1 u,<br />

0 = R −1 ut +R −1 RΛR −1 ux<br />

= wt +Λwx.<br />

Como Λ é diagonal, obtemos um sistema <strong>de</strong>sacoplado <strong>de</strong> m variáveis, chamadas <strong>de</strong> variá-<br />

23


2.3. LEIS DE CONSERVAÇÃO HIPERBÓLICAS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

veis características,<br />

(wp) t +λp(wp) x = 0, p = 1,...,m.<br />

Observamos que como os autovalores λp são reais, as equações acima possuem sentido<br />

físico.<br />

Observação 1. Chamamos as novas variavéis w <strong>de</strong> características pois o sistema <strong>de</strong> equa-<br />

ções acima formam um sistema <strong>de</strong> equações <strong>de</strong> advecção, cuja solução é uma combinação<br />

linear <strong>de</strong> m ondas que viajam em velocida<strong>de</strong>s características λ1,...,λm.<br />

Até aqui consi<strong>de</strong>ramos A com coeficientes reais, mas po<strong>de</strong>mos expandir toda a nossa<br />

discussão para problemas da forma<br />

com<br />

e <strong>de</strong>finindo A como o Jacobiano F ′ (u),<br />

ut +F(u) x = 0, (2.14)<br />

⎡ ⎤<br />

⎢<br />

f1(u)<br />

⎥<br />

⎢ ⎥<br />

⎢ f2(u) ⎥<br />

F(u) = ⎢ ⎥,<br />

⎢ .<br />

⎥<br />

⎣ ⎦<br />

fm(u)<br />

⎡<br />

A(u) = F ′ ⎢<br />

(u) = ⎢<br />

⎣<br />

∂f1<br />

∂u1<br />

∂f2<br />

∂u1<br />

.<br />

∂fm<br />

∂u1<br />

24<br />

∂f1<br />

∂u2<br />

∂f2<br />

∂u2<br />

.<br />

∂fm<br />

∂u2<br />

...<br />

...<br />

...<br />

...<br />

∂f1<br />

∂um<br />

∂f2<br />

∂um<br />

.<br />

∂fm<br />

∂um<br />

⎤<br />

⎥<br />


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.3. LEIS DE CONSERVAÇÃO HIPERBÓLICAS<br />

Fazendo uso da regra da ca<strong>de</strong>ia,<br />

obtemos<br />

F(u) x = F ′ (u)u x ,<br />

ut +A(u)u x = 0.<br />

Como o sistema é hiperbólico, F ′ (u) possui m autovalores reais<br />

λ1(u) ≤ λ2(u) ≤ ... ≤ λm(u)<br />

e um conjunto completo <strong>de</strong> autovetores linearmente in<strong>de</strong>pen<strong>de</strong>ntes<br />

De maneira análoga a (2.13) po<strong>de</strong>mos obter<br />

r1(u),r2(u),...,rm(u).<br />

Λ(u) = R −1 (u)A(u)R(u) e A(u) = R(u)Λ(u)R −1 (u),<br />

e portanto, po<strong>de</strong>mos diagonalizar o sistema (2.14), obtendo novamente<br />

wt +Λwx = 0<br />

25


2.3. LEIS DE CONSERVAÇÃO HIPERBÓLICAS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

2.3.1 Equações <strong>de</strong> Euler<br />

As equações <strong>de</strong> Euler são um sistema hiperbólico, e mostraremos aqui como po<strong>de</strong>mos<br />

realizar o <strong>de</strong>sacoplamento. Relembrando mais uma vez,<br />

⎡ ⎤ ⎡<br />

⎢ ρ ⎥ ⎢ ρv<br />

⎢ ⎥ ⎢<br />

⎢ ρv ⎥ + ⎢ ρv<br />

⎣ ⎦ ⎣<br />

E<br />

2 ⎤<br />

⎥<br />

+p ⎥<br />

⎦<br />

v(E +p)<br />

t<br />

on<strong>de</strong> ρ é a <strong>de</strong>nsida<strong>de</strong>, p é a pressão, u é a velocida<strong>de</strong> e E é a energia total por unida<strong>de</strong> <strong>de</strong><br />

volume,<br />

<br />

1<br />

E = ρ<br />

2 u2 <br />

+e ,<br />

x<br />

= 0<br />

com e sendo a energia interna específica dada pela equação <strong>de</strong> estado<br />

Para gases i<strong>de</strong>ais sua expressão é dada por<br />

e γ = cp<br />

cv<br />

som como<br />

e = e(ρ,p).<br />

e =<br />

p<br />

(γ −1)ρ ,<br />

<strong>de</strong>nota a razão <strong>de</strong> calor específico. Po<strong>de</strong>mos também escrever a velocida<strong>de</strong> do<br />

a =<br />

γp<br />

ρ .<br />

26


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.3. LEIS DE CONSERVAÇÃO HIPERBÓLICAS<br />

Comparando as equações <strong>de</strong> Euler com (2.12), temos<br />

⎡ ⎤<br />

⎢ ρ ⎥<br />

⎢ ⎥<br />

u = ⎢ ρv<br />

⎥<br />

⎣ ⎦<br />

E<br />

=<br />

⎡ ⎤<br />

u1 ⎢ ⎥<br />

⎢ ⎥<br />

⎢ ⎥<br />

⎢ u2 ⎥<br />

⎣ ⎦<br />

u3<br />

,<br />

⎡ ⎤<br />

f1 ⎢ ⎥<br />

⎢ ⎥<br />

F(u) = ⎢ ⎥<br />

⎢ f2 ⎥<br />

⎣ ⎦ =<br />

⎡<br />

⎢ ρu<br />

⎢ ρv<br />

⎣<br />

2 ⎤<br />

⎥<br />

+p<br />

⎥<br />

⎦<br />

v(E +p)<br />

=<br />

⎡<br />

⎢<br />

⎣<br />

f3<br />

e assim calculamos a matriz jacobiana, que é da forma<br />

⎡<br />

⎢<br />

A(u) = ⎢<br />

⎣<br />

− γu2u3<br />

u 2 1<br />

u2<br />

1<br />

2 (3−γ)u2 2 +(γ −1)u3 u1<br />

γ u2<br />

u1 u3 − 1<br />

2 (γ −1)u3 2<br />

u 2 1<br />

⎤<br />

⎥<br />

⎦ ,<br />

0<br />

2 u2<br />

u1<br />

3 γu3 +(γ −1)<br />

1<br />

<br />

u2 (3−γ) u1<br />

⎤<br />

0<br />

⎥<br />

γ −1 ⎥<br />

2 ⎦<br />

γ<br />

.<br />

−1(γ −3) 2<br />

u2<br />

u1<br />

u1<br />

3 − (γ −1) 2<br />

Observação 2. Observamos também por inspeção que as equações <strong>de</strong> Euler com gás i<strong>de</strong>al<br />

satisfazem a proprieda<strong>de</strong> da homogeneida<strong>de</strong>, isto é,<br />

F(u) = A(u)u.<br />

u2<br />

u1<br />

Usando a expressão <strong>de</strong> A(u) e o polinômio característico, resolvemos<br />

que leva a<br />

|A−λI| = 0,<br />

λ1 = u−a, λ2 = u, λ3 = u+a,<br />

27<br />

u2<br />

u1


2.4. MÉTODOS NUMÉRICOS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

com os autovetores correspon<strong>de</strong>ntes<br />

r1 =<br />

⎡ ⎤<br />

⎢<br />

1<br />

⎥<br />

⎢ ⎥<br />

⎢ u−a ⎥<br />

⎣ ⎦<br />

H −ua<br />

, r2<br />

⎡<br />

⎢<br />

= ⎢<br />

⎣<br />

on<strong>de</strong> H é a entalpia e é <strong>de</strong>finida como<br />

2.4 Métodos numéricos<br />

H =<br />

1<br />

u<br />

1<br />

2 u2<br />

E +p<br />

.<br />

ρ<br />

⎤<br />

⎥<br />

⎦ , r3<br />

⎡ ⎤<br />

⎢<br />

1<br />

⎥<br />

⎢ ⎥<br />

= ⎢ u+a ⎥<br />

⎣ ⎦<br />

H +ua<br />

,<br />

Nesta seção veremos uma maneira geral <strong>de</strong> se resolver numericamente equações <strong>de</strong> leis<br />

<strong>de</strong> conservação em uma dimensão espacial. Começaremos estudando a forma geral <strong>de</strong>stas<br />

equações e mostrando que os esquemas vistos nesta dissertação usam a mesma ferramenta<br />

para a integração temporal, o método <strong>de</strong> Runge-Kutta TVD <strong>de</strong> or<strong>de</strong>m 3, mas utilizam<br />

estratégias diferentes para a parte espacial.<br />

A seguir, veremos uma maneira bem simples <strong>de</strong> se aproximar a parte espacial, chamada<br />

<strong>de</strong> aproximação por estêncil fixo. Apesar <strong>de</strong> ele gerar oscilações na solução numérica, o<br />

estudo <strong>de</strong>ste método é importante para introduzir alguns conceitos e notações que serão<br />

usados no capítulo 3. Depois veremos algumas proprieda<strong>de</strong>s que um método <strong>de</strong>ve possuir<br />

para resolver a<strong>de</strong>quadamente uma lei <strong>de</strong> conservação. Por fim, veremos a causa das<br />

oscilações nas soluções numéricas obtidas pelos esquemas <strong>de</strong> estêncil fixo.<br />

28


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.4. MÉTODOS NUMÉRICOS<br />

2.4.1 Resolução numérica <strong>de</strong> leis <strong>de</strong> conservação<br />

As equações <strong>de</strong> lei <strong>de</strong> conservação são da forma<br />

∂ ∂<br />

u(x,t)+ f(u(x,t)) = 0. (2.15)<br />

∂t ∂x<br />

com condição inicial e <strong>de</strong> fronteira <strong>de</strong>finidas em cada problema. Na resolução numérica<br />

<strong>de</strong>sta equação vamos <strong>de</strong>finir um espaçamento ∆x e trabalhar com uma malha <strong>de</strong> pontos<br />

x0 < x1 < ... < xM<br />

xi+1 = xi +∆x, i = 0,...,M.<br />

Também será útil <strong>de</strong>finir os pontos <strong>de</strong> interface<br />

x i± 1<br />

2<br />

= xi ± ∆x<br />

, i = 0,...,M.<br />

2<br />

Além disto vamos calcular a aproximação da solução u(x,t) somente em um conjunto<br />

finito e discreto <strong>de</strong> instantes, não necessariamente uniformes,<br />

t0 < t1 < ... < tN.<br />

Na discussão <strong>de</strong>sta seção não nos preocuparemos com implicações da condição <strong>de</strong> fronteira<br />

na discretização.<br />

Fixando a equação (2.15) em xi e tn, temos<br />

du(x,t)<br />

dt<br />

<br />

<br />

<br />

x=xi,tn<br />

= − ∂f(u(x,t))<br />

∂x<br />

29<br />

<br />

<br />

<br />

x=xi,tn


2.4. MÉTODOS NUMÉRICOS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

ou, em uma notação mais simples,<br />

<br />

du<br />

<br />

dt<br />

t=tn<br />

= − ∂f(u(x,tn))<br />

∂x<br />

<br />

<br />

<br />

x=xi<br />

(2.16)<br />

Os métodos vistos neste texto seguem a mesma receita para resolver (2.16). O membro<br />

esquerdo da igualda<strong>de</strong>, a parte temporal, será resolvida usando-se o método <strong>de</strong> Runge-<br />

Kutta <strong>de</strong> terceira or<strong>de</strong>m.<br />

Notação 1. Chamaremos <strong>de</strong> L(u) o operador que aproxima a parte espacial <strong>de</strong> (2.16):<br />

L(u(xi,tn)) = − ∂f(u(x,tn))<br />

∂x<br />

<br />

<br />

<br />

x=xi<br />

+O(∆x r ) (2.17)<br />

O método <strong>de</strong> Runge-Kutta funciona assim: a partir do tempo atual tn obtemos o<br />

próximo estado u n+1 em três passos:<br />

u(I) = u n +∆tL(u n ) (2.18)<br />

u(II) = 3<br />

4 un + 1<br />

4 u(I) + 1<br />

4 ∆tL(u(I)) (2.19)<br />

u n+1 = 1<br />

3 un + 2<br />

3 u(I) + 2<br />

3 ∆tL(u(II)) (2.20)<br />

Desta maneira, temos uma forma <strong>de</strong> obter avanços no tempo in<strong>de</strong>pen<strong>de</strong>ntemente do<br />

método que usemos para aproximar a parte espacial <strong>de</strong> (2.16). Por causa disto, no restante<br />

<strong>de</strong>sta dissertação só nos preocuparemos com a parte espacial. É nela que resi<strong>de</strong> a diferença<br />

entre um método comum e um método essencialmente não-oscilatório.<br />

2.4.2 Aproximação por estêncil fixo<br />

Agora veremos uma maneira simples <strong>de</strong> se aproximar o lado direito <strong>de</strong> (2.17).<br />

30


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.4. MÉTODOS NUMÉRICOS<br />

Notação 2. Chamaremos<br />

f(x,t) ≡ f(u(x,t)).<br />

Quando fixarmos t e não houver confusão sobre seu valor, <strong>de</strong>notaremos simplesmente<br />

e<br />

f(x) ≡ f(x,t)<br />

f(xi) ≡ fi<br />

Assim, por (2.17), o que estamos querendo achar é um operador L(u) tal que<br />

L(u(xi,tn)) = −f ′ (xi)+O(∆x r ), i = 0,...,M.<br />

Toda a informação que temos são os valores pontuais<br />

f0,f1,...,fi,...fM.<br />

A partir <strong>de</strong>les, é possível criar uma aproximação polinomial para f ′ (xi). Para isto,<br />

vamos usar uma função especial, chamada <strong>de</strong> fluxo numérico.<br />

Definição 3. O fluxo numérico h(x) é a função que satisfaz<br />

Denotaremos<br />

f(x) = 1<br />

∆x<br />

x+ 2<br />

∆x x− ∆x<br />

h(ξ)dξ (2.21)<br />

2<br />

h(xi) ≡ hi. (2.22)<br />

Em resumo,hé<strong>de</strong>finida <strong>de</strong> tal maneira quef ′ (xi) é a média <strong>de</strong>hno intervalo[x i− 1<br />

2<br />

31<br />

x 1<br />

i+ ]<br />

2


2.4. MÉTODOS NUMÉRICOS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

para todo i. Por causa disto, temos a interessante proprieda<strong>de</strong> <strong>de</strong> que a <strong>de</strong>rivada <strong>de</strong> f em<br />

xi é exatamente (e não aproximadamente) uma diferença finita <strong>de</strong> h:<br />

f ′ (xi) = hi+ 1 −h 1<br />

i− 2 2.<br />

(2.23)<br />

∆x<br />

Infelizmente, não sabemos nada sobre o valor h 1<br />

i+ . Mas é fácil achar aproximações para<br />

2<br />

ele. O que faremos agora é obter uma aproximação polinomial para h 1<br />

i+ , <strong>de</strong> or<strong>de</strong>m r, a<br />

2<br />

partir <strong>de</strong> r valores pontuais <strong>de</strong> f. Antes disto, iremos <strong>de</strong>finir um objeto que será muito<br />

útil <strong>de</strong> aqui por diante.<br />

Definição 4. Um estêncil é um operador que associa um ponto a um conjunto <strong>de</strong> pontos.<br />

Nesta dissertação, usaremos a seguinte família <strong>de</strong> estênceis:<br />

S r,k,i+ 1<br />

2<br />

= {xi+k−r+1,xi+k−r+2,...,xi+k}<br />

Nesta notação, r é o número <strong>de</strong> pontos do estêncil, i+ 1<br />

2<br />

é o índice do ponto <strong>de</strong> referência<br />

e k é o índice <strong>de</strong> <strong>de</strong>slocamento lateral do estêncil. Por vezes, apenas o índice k será usado<br />

para i<strong>de</strong>ntificar o estêncil.<br />

É possível encontrar os coeficientes do polinômio que aproxima h 1<br />

i+ usando os pontos<br />

2<br />

do estêncil S 1<br />

r,k,i+ . Um pouco <strong>de</strong> cálculo usando os resultados da seção 2.1.1 (vi<strong>de</strong> [5])<br />

2<br />

nos fornecem os coeficientes<br />

que satisfazem<br />

cr,k,j =<br />

r<br />

j=1<br />

r<br />

m=j<br />

r<br />

r<br />

n=0,n=m p=0,p=n,m<br />

r<br />

n=0,n=m<br />

(r−k −p)<br />

(m−n)<br />

cr,k,jv(xi+k−r+j) = h 1<br />

i+ +O(∆x<br />

2<br />

r ).<br />

32<br />

(2.24)


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.4. MÉTODOS NUMÉRICOS<br />

Definição 5. Definimos a aproximação pelo estêncil S 1<br />

r,k,i+ ,<br />

2<br />

ˆ fk r,i+ 1<br />

2<br />

ˆf k<br />

r,i+ 1<br />

2<br />

=<br />

r<br />

j=1<br />

cr,k,jvi+k−r+j.<br />

, como<br />

O índice r indica a or<strong>de</strong>m da aproximação, k indica o <strong>de</strong>slocamento lateral e i+ 1<br />

2 <strong>de</strong>nota<br />

que esta é uma aproximação para h 1<br />

i+ .<br />

2<br />

Note que como os coeficientes cr,k,j não <strong>de</strong>pen<strong>de</strong>m <strong>de</strong> i (por (2.24)), usamos os mesmos<br />

coeficientes para obter ˆ f k<br />

r,i− 1<br />

2<br />

:<br />

ˆf k<br />

r,i− 1<br />

2<br />

=<br />

r<br />

j=1<br />

cr,k,jfi+k−r+j−1.<br />

Agora já possuímos conhecimento o suficiente para construir o operador L(u). Primei-<br />

ramente fixamos um <strong>de</strong>slocamento k entre 0 e r −1, para que xi sempre esteja presente<br />

no estêncil S 1<br />

r,k,i+ . Depois fazemos<br />

2<br />

L(u(xi,tn) = −<br />

Po<strong>de</strong>mos verificar que L(u) assim <strong>de</strong>finida satisfaz<br />

L(u(xi,tn) = −<br />

ˆf k<br />

r,i+ 1 −<br />

2<br />

ˆ fk r,i− 1<br />

2,<br />

i = 0,...,M.<br />

∆x<br />

<br />

h 1<br />

i+ +O(∆x<br />

2<br />

r <br />

) − h 1<br />

i− +O(∆x<br />

2<br />

r <br />

)<br />

∆x<br />

(2.25)<br />

= −f ′ (xi)+O(∆x r ). (2.26)<br />

Observação 3. Pela <strong>de</strong>dução que fizemos, era para a expressão (2.25) ser apenas da<br />

or<strong>de</strong>m <strong>de</strong> ∆x r−1 <strong>de</strong>vido ao <strong>de</strong>nominador ∆x. No entanto, como estamos usando o mesmo<br />

33


2.4. MÉTODOS NUMÉRICOS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

<strong>de</strong>slocamento k nas duas aproximações, temos um cancelamento que faz com que<br />

k = r<br />

2<br />

ˆf k<br />

r,i+ 1 −<br />

2<br />

ˆ f k<br />

r,i− 1<br />

2<br />

= f ′ (xi)∆x+O(∆x r+1 )<br />

Certas escolhas <strong>de</strong> k recebem nomes especiais. Quando r é par, a aproximação com<br />

é chamada <strong>de</strong> aproximação central. Quando r é ímpar, a aproximação com k = r−1<br />

2<br />

é chamada <strong>de</strong> aproximação upstream central.<br />

2.4.3 O que torna um método conservativo?<br />

Falaremos agora sobre duas peculiarida<strong>de</strong>s das leis <strong>de</strong> conservação que impõem restri-<br />

ções aos esquemas numéricos a serem usados. <strong>Não</strong> as discutiremos a fundo; para isto, [6]<br />

é uma boa referência.<br />

Primeiramente, quando uma equação <strong>de</strong> lei <strong>de</strong> conservação possui uma solução fraca<br />

u, po<strong>de</strong> ser que um método numérico obtenha uma solução numérica que não é uma<br />

aproximação <strong>de</strong> u. Para que possamos garantir que toda solução numérica obtida por<br />

um método seja uma aproximação <strong>de</strong> uma solução analítica, <strong>de</strong>vemos nos assegurar que<br />

o método é conservativo.<br />

Definição 6. Um esquema <strong>de</strong> diferenças finitas é dito conservativo se existe uma função<br />

g : W −→ R Lipschitz contínua tal que:<br />

1. O operador L(u) po<strong>de</strong> ser escrito na forma conservativa<br />

L(u) = − g(xi+k−r+1,xi+k−r+2,...,xi+k)−g(xi+k−r,xi+k−r+1,...,xi+k−1)<br />

∆x<br />

2. g é consistente com v, isto é,<br />

(2.27)<br />

g(x,x,...,x) ≡ f(x) (2.28)<br />

34


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.4. MÉTODOS NUMÉRICOS<br />

Po<strong>de</strong>mos verificar que os esquemas <strong>de</strong> estêncil fixo que vimos são conservativos. Basta<br />

fazermos<br />

g(ξ1,ξ2,...,ξr) =<br />

r<br />

j=1<br />

cr,k,jf(ξj).<br />

Como os mesmos coeficientes cr,k,j são usados para obter ˆv r,k,i+ 1<br />

2<br />

L(u) = −<br />

ˆf k<br />

r,i+ 1 −<br />

2<br />

ˆ fk r,i− 1<br />

2<br />

∆x<br />

e ˆv 1<br />

r,k,i− , é fácil ver que<br />

2<br />

= − g(xi+k−r+1,xi+k−r+2,...,xi+k)−g(xi+k−r,xi+k−r+1,...,xi+k−1)<br />

.<br />

∆x<br />

Em segundo lugar, as equações <strong>de</strong> leis <strong>de</strong> conservação não-lineares po<strong>de</strong>m ter mais <strong>de</strong><br />

uma solução fraca para um dado problema. Entretanto, há apenas uma única solução<br />

fraca fisicamente relevante. Trata-se da solução-limite da equação<br />

ut +f(u)x = −κuxx<br />

quando κ −→ 0 (isto é, quando o termo viscoso −κuxx vai a zero). Esta solução-limite<br />

é chamada <strong>de</strong> solução fraca entropicamente correta. Uma maneira <strong>de</strong> se garantir que<br />

um método só obtenha soluções fisicamente relevantes é estabelecer condições adicionais<br />

ao problema, chamadas <strong>de</strong> condições <strong>de</strong> entropia, das quais apenas citamos a existência.<br />

É possível verificar que todos os esquemas vistos nesta dissertação são entropicamente<br />

corretos, graças à partição <strong>de</strong> fluxo <strong>de</strong> Lax-Friedrichs, conforme a indicação em [5].<br />

2.4.4 Oscilações<br />

O método <strong>de</strong> diferenças finitas <strong>de</strong> estêncil fixo visto aqui funciona bem quando não há<br />

<strong>de</strong>scontinuida<strong>de</strong>s na solução. Caso contrário, o presente método gera oscilações numéricas.<br />

Vejamos o seguinte exemplo, que ilustrará este fato.<br />

35


2.4. MÉTODOS NUMÉRICOS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

Exemplo 1. A equação do transporte<br />

ut +ux = 0 (2.29)<br />

(que é uma equação da forma (2.15) com f(u) = u) com condição incial dada pela função<br />

<strong>de</strong> salto<br />

tem como solução exata a função<br />

Portanto, em t = 2,<br />

⎧<br />

⎪⎨ 0, se x < 0<br />

u0(x) =<br />

⎪⎩ 1, se x ≥ 0<br />

u(x,t) = u0(x−t).<br />

⎧<br />

⎪⎨ 0, se x < 2<br />

u(x,2) = u0(x−2) =<br />

⎪⎩ 1, se x ≥ 2<br />

(2.30)<br />

Esta mesma equação foi resolvida numericamente usanto-se o esquema upstream central<br />

<strong>de</strong> quinta or<strong>de</strong>m (r = 5 e k = 2). Usamos ∆x = 1<br />

128<br />

domínio [−1,3]. A solução obtida em t = 2 é mostrada na figura abaixo.<br />

(FIGURA)<br />

e condição <strong>de</strong> fronteira fixa no<br />

Como po<strong>de</strong>mos ver, nas proximida<strong>de</strong>s <strong>de</strong> x = 2, on<strong>de</strong> seria a posição do choque por<br />

(2.30), a solução apresenta oscilações significativas, com um pico <strong>de</strong> aproximadamente<br />

0,1 que é bem gran<strong>de</strong> se comparado a ∆x ≃ 0,008.<br />

Estas oscilações são <strong>de</strong>vidas ao fenômeno <strong>de</strong> Gibbs dos métodos espectrais. Elas<br />

ocorrem porque, <strong>de</strong>vido ao estêncil ser fixo, inevitavelmente interpolamos a função em um<br />

domínio que contém a <strong>de</strong>scontinuida<strong>de</strong>. Pelo teorema seguinte vemos que a interpolação<br />

36


CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS 2.4. MÉTODOS NUMÉRICOS<br />

em um domínio com uma <strong>de</strong>scontinuida<strong>de</strong> gera erros da or<strong>de</strong>m do tamanho do salto da<br />

função.<br />

Teorema 4. Seja ∆x <strong>de</strong>finido como em (2.7). Seja p o maior valor tal que f ∈ C p [x0,xk]<br />

(consi<strong>de</strong>re que p = −1 se f é <strong>de</strong>scontínua e que p = ∞ se f ∈ C ∞ [x0,xk]). Então<br />

para todo x ∈ [x0,xk].<br />

⎧<br />

⎪⎨ O<br />

f(x)−p(x) =<br />

⎪⎩<br />

∆xp+1 [f (p+1) ] , se −1 ≤ p ≤ k −1<br />

<br />

O ∆xk+1 max f<br />

x0≤ξ≤xk<br />

(k+1) <br />

(ξ) , se p ≥ k<br />

A <strong>de</strong>monstração <strong>de</strong>ste teorema é uma aplicação direta <strong>de</strong> séries <strong>de</strong> Taylor. Veja indi-<br />

cação em [9].<br />

Portanto, para que não tenhamos soluções oscilatórias <strong>de</strong>vemos evitar interpolações<br />

em estênceis <strong>de</strong>scontínuos. No próximo capítulo veremos os esquemas essencialmente<br />

não-oscilatórios e como eles conseguem evitar o uso <strong>de</strong> estênceis <strong>de</strong>scontínuos.<br />

37


2.4. MÉTODOS NUMÉRICOS CAPÍTULO 2. TÓPICOS INTRODUTÓRIOS<br />

38


Capítulo 3<br />

Métodos essencialmente<br />

não-oscilatórios<br />

No capítulo anterior, vimos que o método para resolução numérica para leis <strong>de</strong> con-<br />

servação unidimensional que utilizava aproximações <strong>de</strong> estêncil fixo gerava oscilações nas<br />

vizinhanças da <strong>de</strong>scontinuida<strong>de</strong>. Para lidarmos corretamente com soluções <strong>de</strong>scontínuas<br />

é necessário adotar uma outra estratégia: ao invés <strong>de</strong> usarmos sempre o mesmo estêncil<br />

para aproximarh i+ 1<br />

2<br />

em toda a malha {xi}, po<strong>de</strong>mos imaginar um esquema que adaptasse<br />

o estêncil em função da localização das <strong>de</strong>scontinuida<strong>de</strong>s.<br />

A adaptabilida<strong>de</strong> dos estênceis é a principal característica da classe <strong>de</strong> métodos cha-<br />

mada <strong>de</strong> esquemas essencialmente não-oscilatórios. O nome se <strong>de</strong>ve ao método <strong>de</strong>no-<br />

minado essentially non-oscillatory schemes (ENO), proposto no artigo [1] <strong>de</strong> Harten,<br />

Enquist, Osher e Chakravarthy. Mais tar<strong>de</strong>, outros métodos baseados no ENO surgiram.<br />

O mais importante <strong>de</strong>les foi o esquema não-oscilatório pon<strong>de</strong>rado (WENO, do original em<br />

inglês weighted essentially non-oscillatory), <strong>de</strong>senvolvidos nos artigos [2] <strong>de</strong> Liu, Osher e<br />

Chan e [4] <strong>de</strong> Jiang e Shu. Por sua importância e pioneirismo na história dos esque-<br />

39


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

mas essencialmente não-oscilatórios, chamaremos o WENO <strong>de</strong>senvolvido com os pesos <strong>de</strong><br />

Jiang-Shu [4] <strong>de</strong> WENO clássico ou WENO-JS. Recentemente, o artigo [3] <strong>de</strong> Henrick,<br />

Aslam e Powers lançou uma nova luz sobre o WENO, com o <strong>de</strong>senvolvimento do WENO<br />

mapeado ou simplesmente WENO-M.<br />

Na primeira seção <strong>de</strong>ste capítulo, <strong>de</strong>screveremos o método ENO. Este método escolhe<br />

o estêncil on<strong>de</strong> a função é mais regular, <strong>de</strong>ntre todos os estênceis disponíveis no domínio, e<br />

o utiliza na aproximação <strong>de</strong> h 1<br />

i+ . Deste modo, evita-se a interpolação através <strong>de</strong> estênceis<br />

2<br />

<strong>de</strong>scontínuos, o que impe<strong>de</strong> que haja oscilações na solução numérica.<br />

Na seção seguinte, veremos dois métodos, o WENO clássico e o WENO mapeado.<br />

Mostraremos como WENO consegue aumentar a or<strong>de</strong>m <strong>de</strong> convergência em relação ao<br />

ENO, ao fazer uma combinação das aproximações em cada um dos estênceis do domínio<br />

ao invés <strong>de</strong> utilizar apenas um estêncil na aproximação. A combinação das aproximações<br />

nos estênceis é feita atribuindo pesos a elas fazendo uma soma po<strong>de</strong>rada. Estes pesos<br />

são construídos <strong>de</strong> maneira a ficarem muito próximos, num domínio contínuo, dos pesos<br />

i<strong>de</strong>ais - nome dado às constantes que permitem que uma combinação <strong>de</strong> aproximações em<br />

r estênceis consecutivos <strong>de</strong> r pontos dê uma aproximação <strong>de</strong> or<strong>de</strong>m n = 2r−1. Por outro<br />

lado, o peso relacionado a um estêncil <strong>de</strong>scontínuo <strong>de</strong>ve ser bem próximo <strong>de</strong> zero, para que<br />

se emule o comportamento do ENO em vizinhanças <strong>de</strong> <strong>de</strong>scontinuida<strong>de</strong>s. Deste modo,<br />

enquanto o método ENO, que utiliza r estênceis na escolha, é <strong>de</strong> or<strong>de</strong>m r, o WENO, que<br />

utiliza os mesmos r estênceis na aproximação, é <strong>de</strong> or<strong>de</strong>m 2r −1.<br />

Estudaremos o WENO clássico, e mostraremos duas falhas na construção dos pesos<br />

que provocam perdas <strong>de</strong> or<strong>de</strong>ns <strong>de</strong> convergência. A primeira <strong>de</strong>las está nas condições<br />

impostas aos pesos, que não são suficientes para garantir a or<strong>de</strong>m ótima ao esquema em<br />

domínios suaves. A segunda falha está no medidor <strong>de</strong> suavida<strong>de</strong> utilizado pelo WENO,<br />

que está intimamente ligado ao valor dos pesos. Em pontos críticos, i.e., em pontos<br />

on<strong>de</strong> a <strong>de</strong>rivada se anula, os indicadores <strong>de</strong> suavida<strong>de</strong> não possuem uma proprieda<strong>de</strong><br />

40


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.1. O MÉTODO ENO<br />

necessária para garantir a or<strong>de</strong>m ótima naquela vizinhança. Uma análise das séries <strong>de</strong><br />

Taylor do valor dos medidores <strong>de</strong> suavida<strong>de</strong> nos mostra esse resultado e, além disto, indica<br />

que, quanto maior for a or<strong>de</strong>m do ponto crítico, i.e., quanto mais <strong>de</strong>rivadas se anulem<br />

simultaneamente), piores serão os pesos obtidos.<br />

O WENO mapeado, visto logo em seguida, introduz uma modificação ao esquema<br />

clássico que corrige a primeira falha em todos os pontos e a segunda em boa parte dos<br />

pontos críticos, excetuando-se aqueles em que a or<strong>de</strong>m do ponto crítico é maior ou igual<br />

que r −1.<br />

Na terceira seção, veremos um novo esquema, <strong>de</strong>nominado WENO-Z. Este WENO<br />

utiliza uma fórmula diferente da fórmula clássica <strong>de</strong> Jiang-Shu. A fórmula do WENO-Z<br />

não possui a primeira falha do esquema clássico, e garante a or<strong>de</strong>m ótima em regiões<br />

contínuas <strong>de</strong> <strong>de</strong>rivada não-nula sem a necessida<strong>de</strong> <strong>de</strong> um mapeamento, o que o torna mais<br />

eficiente em termos computacionais. Além disto, mostraremos que o WENO-Z atribui<br />

um peso relativamente maior aos estênceis <strong>de</strong>scontínuos, acarretando um método menos<br />

dissipativo. Os resultados preliminares para o WENO-Z se mostraram superiores aos<br />

do WENO clássico e comparáveis ao WENO mapeado, ganhando do último com uma<br />

vantagem estreita na maior parte dos casos.<br />

3.1 O método ENO<br />

No capítulo anterior vimos que um esquema <strong>de</strong> estêncil fixo <strong>de</strong> or<strong>de</strong>m r escolhe um<br />

estêncil Sk,<br />

Sk = {xi+k−r+1,xi+k−r+2,...,xi+k}, (3.1)<br />

41


3.1. O MÉTODO CAPÍTULO ENO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

com 0 ≤ k ≤ r−1, e para todo xi utiliza sempre a aproximação polimonial<br />

ˆf k<br />

i+ 1<br />

2<br />

r−1<br />

= ckjfi−k+j, (3.2)<br />

j=1<br />

L(ui) = −<br />

ˆf k<br />

i+ 1 −<br />

2<br />

ˆ fk i− 1<br />

2.<br />

∆x<br />

Isto implica que se acaso a função f for <strong>de</strong>scontínua então certamente realizamos uma<br />

interpolação através <strong>de</strong> um estêncil <strong>de</strong>scontínuo. Como vimos, esta é a causa da oscilação<br />

das soluções <strong>de</strong>scontínuas obtidas pelos métodos <strong>de</strong> estêncil fixo.<br />

O método ENO também se baseia nas aproximações polinomiais como em (3.2). A<br />

diferença é que o ENO possui uma maneira <strong>de</strong> se adaptar aos estênceis em função das<br />

<strong>de</strong>scontinuida<strong>de</strong>s. Partimos do princípio <strong>de</strong> que, para cada ponto xi da malha há r<br />

estênceis possíveis que po<strong>de</strong>mos escolher para obtermos L(ui) :<br />

S0,S1,...,Sr−1.<br />

Então o que fazemos é escolher o melhor <strong>de</strong>ntre os r candidatos. Mas como fazemos<br />

para saber qual é o melhor. Po<strong>de</strong>mos, por exemplo, aplicar um medidor <strong>de</strong> suavida<strong>de</strong> em<br />

cada um dos estênceis e escolher o que proporcionar o menor valor absoluto no medidor.<br />

Isto é quase o que o método ENO faz.<br />

Na verda<strong>de</strong>, o ENO faz o seguinte: começamos com um estêncil <strong>de</strong> um ponto, S 1 =<br />

(xi). Daí usamos o medidor <strong>de</strong> suavida<strong>de</strong> nos estênceis (xi−1,xi) e (xi,xi+1). Se<br />

|M(xi−1,xi)| ≤ |M(xi,xi+1)|,<br />

42


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.1. O MÉTODO ENO<br />

então <strong>de</strong>finimos o estêncil <strong>de</strong> 2 pontos como S 2 = (xi=1,xi). Caso contrário, se<br />

|M(xi−1,xi)| > |M(xi,xi+1)|,<br />

fazemos S 2 = (xi,xi+1). Repetimos o processo até o j-ésimo passo, quando temos um<br />

estêncil <strong>de</strong>j pontos S j = (xi−l,...,xi+m). Daí obtemos um estêncil d n+1 pontos fazendo<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

|M(xi−l−1,...,xi+m)| ≤ |M(xi−l,...,xi+m+1)| =⇒ S j+1 = (xi−l−1,...,xi+m)<br />

|M(xi−l−1,...,xi+m)| > |M(xi−l,...,xi+m+1)| =⇒ S j+1 = (xi−l,...,xi+m+1)<br />

(3.3)<br />

Prosseguiremos assim até que tenhamos construído o estêncil S r . Depois usamos a apro-<br />

ximação do estêncil Sr para obtermos ˆ f 1<br />

i+ .<br />

2<br />

O ENO original utiliza como medidor <strong>de</strong> suavida<strong>de</strong> as diferenças divididas por causa<br />

<strong>de</strong> sua eficiência computacional (não entraremos em <strong>de</strong>talhes sobre este medidor), mas<br />

em tese qualquer outro medidor po<strong>de</strong>ria ser utilizado.<br />

Vamos agora mostrar algumas proprieda<strong>de</strong>s do método ENO. Consi<strong>de</strong>reIi = [x 1<br />

i− ,x 1<br />

i+ ]<br />

2 2<br />

e o polinômio <strong>de</strong>finido como<br />

pi(x) =<br />

r<br />

cki,jf(x+(j +ki −r)∆x),<br />

j=1<br />

on<strong>de</strong> ki é tal que pi(xi) = ˆ f 1<br />

i+ . Se f é contínua no intervalo Ii, po<strong>de</strong>mos dizer que<br />

2<br />

pi(x) = h(x)+O(∆x r ), x ∈ Ii.<br />

Caso contrário, se f for <strong>de</strong>scontínua no intervalo Ii, po<strong>de</strong>mos dizer que pi(x) é monótona<br />

43


3.1. O MÉTODO CAPÍTULO ENO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

em Ii. Além, disso, pi(x) é <strong>de</strong> variação total limitada, i.e.,<br />

on<strong>de</strong> P = {x i− 1<br />

2<br />

TV[pi] = sup<br />

P<br />

<br />

j|xj,xj+1∈P<br />

|pi(xj+1)−pi(xj)| < ∞<br />

= x0 < x1 < ... < xN = x 1<br />

i+ } é uma partição <strong>de</strong> Ii. Em outras palavras,<br />

2<br />

existe uma função z(x) que satisfaz<br />

em toda célula Ii tal que<br />

z(x) = pi(x)+O(∆x r ), x ∈ Ii<br />

TV[z] ≤ TV[f].<br />

Em outras palavras, a proprieda<strong>de</strong> acima nos diz que o esquema ENO é <strong>de</strong> variação total<br />

limitada, o que justifica a ausência <strong>de</strong> oscilações significativas nas suas soluções e é a razão<br />

do nome "essencialmente não-oscilatório".<br />

Procuramos investigar o caráter conservativo do ENO, mas uma dúvida persiste. Por<br />

construção, o ENO po<strong>de</strong> utilizar estênceis diferentes para obter ˆ f i+ 1<br />

2<br />

e ˆ f 1<br />

i− . Neste caso,<br />

2<br />

o esquema ainda é conservativo? Se for, isto quer dizer que para qualquer 0 ≤ k ≤ r −1<br />

existe uma função g tal que<br />

e<br />

ˆf 1<br />

i+ −<br />

2<br />

ˆ f 1<br />

i−2 ∆x<br />

= g(xi−r+1,...,xi+r−1)−g(xi−r,...,xi+r−2)<br />

∆x<br />

g(x,x,...,x) = v(x).<br />

Embora tenhamos motivos para acreditar que o ENO seja conservativo (até porque<br />

não conseguimos até agora construir nenhum contra-exemplo), não encontramos nenhuma<br />

44


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

referência contendo a prova <strong>de</strong>sta afirmação.<br />

3.2 <strong>Esquemas</strong> WENO<br />

O método ENO tem como característica a boa adaptação em relação às <strong>de</strong>scontinui-<br />

da<strong>de</strong>s, mas ainda possui alguns pontos que precisam ser melhorados. O principal ponto<br />

em questão é que na escolha do melhor estêncil são levados em conta r candidatos<br />

S0,S1,...,Sr−1,<br />

mas apenas um estêncil é escolhido. Em termos <strong>de</strong> pontos, temos um conjunto total <strong>de</strong><br />

2r −1 pontos no domínio<br />

{xi+k−r+1,xi+k−r+2,...,xi+k},<br />

mas usamos apenas r pontos na aproximação. Claramente existe um <strong>de</strong>sperdício <strong>de</strong><br />

informação, já que se fossem utilizados todos os 2r − 1 pontos po<strong>de</strong>ríamos obter uma<br />

aproximação <strong>de</strong> or<strong>de</strong>m 2r−1 ao invés da or<strong>de</strong>m r que obtemos com o ENO.<br />

Algumas modificações foram <strong>de</strong>senvolvidas para realizar melhorias no ENO, mas <strong>de</strong>n-<br />

tre todas as opções o método WENO foi a mais bem-sucedida. Atualmente há várias<br />

versões do WENO, mas todas elas seguem a mesma i<strong>de</strong>ia básica: em vez <strong>de</strong> usarmos ape-<br />

nas um estêncil Sk para obtermos a aproximação ˆ f 1<br />

i+ , vamos fazer uma combinação das<br />

2<br />

aproximações ˆ f k<br />

i+ 1<br />

2<br />

, atribuindo um peso ωk a cada uma <strong>de</strong>las:<br />

ˆf i+ 1<br />

2<br />

r−1<br />

=<br />

k=0<br />

45<br />

ωk ˆ f k<br />

i+ 1<br />

2<br />

(3.4)


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

Os pesos <strong>de</strong>vem satisfazer a algumas condições básicas. Primeiramente, por consis-<br />

tência e estabilida<strong>de</strong>,<br />

Condição 1 (convexida<strong>de</strong>). Os pesos <strong>de</strong>vem satisfazer às condições <strong>de</strong> convexida<strong>de</strong><br />

ωk ≥ 0,<br />

r−1<br />

ωk = 1.<br />

k=0<br />

Além disto, para que este método seja tão adaptável a <strong>de</strong>scontinuida<strong>de</strong>s quanto o ENO,<br />

gostaríamos <strong>de</strong> atribuir peso praticamente nulo às aproximações obtidas em estênceis com<br />

<strong>de</strong>scontinuida<strong>de</strong>. Isto evitaria que usássemos na soma (3.4) uma parcela que tivesse sido<br />

obtida sob a influência do fenômeno <strong>de</strong> Gibbs. Portanto,<br />

Condição 2 (emulação do ENO). Se o k-ésimo estêncil é <strong>de</strong>scontínuo (e há pelo menos<br />

um estêncil contínuo), então<br />

ωk ≈ 0.<br />

A última condição é a que garante um ganho em termos <strong>de</strong> or<strong>de</strong>m <strong>de</strong> convergência.<br />

Estipulamos que<br />

Condição 3 (optimalida<strong>de</strong>). Em regiões contínuas,<br />

ˆf 1<br />

i+ −<br />

2<br />

ˆ f 1<br />

i−2 ∆x<br />

=<br />

r−1 <br />

k=0<br />

ω +<br />

k ˆ f k<br />

i+ 1<br />

2<br />

− r−1 <br />

∆x<br />

k=0<br />

ω −<br />

k ˆ f k<br />

i− 1<br />

2<br />

on<strong>de</strong> ω ±<br />

k <strong>de</strong>nota os pesos usados na construção <strong>de</strong> ˆ f 1<br />

i± .<br />

= f ′ (xi)+O(∆x 2r−1 ),<br />

A construção dos pesos ωk geralmente passa pelo uso dos chamados pesos i<strong>de</strong>ais, nome<br />

dado às constantes que satisfazem às condições (1) e (3). Por causa disto, os pesos i<strong>de</strong>ais<br />

serão o assunto da seção a seguir.<br />

46<br />

2


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

3.2.1 Pesos i<strong>de</strong>ais e comparação com upstream central<br />

Para satisfazer a condição (3), precisamos utilizar informações <strong>de</strong> todos os 2r − 1<br />

pontos. Em outras palavras, queremos que em regiões contínuas, a escolha dos pesos<br />

i<strong>de</strong>ais seja feita <strong>de</strong> forma que ela exerça o mesmo papel que um interpolador <strong>de</strong> grau<br />

2r −1, em um estêncil maior S n = {xi+k−r+1,xi+k−r+2,...,xi+k}, formado pelos 2r −1<br />

pontos em questão. Chamaremos este interpolador <strong>de</strong> ˆ F 1<br />

i+ .<br />

2<br />

Afirmamos que sempre é possível realizar uma combinação das aproximações ˆ f0 i+ 1,...,<br />

2<br />

ˆ f r−1<br />

i+ 1<br />

2<br />

que resulta na aproximação upstream central ˆ F 1<br />

i+ . Em outras palavras, existem constan-<br />

2<br />

tes dk, chamadas <strong>de</strong> pesos i<strong>de</strong>ais, que satisfazem<br />

r−1<br />

k=0<br />

dk ˆ f k<br />

i+ 1<br />

2<br />

= ˆ F 1<br />

i+ . (3.5)<br />

2<br />

Observação 4. <strong>Não</strong> encontramos nenhuma prova <strong>de</strong>ste fato nas referências, embora ele<br />

seja largamente utilizado. De qualquer forma, uma <strong>de</strong>monstração não parece difícil <strong>de</strong> se<br />

obter.<br />

Observação 5. Os pesos i<strong>de</strong>ais dk <strong>de</strong>pen<strong>de</strong>m da or<strong>de</strong>m do método, ou seja, dk = dr,k. No<br />

entanto, por praticida<strong>de</strong>, omitiremos a variável r na maioria dos casos.<br />

Como dito anteriormente, supondo as condições anteriores como verda<strong>de</strong>iras, temos<br />

que os pesos i<strong>de</strong>ais serviriam perfeitamente para o WENO numa região contínua. Em<br />

outras palavras, <strong>de</strong>seja-se que os pesos do WENO estejam bem próximos dos pesos i<strong>de</strong>ais<br />

numa região contínua para que a aproximação do WENO fique próxima da aproximação<br />

upstream central. Veremos algumas maneiras <strong>de</strong> se garantir esta proximida<strong>de</strong> na próxima<br />

seção e seguintes.<br />

Vamos mostrar como se calcula os pesos i<strong>de</strong>ais <strong>de</strong> or<strong>de</strong>m r = 3. Os pesos <strong>de</strong> outras<br />

or<strong>de</strong>ns apenas explicitaremos. Para tal, consi<strong>de</strong>re o seguinte problema:<br />

47


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

Problema 2. Encontre os pesos i<strong>de</strong>ais <strong>de</strong> or<strong>de</strong>m 3, isto é, as constantes d0, d1 e d2 tais<br />

que<br />

Usando a <strong>de</strong>finição <strong>de</strong> aproximação<br />

obtemos<br />

ˆf 0<br />

i+ 1<br />

2<br />

ˆf 1<br />

i+ 1<br />

2<br />

ˆf 2<br />

i+ 1<br />

2<br />

ˆF i+ 1<br />

2<br />

d0 ˆ f 0<br />

i+ 1 +d1<br />

2<br />

ˆ f 1<br />

i+ 1 +d2<br />

2<br />

ˆ f 2<br />

i+ 1<br />

2<br />

ˆf k<br />

i+ 1<br />

2<br />

=<br />

r<br />

j=1<br />

ckjfi+k−r+j,<br />

= 1<br />

6 (2fi−2 −7fi−1 +11fi),<br />

= 1<br />

6 (−fi−1 +5fi +2fi+1),<br />

= 1<br />

6 (2fi +5fi+1 −fi+2),<br />

Deste modo, temos o seguinte sistema:<br />

= ˆ F i+ 1<br />

2<br />

= 1<br />

60 (2fi−2 −13fi−1 +47fi +27fi+1 −3fi+2).<br />

1<br />

6<br />

⎡ ⎤<br />

2 0 0<br />

⎢ ⎥⎡<br />

⎢ ⎥<br />

⎢<br />

−7 −1 0 ⎥<br />

⎥⎢<br />

⎢ ⎥⎢<br />

⎢<br />

⎢11<br />

5 2 ⎥⎢<br />

⎥⎢<br />

⎢ ⎥⎣<br />

⎢ ⎥<br />

⎢ 0 2 5 ⎥<br />

⎣ ⎦<br />

0 0 −1<br />

d0<br />

d1<br />

d2<br />

⎤<br />

⎥<br />

⎦<br />

= 1<br />

60<br />

⎡ ⎤<br />

2<br />

⎢ ⎥<br />

⎢ ⎥<br />

⎢<br />

−13 ⎥<br />

⎢ ⎥<br />

⎢ 47 ⎥<br />

⎢ ⎥<br />

⎢ ⎥<br />

⎢ 27 ⎥<br />

⎣ ⎦<br />

−3<br />

Apesar <strong>de</strong> este ser um sistema sobre<strong>de</strong>terminado, ele possui uma solução, que é<br />

d0 = 1<br />

10 , d1 = 6<br />

10 , d2 = 3<br />

10 .<br />

48


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

A tabela a seguir mostra o valor dos pesos i<strong>de</strong>ais para r = 1,2,3,4,5 e 6 .<br />

Pesos i<strong>de</strong>ais para r = 1,2,3,4,5e 6<br />

r dr,0 dr,1 dr,2 dr,3 dr,4 dr,5<br />

1 1<br />

2 1<br />

3<br />

3 1<br />

10<br />

4 1<br />

35<br />

5 1<br />

126<br />

6 1<br />

462<br />

2<br />

3<br />

6<br />

10<br />

12<br />

35<br />

20<br />

126<br />

30<br />

462<br />

3<br />

10<br />

18<br />

35<br />

60<br />

126<br />

150<br />

462<br />

4<br />

35<br />

40<br />

126<br />

200<br />

462<br />

5<br />

126<br />

75<br />

462<br />

6<br />

462<br />

Agora estamos prontos para estudar os esquemas WENO.<br />

3.2.2 WENO clássico: os pesos <strong>de</strong> Jiang-Shu<br />

Na versão original do WENO [2], a condição <strong>de</strong> optimalida<strong>de</strong> ainda não havia estipu-<br />

lada daquela maneira. Em vez <strong>de</strong>la, tínhamos<br />

ˆf i+ 1<br />

2<br />

r−1<br />

=<br />

k=0<br />

ωk ˆ f k<br />

i+ 1<br />

2<br />

= h 1<br />

i+ +O(∆x<br />

2<br />

r+1 ).<br />

Note o termo O(∆x r+1 ) nesta expressão. Isto quer dizer que, no máximo, o WENO<br />

original obtinha apenas or<strong>de</strong>m máxima <strong>de</strong> r + 1, um ganho <strong>de</strong> somente uma or<strong>de</strong>m em<br />

relação ao ENO.<br />

Os primeiros a notar que o WENO po<strong>de</strong>ria obter um ganho maior, <strong>de</strong> or<strong>de</strong>m até 2r−1,<br />

foram G.-S. Jiang e C.-W. Shu. No artigo [4], eles propõem uma outra maneira <strong>de</strong> se cal-<br />

cular os pesos, baseados num novo medidor <strong>de</strong> suavida<strong>de</strong>: a medida <strong>de</strong> variação total. Os<br />

pesos são obtidos como uma função racional dos medidores <strong>de</strong> suavida<strong>de</strong>. O uso <strong>de</strong> uma<br />

49


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

fórmula racional para obter os pesos - e não um algoritmo que usasse estruturas condici-<br />

onais, por exemplo - <strong>de</strong>veu-se a questões <strong>de</strong> eficiência computacional.[5, p.16, §3 e p.18,<br />

§4]. Na época (1996) as estruturas condicionais eram ineficientes em supercomputadores<br />

com o CRAY, e, por isto, o uso <strong>de</strong> tais estruturas era evitado a qualquer custo.<br />

Vale também ressaltar que, ao invés <strong>de</strong> usar a condição <strong>de</strong> optmalida<strong>de</strong> (3), foi utilizada<br />

outra, mais fraca:<br />

Condição 4 (Jiang-Shu). Em regiões contínuas,<br />

ˆf i+ 1<br />

2<br />

r−1<br />

=<br />

k=0<br />

ωk ˆ f k<br />

i+ 1<br />

2<br />

= h 1<br />

i+ +O(∆x<br />

2<br />

2r−1 ).<br />

Note que esta condição não é suficiente para garantir a optimalida<strong>de</strong> do esquema:<br />

supondo esta condição como válida, em geral temos apenas<br />

ˆf 1<br />

i+ −<br />

2<br />

ˆ f 1<br />

i−2 ∆x<br />

=<br />

<br />

h 1<br />

i+ +O(∆x<br />

2<br />

2r−1 <br />

) − h 1<br />

i− +O(∆x<br />

2<br />

2r−1 <br />

)<br />

∆x<br />

= f ′ (xi)+O(∆x 2r−2 ).<br />

Mesmo assim, os pesos <strong>de</strong> Jiang-Shu merecem um estudo mais profundo. Primeiro, porque<br />

a condição <strong>de</strong> optimalida<strong>de</strong> é satisfeita às vezes, especialmente com∆x pequeno. Segundo,<br />

porque os pesos <strong>de</strong> Jiang-Shu são a base da maioria dos esquemas WENO que vieram<br />

<strong>de</strong>pois.<br />

Vejamos então os pesos <strong>de</strong> Jiang-Shu. A fórmula dos pesos é<br />

ωk =<br />

αk<br />

r−1 j=0αj , αk =<br />

dk<br />

(βk +ǫ) p<br />

(3.6)<br />

on<strong>de</strong> ǫ > 0 é um valor teoricamente utilizado apenas para evitar que o <strong>de</strong>nominador se<br />

anule na segunda equação, p é uma potência inteira e βk é a medida <strong>de</strong> variação total. Os<br />

valores mais geralmente utilizados para estes parâmetros são p = 2 e ǫ = 10 −6 .<br />

50


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

Notação 3. On<strong>de</strong> houver confusão sobre o tipo do peso, <strong>de</strong>notaremos os pesos <strong>de</strong> Jiang-<br />

Shu como ω (JS)<br />

k .<br />

Vejamos como os pesos <strong>de</strong> Jiang-Shu satisfazem às condições do WENO. Trivialmente<br />

a condição <strong>de</strong> convexida<strong>de</strong> é satisfeita, já que<br />

e<br />

r−1<br />

k=0<br />

ωk =<br />

r−1<br />

αk<br />

r−1 k=0 k=0αk =<br />

r−1<br />

k=0 αk<br />

r−1<br />

k=0 αk<br />

dk ≥ 0, (βk +ǫ) p > 0.<br />

A condição (2) também é facilmente verificável. Suponha que o estêncil m é <strong>de</strong>scontí-<br />

nuo e o estêncil n é contínuo. Afirmamos que βm = O(1) e βn = O(∆x 2 ). <strong>Não</strong> provaremos<br />

a primeira afirmação, enquanto que a segunda será provada na seção 4.2.2. Então<br />

ωm =<br />

=<br />

≤<br />

dm<br />

(βm+ǫ) p<br />

dm<br />

(βm+ǫ) p + dn<br />

(βn+ǫ) p + r−1 dk<br />

k=0 (βk+ǫ)<br />

k=m,n<br />

p<br />

dm +<br />

dm<br />

O(1)<br />

(O(∆x2 )+ǫ) p + r−1 k=0<br />

k=m,n<br />

O(1)<br />

(βk+ǫ) p<br />

= 1<br />

dm<br />

dm +O( 1<br />

C p)+O(1) = O(Cp ), C = max{∆x 2 ,ǫ}<br />

A condição <strong>de</strong> Jiang-Shu (4) po<strong>de</strong> ser satisfeita da seguinte maneira: usando-se a<br />

51


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

proprieda<strong>de</strong> dos pesos i<strong>de</strong>ais (3.5) e a condição (1), temos<br />

r−1<br />

k=0<br />

ωk ˆ f k<br />

i+ 1<br />

2<br />

=<br />

=<br />

=<br />

=<br />

Assim, se tivermos<br />

r−1<br />

k=0<br />

r−1<br />

<br />

dk ˆ f k<br />

i+ 1<br />

r−1<br />

+<br />

2<br />

<br />

(ωk −dk)<br />

k=0<br />

<br />

h i+ 1<br />

2<br />

r−1<br />

k=0<br />

k=0<br />

(ω ±<br />

k −dk) ˆ f k<br />

i+ 1<br />

2<br />

<br />

h 1<br />

i+ +O(∆x<br />

2<br />

r )<br />

<br />

+<br />

<br />

h 1<br />

i+ +O(∆x<br />

2<br />

2r−1 <br />

)<br />

r−1<br />

r−1<br />

(ωk −dk)+ (ωk −dk)O(∆x r <br />

) +<br />

k=0<br />

k=0<br />

(ωk −dk)O(∆x r )+h i+ 1<br />

2<br />

a condição (4) é imediatamente satisfeita.<br />

ωk −dk = O(∆x r−1 ), 0 ≤ k ≤ r−1,<br />

<br />

h 1<br />

i+ +O(∆x<br />

2<br />

2r−1 <br />

)<br />

+O(∆x 2r−1 ) (3.7)<br />

O próximo teorema nos mostrará que o medidor <strong>de</strong> suavida<strong>de</strong> baseado na medida <strong>de</strong><br />

variação total faz com que os pesos <strong>de</strong> Jiang-Shu atendam à condição acima:<br />

Teorema 5. Seja β0,...,βr−1 os medidores <strong>de</strong> suavida<strong>de</strong> baseados na medida <strong>de</strong> variação<br />

total e d0,...,dr−1os pesos i<strong>de</strong>ais <strong>de</strong> or<strong>de</strong>m r. Consi<strong>de</strong>re também os pesos <strong>de</strong> Jiang-Shu<br />

ω0,...,ωr−1 dados pela fórmula<br />

ωk =<br />

dk<br />

(βk+ǫ) p<br />

r−1<br />

k=0<br />

dj<br />

(βj+ǫ) p<br />

, k = 0,...,r −1<br />

com 0 < ǫ ≪ 1 e p inteiro maior ou igual a 1. Agora suopnha que para qualquer 0 ≤ k ≤<br />

r−1, possamos escrever βk na forma<br />

βk = D(1+O(∆x q ))<br />

52


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

on<strong>de</strong> D é uma constante não-nula in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> j e q ≥ 1. Então<br />

ωk −dk = O(∆x q ).<br />

Demonstração. Usando a equação (3.6) e tomando ǫ = 0 para efeito <strong>de</strong> simplificação,<br />

obtemos<br />

αk =<br />

dk<br />

(D(1+O(∆x q dk<br />

=<br />

))) p Dp q 2q p dk<br />

1+O(∆x )+O(∆x )+... =<br />

Dp(1+O(∆xq )).<br />

Somando todos os termos,<br />

r−1<br />

αk = 1<br />

Dp(1+O(∆xq )),<br />

k=0<br />

levando em conta que os pesos i<strong>de</strong>ais somam 1, pela condição (1). Com isso,<br />

Consequentemente,<br />

como queríamos.<br />

ωk =<br />

dk<br />

Dp(1+O(∆x q ))<br />

1<br />

Dp(1+O(∆x q )) = dk(1+O(∆x q )).<br />

ωk −dk = O(∆x q ),<br />

Corolário 1. Se βk = D(1+O(∆x r−1 )), a condição (4) é imediatamente satisfeita.<br />

Neste momento, vamos <strong>de</strong>ter a nossa análise ao medidor <strong>de</strong> suavida<strong>de</strong> βk para verifi-<br />

carmos a condição (4). Consi<strong>de</strong>remos a análise <strong>de</strong> βk no caso r = 3. A expressão para βk<br />

53


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

é<br />

β0 = 13<br />

12 (fi−2 −2fi−1 +fi) 2 + 1<br />

4 (fi−2 −4fi−1 +3fi) 2<br />

β1 = 13<br />

12 (fi−1 −2fi +fi+1) 2 + 1<br />

4 (fi−1 −fi+1) 2<br />

β2 = 13<br />

12 (fi −2fi−1 +fi+2) 2 + 1<br />

4 (3i −4fi+1 +fi+2) 2 .<br />

Expandindo as equações acima em séries <strong>de</strong> Taylor em torno <strong>de</strong> xi, temos<br />

β0 = (f ′ ∆x) 2 +<br />

<br />

13<br />

12 f′′2 − 2<br />

<br />

13<br />

12 f′′2 + 1<br />

3 f′ f ′′′<br />

<br />

β1 = (f ′ ∆x) 2 +<br />

3 f′ f ′′′<br />

β2 = (f ′ ∆x) 2 <br />

13<br />

+<br />

12 f′′2 − 2<br />

3 f′ f ′′′<br />

∆x 4 +<br />

<br />

<br />

− 13<br />

6 f′′ f ′′′ + 1<br />

2 f′ f (4)<br />

<br />

∆x 5 +O(∆x 6 (3.8) ),<br />

∆x 4 +O(∆x 6 ),<br />

<br />

∆x 4 +<br />

13<br />

6 f′′ f ′′′ − 1<br />

2 f′ f (4)<br />

<br />

∆x 5 +O(∆x 6 ).<br />

Vamos supor inicialmente que f ′ = 0. Se fizermos D = (f ′ ∆x) 2 , po<strong>de</strong>mos ver, usando as<br />

equações acima, que<br />

β0 = D<br />

β1 = D<br />

β2 = D<br />

<br />

<br />

<br />

1+<br />

1+<br />

1+<br />

13<br />

12 f′′2 − 2<br />

3 f′ f ′′′ ∆x 4 +O(∆x 5 )<br />

(f ′ ∆x) 2<br />

13<br />

12 f′′2 + 1<br />

3 f′ f ′′′ ∆x 4 +O(∆x 6 )<br />

(f ′ ∆x) 2<br />

13<br />

12 f′′2 − 2<br />

3 f′ f ′′′ ∆x 4 +O(∆x 5 )<br />

(f ′ ∆x) 2<br />

<br />

<br />

<br />

= D(1+O(∆x 2 ),<br />

= D(1+O(∆x 2 ),<br />

= D(1+O(∆x 2 ).<br />

Portanto, temos βk = D(1+O(∆x r−1 )) e a condição (4) é imediatamente satisfeita.<br />

Agora vamos supor que f ′ = 0 e f ′′ = 0. Expandindo novamente em séries <strong>de</strong> Taylor,<br />

temos agora<br />

54


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

β0 = 13<br />

12 f′′2 ∆x 4 − 13<br />

6 f′′ f ′′′ ∆x 5 +O(∆x 6 ),<br />

β1 = 13<br />

12 f′′2 ∆x 4 +O(∆x 6 ),<br />

β2 = 13<br />

12 f′′2 ∆x 4 + 13<br />

6 f′′ f ′′′ ∆x 5 +O(∆x 6 ).<br />

Se fizermos D assumir o valor do único termo que não varia nestas três expansões, ou<br />

seja,<br />

o melhor que conseguimos é<br />

<br />

β0 = D 1−<br />

<br />

β1 = D<br />

<br />

β2 = D 1+<br />

D = 13<br />

12 f′′2 ∆x 4<br />

13<br />

6 f′′ f ′′′ ∆x5 +O(∆x6 )<br />

13<br />

12f′′2∆x4 1+ O(∆x6 )<br />

13<br />

12 f′′2 ∆x 4<br />

a nçao ser que f ′′′ = 0 o que nos daria<br />

<br />

= D(1+O(∆x)),<br />

<br />

= D(1+O(∆x 2 )) = D(1+O(∆x)),<br />

13<br />

6 f′′ f ′′′ ∆x 5 +O(∆x 6 )<br />

13<br />

12 f′′2 ∆x 4<br />

<br />

= D(1+O(∆x)),<br />

βk = D(1+O(∆x 2 )), k = 0,1,2<br />

Deste modo, a condição (4) só é assegurada quando f ′′′ se anula. Do contrário, pelo<br />

teorema 5 temos apenas<br />

ωk −dk = O(∆x), k = 0,1,2<br />

55


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

e assim a condição (4) não é necessariamente satisfeita. Na verda<strong>de</strong>, por (3.7), teríamos,<br />

r−1<br />

k=0<br />

ωk ˆ f k<br />

i+ 1<br />

2<br />

= h 1<br />

i+ +O(∆x<br />

2<br />

2r−2 ),<br />

o que já representa uma queda na or<strong>de</strong>m <strong>de</strong> convergência do WENO.<br />

Jiang e Shu não perceberam as duas falhas que o WENO com seus pesos possui, que<br />

causam queda na or<strong>de</strong>m ótima 2r −1: a condição (4), que não garante a optimalida<strong>de</strong>;<br />

e os seus pesos que, em geral, não satisfazem à própria condição (4) em pontos críticos.<br />

As falhas não foram percebidas porque o valor utilizado para ǫ (10 −6 ) é relativamente<br />

alto em comparação ao valor <strong>de</strong> βk em regiões contínuas, fazendo com que, por (3.6), os<br />

pesos ficassem próximos dos pesos i<strong>de</strong>ais o suficiente para que ambas as falhas não fossem<br />

notadas. Além disto, a série <strong>de</strong> Taylor <strong>de</strong> βk não havia sido feita até os termos mais<br />

importantes (faltaram os termos da or<strong>de</strong>m <strong>de</strong> ∆x 5 ) e a função utilizada para teste era<br />

uma senói<strong>de</strong> com <strong>de</strong>scontinuida<strong>de</strong>, na qual f ′ e f ′′′ se anulavam simultaneamente [4, pp.<br />

9-10]. Por isto não foi verificado que os pesos não satisfaziam à condição <strong>de</strong> Jiang-Shu<br />

em pontos críticos mais gerais.<br />

As duas falhas <strong>de</strong> projeto só foram documentadas na literatura quase uma década<br />

<strong>de</strong>pois do trabalho <strong>de</strong> Jiang e Shu, no artigo <strong>de</strong> A. Henrick, T. Aslam & J. Powers [3].<br />

Este artigo estabelece uma relação empírica entre a or<strong>de</strong>m do WENO na vizinhança <strong>de</strong><br />

um ponto crítico e a chamada or<strong>de</strong>m do ponto crítico, que indica quantas <strong>de</strong>rivadas se<br />

anulam simultaneamente. O estudo <strong>de</strong>sta relação será o assunto da próxima seção.<br />

3.2.3 Pontos críticos<br />

Em [3] é sugerida uma relação direta entre o comportamento <strong>de</strong> βk nas vizinhanças<br />

<strong>de</strong> pontos críticos com o número <strong>de</strong> <strong>de</strong>rivadas que se anulam simultaneamente. Para ser<br />

56


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

mais preciso, vamos usar a seguinte <strong>de</strong>finição:<br />

Definição 7. A or<strong>de</strong>m ncp <strong>de</strong> um ponto crítico xi é o valor tal que<br />

f ′ (xi) = ... = f (ncp) (xi) = 0, f (ncp+1) (xi) = 0. (3.9)<br />

Caso todas as <strong>de</strong>rivadas se anulem em xi, dizemos que este é um ponto crítico <strong>de</strong> or<strong>de</strong>m<br />

infinita.<br />

Através <strong>de</strong> uma série <strong>de</strong> experimentos numéricos, foi estabelecida uma relação entre<br />

a or<strong>de</strong>m do ponto crítico e a or<strong>de</strong>m do WENO clássico na vizinhança do ponto crítico.<br />

Apesar <strong>de</strong> não ter sido fornecida uma prova para o caso geral, séries <strong>de</strong> Taylor para βk<br />

<strong>de</strong> or<strong>de</strong>m 3 até 6 confirmam o resultado empírico obtido em [3]. Algumas das expressões<br />

<strong>de</strong>stas séries po<strong>de</strong>m ser encontradas na seção 4.3.<br />

Nestes termos, vamos estabelecer uma conjectura prevista, <strong>de</strong> um modo um pouco<br />

diferente, por Henrick, Aslam e Powers em [3].<br />

Conjectura 1 (Henrick-Aslam-Powers). Seja f uma função contínua por partes com<br />

um ponto crítico xi <strong>de</strong> or<strong>de</strong>m ncp e βk o indicador <strong>de</strong> suavida<strong>de</strong> <strong>de</strong> or<strong>de</strong>m r <strong>de</strong> f, com<br />

espaçamento ∆x. Então βk avaliada em uma vizinhança <strong>de</strong> xi assume a forma<br />

βk = D(1+O(∆x q )), k = 0,...,r −1,<br />

com D in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> k e com a potência q dada por<br />

q = max(r−1−ncp,0).<br />

57


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

Recorrendo a (3.7)<br />

ˆf i+ 1<br />

2<br />

r−1<br />

=<br />

k=0<br />

ωk ˆ f k<br />

i+ 1<br />

2<br />

<br />

r−1<br />

= h 1<br />

i+ +<br />

2<br />

k=0<br />

e ao teorema 5, temos o seguinte corolário da conjectura 1 :<br />

(ωk −dk) ˆ f k<br />

i+ 1 +O(∆x<br />

2<br />

2r−1 )<br />

Corolário 2. Seja xi um ponto crítico <strong>de</strong> f com or<strong>de</strong>m ncp. Consi<strong>de</strong>re<br />

ˆf j+ 1<br />

2<br />

r−1<br />

=<br />

k=0<br />

ω (JS)<br />

k<br />

Então, para um xj vizinho a xi, a or<strong>de</strong>m rc <strong>de</strong> convergência do WENO clássico<br />

é dado por<br />

ˆf 1<br />

j+ −<br />

2<br />

ˆ f 1<br />

j−2 ∆x<br />

ˆf k<br />

j+ 1<br />

2<br />

= f ′ (xj)+O(∆x rc )<br />

rc = max(2r −2−nc,nc).<br />

Demonstração. Supomos a conjectura 1 como sendo válida. Usando o teorema 5, temos<br />

ω (JS)<br />

k = dk +O(∆x p ), p = max(r−1−nc,0).<br />

Vamos dividir o problema em dois casos:<br />

Caso 1 (Caso 1). nc < r −1<br />

Neste caso, p = r −1−nc e 2r −2−nc > nc. Por (3.7),<br />

ˆf j+ 1<br />

2<br />

r−1<br />

=<br />

k=0<br />

ω (JS)<br />

k<br />

ˆf k<br />

j+ 1<br />

2<br />

58<br />

.<br />

= h 1<br />

j+ +O(∆x<br />

2<br />

r+p ).


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

Logo,<br />

ˆf 1<br />

j+ −<br />

2<br />

ˆ f 1<br />

j−2 ∆x<br />

Caso 2 (Caso 2). nc ≥ r−1<br />

=<br />

<br />

h 1<br />

j+ +O(∆x<br />

2<br />

r+p <br />

) − h 1<br />

j+ +O(∆x<br />

2<br />

r+p <br />

)<br />

∆x<br />

= f ′ (xj)+O(∆x r+p−1 )<br />

= f ′ (xj)+O(∆x 2r−2−nc ).<br />

Agora temos p = 0 e nc ≥ 2r −2−nc. Como as nc primeiras <strong>de</strong>rivadas <strong>de</strong> v se anulam<br />

simultaneamente, a aproximação polinomial ˆ f k<br />

j+ 1<br />

2<br />

mente r:<br />

ˆf k<br />

j+ 1<br />

2<br />

= h 1<br />

j+ +O(∆x<br />

2<br />

nc+1 ), k = 0,...,r.<br />

é <strong>de</strong> or<strong>de</strong>m nc +1 ao invés <strong>de</strong> simples-<br />

Com isto, não importando o valor dos pesos, o resultado da combinação é<br />

Assim,<br />

como queríamos.<br />

ˆf j+ 1<br />

2<br />

=<br />

=<br />

=<br />

=<br />

r−1<br />

k=0<br />

r−1<br />

<br />

k=0<br />

ω (JS)<br />

k<br />

ˆf k<br />

j+ 1<br />

2<br />

ω (JS)<br />

<br />

k h 1<br />

j+ +O(∆x<br />

2<br />

nc+1 <br />

)<br />

<br />

h 1<br />

j+ +O(∆x<br />

2<br />

nc+1 r−1 ) ω<br />

k=0<br />

(JS)<br />

k<br />

<br />

h 1<br />

j+ +O(∆x<br />

2<br />

nc+1 <br />

) .<br />

ˆf 1<br />

j+ −<br />

2<br />

ˆ f 1<br />

j−2 ∆x<br />

= f ′ (xj)+O(∆x nc ),<br />

59


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

O corolário nos informa que há uma or<strong>de</strong>m do ponto crítico que faz o WENO clássico<br />

gerar os piores resultados. Isto acontece quando<br />

o que dá<br />

nc = r−1,<br />

rc = r −1.<br />

Na seção seguinte, veremos uma maneira <strong>de</strong> se obter resultados melhores em pontos<br />

críticos.<br />

3.2.4 WENO mapeado: corrigindo algumas falhas<br />

Além do estudo sobre as falhas do WENO clássico, [3] contém também uma correção<br />

para elas, sob a forma <strong>de</strong> uma função mapeadora. O mapeamento nos pesos <strong>de</strong> Jiang-Shu,<br />

sob certas condições, os aproximam dos pesos i<strong>de</strong>ais, <strong>de</strong> modo a satisfazer a condição <strong>de</strong><br />

optimalida<strong>de</strong> 3<br />

Em [3] primeiramente é sugerido um critério suficiente aos pesos <strong>de</strong> modo a satisfazer<br />

a condição 3. Expandindo a expressão<br />

ˆf 1<br />

i+ −<br />

2<br />

ˆ f 1<br />

i−2 ∆x<br />

60<br />

(3.10)


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

temos<br />

ˆf 1<br />

i+ −<br />

2<br />

ˆ f 1<br />

i−2 ∆x<br />

=<br />

=<br />

=<br />

r−1 <br />

k=0<br />

r−1 <br />

k=0<br />

ω +<br />

k ˆ f k<br />

i+ 1<br />

2<br />

− r−1 <br />

k=0<br />

k=0<br />

ω −<br />

k ˆ f k<br />

i− 1<br />

2<br />

∆x<br />

d +<br />

k ˆ fk i+ 1 −<br />

2<br />

r−1 <br />

d −<br />

k ˆ fk i− 1<br />

2<br />

∆x<br />

ˆF 1<br />

i+ −<br />

2<br />

ˆ F 1<br />

i−2 ∆x<br />

r−1 <br />

(ω +<br />

k=0<br />

k −dk)<br />

+<br />

<br />

h 1<br />

i+ +O(∆x<br />

2<br />

r )<br />

= f ′ (xi)+O(∆x 2r−1 k=0<br />

)+<br />

r−1 <br />

(ω<br />

k=0<br />

+<br />

+<br />

k −dk) ˆ fk <br />

<br />

(ω −<br />

− r−1<br />

k=0<br />

i+ 1 −<br />

2<br />

r−1<br />

k=0<br />

∆x<br />

k −dk)<br />

<br />

(ω −<br />

k −dk) ˆ fk i− 1<br />

2<br />

<br />

h 1<br />

i+ +O(∆x<br />

2<br />

r <br />

)<br />

∆x<br />

r−1 <br />

(ω +<br />

k −dk)O(∆xr )− r−1 <br />

(ω −<br />

k −dk)O(∆xr )<br />

Portanto, uma condição suficiente para garantir a optimalida<strong>de</strong> é que<br />

ω ±<br />

k = dk +O(∆x r ), k = 0,...,r −1. (3.11)<br />

A partir daí foi construída uma função mapeadora que, aplicada aos pesos <strong>de</strong> Jiang-Shu,<br />

os faz satisfazer (3.11).<br />

A função mapeadora gk(ω) é <strong>de</strong>finida como<br />

∆x<br />

k=0<br />

gk(ω) = ω(dk −d2 k −3dkω +ω2 )<br />

d2 k +ω(1−2dk)<br />

, k = 0,...,r −1.<br />

Esta função tem as seguintes proprieda<strong>de</strong>s:<br />

· gk é monótona crescente.<br />

· 0 ≤ gk(ω) ≤ 1, gk(0) = 0 e gk(1) = 1.<br />

· gk(ω) ≈ 0 se ω ≈ 0, gk(ω) ≈ 0 se ω ≈ 0.<br />

61


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

k=0<br />

k=1<br />

k=2<br />

I<strong>de</strong>ntida<strong>de</strong><br />

0<br />

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1<br />

Figura 3.1: Funções <strong>de</strong> mapeamento usados no WENO mapeado <strong>de</strong> or<strong>de</strong>m r = 3 para<br />

k = 0, 1 e 2<br />

· gk(dk) = dk, g ′ k (dk) = g ′′<br />

k (dk) = 0.<br />

· gk(ωk) = dk +O(∆x 3p ) se ωk = dk +O(∆x p ).<br />

Vamos provar a última proprieda<strong>de</strong>. Suponha que ωk = dk +O(∆x p ). Então<br />

gk(ωk) = gk(dk)+g ′ k(dk)(ωk −dk)+ g′′<br />

k (dk)<br />

= dk + g′′′ k (dk)<br />

(ωk −dk)<br />

6<br />

3 +...<br />

= dk +O(∆x 3 ).<br />

2<br />

(ωk −dk) 2 + g′′′ k (dk)<br />

(ωk −dk)<br />

6<br />

3 +...<br />

Vejamos como po<strong>de</strong>mos usar a função gk para melhorar os pesos <strong>de</strong> Jiang-Shu. Suponha<br />

que usamos (3.6) para obtermos os pesos ω (JS)<br />

0 ,...,ω (JS)<br />

r−1 . Se o estêncil Sk é <strong>de</strong>scontínuo<br />

então, como vimos, ω (JS)<br />

k<br />

forem contínuos e se<br />

≈ 0. Assim, gk(ω (JS)<br />

k ) ≈ 0. Por outro lado, se todos os estênceis<br />

ω (JS)<br />

k = dk +O(∆x p )<br />

62


CAPÍTULO 3. MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS 3.2. ESQUEMAS WENO<br />

para algum p ≥ 1,k = 0,...,r−1, então gk aproxima ainda mais o peso ω (JS)<br />

k em direção<br />

a dk, fazendo<br />

para k = 0,...,r −1.<br />

gk(ω (JS)<br />

k ) = dk +O(∆x 3p ),<br />

A condição (3.11) po<strong>de</strong> ser satisfeita através <strong>de</strong> repetidas aplicações <strong>de</strong> Jiang-Shu. Se<br />

p ≥ 1. então temos<br />

ω (JS)<br />

k<br />

ω ⌈log 3 r⌉<br />

k<br />

= dk +O(∆x)<br />

ω 1 k = gk(ω (JS)<br />

k ) = dk +O(∆x 3 )<br />

ω 2 k = gk(ω 1 k) = dk +O(∆x 9 )<br />

.<br />

= gk(ω ⌈log3r⌉ k ) = dk +O(∆x r ).<br />

Portanto, ⌈log 3r⌉ aplicações sucessivas do mapeamento gk são capazes <strong>de</strong> corrigir a or<strong>de</strong>m<br />

do esquema. Como geralmente as implementações usam r ≤ 6, duas aplicações <strong>de</strong> gk já<br />

bastam para corrigir o problema, enquanto que para r = 3 apenas uma aplicação já é<br />

suficiente.<br />

Quando p = 0, contudo, o mapeamento não é capaz <strong>de</strong> fazer nenhuma correção, pois<br />

gk(dk +O(1)) = dk +O(1).<br />

Vimos na seção 3.2.3 que p = 0 na vizinhança <strong>de</strong> qualquer ponto crítico <strong>de</strong> or<strong>de</strong>m nc ≥<br />

r −1. Portanto, o mapeamento nos pesos não é capaz <strong>de</strong> garantir a optimalida<strong>de</strong> nestas<br />

regiões contínuas. Isto não chega a ser um gran<strong>de</strong> problema, já que não é comum em<br />

aplicações práticas lidar com funções com pontos críticos <strong>de</strong> or<strong>de</strong>ns altas.<br />

63


3.2. ESQUEMAS CAPÍTULO WENO3.<br />

MÉTODOS ESSENCIALMENTE NÃO-OSCILATÓRIOS<br />

O WENO mapeado apresenta melhores resultados que o WENO clássico mesmo quando<br />

não há a influência <strong>de</strong> pontos críticos. No próximo capítulo veremos um novo método pro-<br />

posto, chamado WENO-Z.<br />

64


Capítulo 4<br />

O método WENO-Z<br />

No capítulo anterior apresentamos os esquemas essencialmente não oscilatórios (ENO)<br />

e os pon<strong>de</strong>rados (WENO). Vimos que enquanto o método ENO po<strong>de</strong> alcançar or<strong>de</strong>m <strong>de</strong><br />

convergência <strong>de</strong> até r, o método WENO, por utilizar informações <strong>de</strong> todos os r estênceis<br />

candidatos, po<strong>de</strong> chegar a or<strong>de</strong>m 2r − 1 <strong>de</strong> convergência. Mas, para isso, tornou-se<br />

necessário o uso <strong>de</strong> um mapeamento, pois o WENO clássico proposto por [4] não conseguia<br />

alcançar a optimalida<strong>de</strong>. Este mapeamento foi proposto em [3] (dando o nome <strong>de</strong> WENO<br />

mapeado), e em casos on<strong>de</strong> a or<strong>de</strong>m do ponto crítico é menor do que r−1 (o que abrange<br />

uma gran<strong>de</strong> quantida<strong>de</strong> dos problemas que resolvemos), é sempre possível alcançar a<br />

optimalida<strong>de</strong>. No entanto, este mapeamento é computacionalmente caro, e se diversas<br />

iterações forem realizadas, o esquema po<strong>de</strong> se tornar muito lento.<br />

Neste capítulo, introduziremos uma nova maneira <strong>de</strong> se obter os pesos do WENO, sem<br />

a necessida<strong>de</strong> <strong>de</strong> um mapeamento, e que também garante a optimalida<strong>de</strong> em <strong>de</strong>terminadas<br />

condições. A i<strong>de</strong>ia fundamental é que utilizamos um medidor <strong>de</strong> suavida<strong>de</strong> global, que<br />

utiliza informações <strong>de</strong> todos os 2r − 1 pontos também no medidor <strong>de</strong> suavida<strong>de</strong>. Este<br />

medidor <strong>de</strong> suavida<strong>de</strong> global, chamado <strong>de</strong> τn, nada mais é do que uma combinação linear<br />

dos indicadores <strong>de</strong> suavida<strong>de</strong> βk, construídos usando a medida <strong>de</strong> variação total.<br />

65


4.1. UMA NOVA FÓRMULA PARA OS PESOS CAPÍTULO DO WENO4.<br />

O MÉTODO WENO-Z<br />

Na primeira seção, mostraremos o WENO-Z para or<strong>de</strong>m r = 3 e os resultados en-<br />

contrados, e sua generalização para or<strong>de</strong>m r. Na segunda seção mostraremos alguns<br />

resultados auxiliares sobre a aproximação polinomial <strong>de</strong> h 1<br />

i+ , <strong>de</strong>notada por<br />

2<br />

ˆ f 1<br />

i+ , e os<br />

2<br />

indicadores <strong>de</strong> suavida<strong>de</strong> βk, Na terceira seção mostraremos uma fórmula geral para o<br />

medidor <strong>de</strong> suavida<strong>de</strong> global τn que garante a optimalida<strong>de</strong> em situações em que não há<br />

pontos críticos. Na quarta seção mostraremos, <strong>de</strong>ntre as possíveis escolhas para se cons-<br />

truir o medidor τn, qual é a que possui or<strong>de</strong>m máxima, ou seja, aquela que per<strong>de</strong> menos<br />

or<strong>de</strong>m <strong>de</strong> convergência em problemas com pontos críticos. Veremos que em <strong>de</strong>terminados<br />

casos (com r relativamente gran<strong>de</strong>), mesmo que haja a presença <strong>de</strong> pontos críticos, a opt-<br />

malida<strong>de</strong> po<strong>de</strong> ser alcançada. Por fim, na última seção veremos uma fórmula alternativa<br />

dos medidores <strong>de</strong> suavida<strong>de</strong> global que permite alcançar a optimalida<strong>de</strong> em casos em que<br />

antes não era possível sem o mapeamento proposto no WENO mapeado.<br />

4.1 Uma nova fórmula para os pesos do WENO<br />

Nesta seção introduziremos um novo conjunto <strong>de</strong> pesos WENO. Para facilitar o en-<br />

tendimento, iremos consi<strong>de</strong>rar inicialmente o caso <strong>de</strong> or<strong>de</strong>m r = 3, ou n = 2r −1 = 5.<br />

Definição 8. Vamos <strong>de</strong>finir o medidor <strong>de</strong> suavida<strong>de</strong> global τ5 como sendo<br />

τ5 = |β0 −β2|.<br />

Pelas expansões em séries <strong>de</strong> Taylor <strong>de</strong> β0 e β2,<br />

β0 = (f ′ ∆x) 2 +<br />

β2 = (f ′ ∆x) 2 +<br />

<br />

13<br />

12 f′′2 − 2<br />

3 f′ f ′′′<br />

<br />

13<br />

12 f′′2 − 2<br />

3 f′ f ′′′<br />

∆x 4 <br />

+ − 13<br />

<br />

∆x 4 +<br />

66<br />

6 f′′ f ′′′ + 1<br />

2 f′ f (4)<br />

<br />

13<br />

6 f′′ f ′′′ − 1<br />

2 f′ f (4)<br />

∆x 5 +O(∆x 6 ),<br />

<br />

∆x 5 +O(∆x 6 ),


CAPÍTULO 4. O MÉTODO 4.1. WENO-Z UMA NOVA FÓRMULA PARA OS PESOS DO WENO<br />

po<strong>de</strong>mos <strong>de</strong>duzir alguns resultados: se os estênceis S0, S1 e S2 são contínuos e afastados<br />

<strong>de</strong> qualquer ponto crítico, então<br />

τ5 = O(∆x 5 ).<br />

Por outro lado, se um <strong>de</strong>ntre os estênceis acima <strong>de</strong>scritos for <strong>de</strong>scontínuo, então<br />

τ5 = O(1).<br />

Propomos uma nova fórmula para os pesos que se utiliza da informação global dos<br />

estênceis com o objetivo <strong>de</strong> obter uma melhor aproximação. A fórmula é a seguinte:<br />

ω z k =<br />

αz k<br />

2 j=0αz , α<br />

j<br />

z k = dk<br />

βz k<br />

= dk<br />

<br />

1+ τ5<br />

<br />

, k = 0,1,2. (4.1)<br />

βk +ǫ<br />

Esta nova fórmula po<strong>de</strong> ser vista como uma modificação da fórmula <strong>de</strong> Jiang-Shu, com<br />

p = 1 e<br />

β z k =<br />

βk<br />

βk +τ5 +ǫ .<br />

Ao contrário do WENO clássico, em que é crucial uma escolha relativamente alta para<br />

ǫ (o valor sugerido é <strong>de</strong> ǫ = 10 −6 ), no WENO-Z po<strong>de</strong>mos escolher um valor baixo, como<br />

por exemplo, ǫ = 10 −40 .<br />

Uma vantagem <strong>de</strong>sta fórmula é que os pesos satisfazem imediatamente à condição<br />

<strong>de</strong> optimalida<strong>de</strong> 3 (longe <strong>de</strong> pontos críticos), sem a necessida<strong>de</strong> <strong>de</strong> um mapeamento.<br />

Recordando o que vimos no capítulo anterior (mais precisamente na equação (3.11)) uma<br />

condição sobre os pesos suficiente para garantir a optimalida<strong>de</strong> é que<br />

ωk = dk +O(∆x 3 ).<br />

67


4.1. UMA NOVA FÓRMULA PARA OS PESOS CAPÍTULO DO WENO4.<br />

O MÉTODO WENO-Z<br />

Isto po<strong>de</strong> ser verificado diretamente pela fórmula (usando por praticida<strong>de</strong> ǫ = 0)<br />

ω z k =<br />

=<br />

=<br />

dk<br />

<br />

r−1 j=0dj dk<br />

<br />

r−1<br />

j=0 dj<br />

1+ τ5<br />

βk<br />

<br />

<br />

1+ τ5<br />

βj<br />

<br />

1+ O(∆x5 )<br />

O(∆x2 )<br />

<br />

<br />

1+ O(∆x5 )<br />

O(∆x 2 )<br />

<br />

dk(1+O(∆x 3 ))<br />

(1+O(∆x 3 )) r−1<br />

j=0 dj<br />

= dk(1+O(∆x 3 ))<br />

(1+O(∆x 3 ))<br />

3 3<br />

= dk 1+O(∆x ) 1+O(∆x ) = dk +O(∆x 3 ).<br />

Note que estamos utilizando que βk = O(∆x 2 ), fato que ainda não provamos. Po<strong>de</strong>mos<br />

também verificar que a emulação do ENO 2 é preservada. Supondo-se o estêncil Sm<br />

<strong>de</strong>scontíuo e o estêncil Sn contínuo, temos<br />

ω z m =<br />

=<br />

=<br />

≤<br />

dm<br />

dm<br />

<br />

1+ τ5<br />

<br />

+dn βm<br />

<br />

1+ O(1)<br />

O(1)<br />

<br />

dm<br />

+dn<br />

dmO(1)+dnO 1<br />

∆x 2<br />

O(1)+O 1<br />

∆x 2<br />

<br />

1+ τ5<br />

βk<br />

<br />

1+ τ5<br />

βn<br />

dm<br />

<br />

<br />

<br />

+ r−1 <br />

1+ O(1)<br />

O(1)<br />

<br />

1+ O(1)<br />

O(∆x 2 )<br />

dmO(1)<br />

r−1 <br />

+<br />

j=0<br />

j=m,n<br />

dj<br />

j=0<br />

j=m,n<br />

<br />

<br />

<br />

+ r−1 <br />

j=0<br />

j=m,n<br />

dj + r−1 <br />

j=0<br />

j=m,n<br />

1+ τ5<br />

βj<br />

dj<br />

O(1)<br />

O(1)<br />

<br />

+(1−dm −dn) = O(∆x2 ).<br />

βj<br />

<br />

<br />

1+ O(1)<br />

<br />

βj<br />

Uma característica interessante <strong>de</strong>sta nova fórmula é que o peso atribuído ao estêncil<br />

68


CAPÍTULO 4. O MÉTODO 4.1. WENO-Z UMA NOVA FÓRMULA PARA OS PESOS DO WENO<br />

<strong>de</strong>scontínuo é maior do que o peso <strong>de</strong> Jiang-Shu para o mesmo estêncil. Isto é intuitivo,<br />

já que o peso <strong>de</strong> Jiang-Shu para estênceis <strong>de</strong>scontínuos é O(∆x 4 ). Po<strong>de</strong>mos verificar este<br />

fato da seguinte maneira: consi<strong>de</strong>re quaisquer estênceis Sm e Sn tais que βm ≥ βn. Então<br />

ω z m<br />

ω z n<br />

=<br />

dm<br />

<br />

<br />

1+ τ5<br />

βm<br />

<br />

= dm<br />

βm βm +τ5<br />

dn 1+ τ5 dn βn βn +τ5<br />

βn<br />

= dm<br />

2 <br />

βn βm βm +τ5<br />

=<br />

dn βm βn βn +τ5<br />

= ω(JS) m<br />

ω (JS)<br />

<br />

βm βm +τ5<br />

n<br />

βn βn +τ5<br />

≥ ω(JS) m<br />

ω (JS)<br />

n<br />

.<br />

Em particular, isto vale para Sm <strong>de</strong>scontínuo. Isto, a princípio, po<strong>de</strong> parecer uma <strong>de</strong>svan-<br />

tagem. Afinal, é perigoso atribuir um peso gran<strong>de</strong> à aproximação do estêncil <strong>de</strong>scontínuo,<br />

pois isto po<strong>de</strong> levar a oscilações e instabilida<strong>de</strong> numérica. Parece, porém, que há um limite<br />

em que se po<strong>de</strong> aumentar a contribuição do estêncil <strong>de</strong>scontínuo sem que isto acarrete<br />

problemas. E os pesos <strong>de</strong> Jiang-Shu estão abaixo <strong>de</strong>ste limite.<br />

Pelo que observamos, o WENO po<strong>de</strong> lucrar com este pequeno aumento no peso dos<br />

estênceis <strong>de</strong>scontínuos. Quanto mais peso se dá a eles, menos dissipativo é o esquema.<br />

Infelizmente não existe uma estimativa do quanto se po<strong>de</strong> aumentar do peso sem que isto<br />

gere instabilida<strong>de</strong> no sistema.<br />

4.1.1 Generalização para todo r<br />

Olhando como o medidor <strong>de</strong> suavida<strong>de</strong> global τ5 foi construído, precisamos agora cons-<br />

truir um medidor <strong>de</strong> suavida<strong>de</strong> τn que seja uma generalização do caso n = 5, principal-<br />

mente no que diz respeito à optimalida<strong>de</strong> em regiões contínuas sem pontos críticos. Para<br />

isto, vamos <strong>de</strong>finir os medidores <strong>de</strong> suavida<strong>de</strong> τn como o valor absoluto <strong>de</strong> combinações<br />

69


4.1. UMA NOVA FÓRMULA PARA OS PESOS CAPÍTULO DO WENO4.<br />

O MÉTODO WENO-Z<br />

dos medidores βk,<br />

τn =<br />

<br />

<br />

r−1<br />

<br />

<br />

k=0<br />

ckβk<br />

Queremos fazer uma escolha dos ck <strong>de</strong> modo que<br />

pois, supondo por ora que,<br />

temos então que<br />

ω z k =<br />

=<br />

dk<br />

<br />

r−1 j=0dj dk<br />

<br />

r−1<br />

j=0 dj<br />

1+ τn<br />

βk<br />

<br />

<br />

<br />

<br />

.<br />

(4.2)<br />

<br />

τn = O(∆x r+2 ), (4.3)<br />

βk = O(∆x 2 ), (4.4)<br />

<br />

1+ τn<br />

βj<br />

<br />

1+ O(∆xr+2 )<br />

O(∆x2 )<br />

<br />

<br />

1+ O(∆xr+2 )<br />

O(∆x 2 )<br />

dk(1+O(∆x<br />

=<br />

r ))<br />

(1+O(∆x r )) r−1 j=0dj = dk(1+O(∆x r ))<br />

(1+O(∆x r ))<br />

= dk(1+O(∆x r ))(1+O(∆x r )) = dk +O(∆x r ).<br />

que é condição suficiente para a optimalida<strong>de</strong>.<br />

Para manter o caráter global do medidor <strong>de</strong> suavida<strong>de</strong> τn, este por sua vez precisa<br />

conter informações sobre todos os pontos <strong>de</strong> S0,...,Sr−1, ou seja,<br />

<br />

c0 = 0, cr−1 = 0. (4.5)<br />

Neste momento uma pergunta surge: é sempre possível encontrar coeficientesc0,...,cr−1<br />

70


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

tais que τn = O(∆x r+2 )? Felizmente, a resposta é sim, e veremos este resultado traduzido<br />

em teorema na seção 4.3. Para chegar a este resultado, precisamos antes <strong>de</strong> tudo encon-<br />

trar alguns resultados auxiliares que nos guiarão à obtenção dos coeficientes que levam à<br />

optimalida<strong>de</strong>.<br />

4.2 Resultados auxiliares<br />

Antes <strong>de</strong> entrarmos em <strong>de</strong>talhes sobre a convergência do método WENO-Z, como a<br />

obtenção dos coeficientes ck em (4.2) <strong>de</strong> modo que (4.3) seja satisfeita, torna-se neces-<br />

sário obter mais informações sobre os indicadores <strong>de</strong> suavida<strong>de</strong> βk. Relembrando por<br />

conveniência a fórmula dos indicadores <strong>de</strong> suavida<strong>de</strong> βk,<br />

βk =<br />

r−1<br />

l=1<br />

∆x 2l−1<br />

xi+ 1<br />

2<br />

x i− 1 2<br />

d l<br />

dx l ˆ f k (x)<br />

2 dx,<br />

vemos que para analisar, por exemplo, que βk = O(∆x 2 ), precisamos saber mais sobre<br />

o comportamento dos polinômios ˆ f k que aproximam h no estêncil k. É a partir <strong>de</strong>stes<br />

polinômios é que po<strong>de</strong>mos obter resultados significativos a respeito do método WENO-Z.<br />

4.2.1 Representação dos polinômios ˆ f k<br />

Por simplicida<strong>de</strong>, consi<strong>de</strong>remos a partir <strong>de</strong> agora xi = 0. A partir da equação anterior<br />

vemos que, para obter qualquer informação precisa a respeito dos indicadores βk, precisa-<br />

mos antes <strong>de</strong> tudo estudar os polinômios ˆ f k . Na verda<strong>de</strong> queremos obter dois resultados<br />

importantes, resumidos no teorema a seguir:<br />

Teorema 6. Seja ρj = r−j−1 (j) (j) e f = f (0).Para todo x ∈<br />

2<br />

71<br />

<br />

<br />

x 1,x1<br />

− ,<br />

2 2<br />

ˆ fk po<strong>de</strong> ser


4.2. RESULTADOS AUXILIARES CAPÍTULO 4. O MÉTODO WENO-Z<br />

representado como<br />

com os coeficientes ak,j expressos como<br />

(a) (In<strong>de</strong>pendência)<br />

ou como<br />

(b) (Simetria)<br />

on<strong>de</strong><br />

ak,j = 1<br />

j!<br />

No caso particular l ≤ ρj,<br />

σk,j,l =<br />

ˆf k (x) = r−1<br />

j=0 ak,jx j , (4.6)<br />

ρj <br />

φ2δf (j+2δ) ∆x 2δ +O(∆x r−j ). (4.7)<br />

δ=0<br />

ak,j =<br />

∞<br />

l=0<br />

σk,jlf (j+l) ∆x l , (4.8)<br />

σk,j,l = (−1) l σr−1−k,jl<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

1<br />

j! φl mod (l,2) = 0<br />

0 caso contrário.<br />

(4.9)<br />

, (4.10)<br />

Antes <strong>de</strong> <strong>de</strong>monstrarmos, é necessário enten<strong>de</strong>r o que há por trás <strong>de</strong>ste teorema.<br />

Ele nos diz que ˆ f k é uma aproximação <strong>de</strong> h no estêncil k e seus coeficientes ak,j são<br />

aproximações da j-ésima <strong>de</strong>rivada <strong>de</strong> f no ponto xi. Além disso, expandindo ak,j, vemos<br />

que os termos <strong>de</strong> or<strong>de</strong>m até ρj não <strong>de</strong>pen<strong>de</strong>m do estêncil, pois ρj 1<br />

δ=0φ2δ j! f(j+2δ) ∆x2δ não <strong>de</strong>pen<strong>de</strong> <strong>de</strong> k. Quando δ > ρj, os coeficientes <strong>de</strong> or<strong>de</strong>m v passam a <strong>de</strong>pen<strong>de</strong>r do<br />

estêncil, mas ainda existe a possibilida<strong>de</strong> <strong>de</strong> relacioná-los com o seu estêncil simétrico.<br />

A equações (4.8) e (4.9) traduzem o fato <strong>de</strong> que, ao expandirmos os coefieicentes ak,j<br />

72


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

do polinômio ˆ f k em potências <strong>de</strong> ∆x, os coeficientes <strong>de</strong> or<strong>de</strong>m par serão iguais aos <strong>de</strong><br />

ar−1−k,j do polinômio ˆ f r−1−k , enquanto os <strong>de</strong> or<strong>de</strong>m ímpar terão sinais opostos. Todas<br />

essas proprieda<strong>de</strong>s tornam-se fáceis <strong>de</strong> se visualizar uma vez que observamos a fórmula<br />

explícita <strong>de</strong> ˆ f k para diversos casos. Por exemplo, para n = 5 e k = 0 vemos que<br />

Para n = 7 e k = 0,<br />

ˆf 0 (x) = 1<br />

ˆf 0 (x) = 2<br />

j=0 a0,jx j =<br />

= 1<br />

24 (fj−2 +2fj−1 +23fj)<br />

+<br />

+ 1<br />

2<br />

1<br />

2 (fj−2 −4fj−1 +3fj)<br />

∆x<br />

x<br />

(fj−2 −2fj−1 +fj)<br />

∆x2 x 2<br />

24 (fj−3 −4fj−2 +5fj−1 +22fj)<br />

1<br />

24 +<br />

(−7fj−3 +33fj−2 −69fj−1 +43fj)<br />

x<br />

∆x<br />

+ 1(−fj−3<br />

+4fj−2 −5fj−1 +2fj)<br />

2 ∆x2 x 2<br />

+ 1 (fj−3 −3fj−2 +3fj−1 −1fj)<br />

3! ∆x3 x 3 . (4.11)<br />

73


4.2. RESULTADOS AUXILIARES CAPÍTULO 4. O MÉTODO WENO-Z<br />

Para n = 9 e k = 0,<br />

ˆf 0 (x) =<br />

1<br />

1920 (−71fj−4 +364fj−3 −746fj−2 +684fj−1 +1689fj)<br />

1<br />

48 +<br />

(−9fj−4 +50fj−3 −120fj−2 +174fj−1 −95fj)<br />

x<br />

∆x<br />

+ 1<br />

1<br />

8<br />

2<br />

(7fj−4 −36fj−3 +74fj−2 −68fj−1 +23fj)<br />

∆x2 x 2<br />

+ 1<br />

1<br />

2<br />

3!<br />

(−3fj−4 +14fj−3 −24fj−2 +18fj−1 −5fj)<br />

∆x3 x 3 ,<br />

+ 1 (fj−4 −4fj−3 +6fj−2 −4fj−1 +fj)<br />

4! ∆x4 x 4 . (4.12)<br />

Expandindo os coeficientes ak,j em séries <strong>de</strong> Taylor em torno <strong>de</strong> 0, po<strong>de</strong>mos observar<br />

claramente que existe uma simetria entre a0,j e a2,j. Notamos também que como a1,j tem<br />

simetria com ele mesmo, os termos <strong>de</strong> or<strong>de</strong>m ímpar se cancelam:<br />

a0,0 = f − 1<br />

24 f′′ ∆x 2 + 1<br />

24 f′′′ ∆x 3 − 7<br />

288 f(4) ∆x 4 + 1<br />

96 f(5) ∆x 5<br />

a0,1 = f ′ − 1<br />

3 f′′′ ∆x 2 + 1<br />

4 f(4) ∆x 3 − 7<br />

60 f(5) ∆x 4<br />

a0,2 = 1<br />

2 f′′ − 1<br />

2 f′′′ ∆x+ 7<br />

24 f(4) ∆x 2 − 1<br />

8 f(5) ∆x 3<br />

a1,0 = f − 1<br />

24 f′′ ∆x 2 − 1<br />

288 f(4) ∆x 4<br />

a1,1 = f ′ + 1<br />

6 f′′′ ∆x 2 + 1<br />

120 f(5) ∆x 4<br />

a1,2 = 1<br />

2 f′′ + 1<br />

24 f(4) ∆x 2<br />

74<br />

(4.13)<br />

(4.14)<br />

(4.15)<br />

(4.16)<br />

(4.17)<br />

(4.18)


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

a2,0 = f − 1<br />

24 f′′ ∆x 2 − 1<br />

24 f′′′ ∆x 3 − 7<br />

288 f(4) ∆x 4 − 1<br />

96 f(5) ∆x 5<br />

a2,1 = f ′ − 1<br />

3 f′′′ ∆x 2 − 1<br />

4 f(4) ∆x 3 − 7<br />

60 f(5) ∆x 4<br />

a2,2 = 1<br />

2 f′′ + 1<br />

2 f′′′ ∆x+ 7<br />

24 f(4) ∆x 2 + 1<br />

8 f(5) ∆x 3<br />

(4.19)<br />

(4.20)<br />

(4.21)<br />

Com esta observação, po<strong>de</strong>mos agora iniciar a <strong>de</strong>monstração do teorema, que utilizará<br />

o resultado do seguinte lema:<br />

Lema 1. Seja h <strong>de</strong>finido em (2.2). Então<br />

h(x) =<br />

O Lema será provado ao final da <strong>de</strong>monstração do teorema.<br />

∞<br />

δ=0<br />

φ2δf (2δ) (x)∆x 2δ , (4.22)<br />

Demonstração (a). Lembramos também que ˆ f k é uma aproximação <strong>de</strong> h por um polinô-<br />

mio <strong>de</strong> grau r, i.e.,<br />

ˆf k (x) = h(x)+O(∆x r ). (4.23)<br />

Combinando o resultado do Lema com a equação (4.23) e expandindo f (2δ) em séries <strong>de</strong><br />

Taylor em torno <strong>de</strong> xi, temos<br />

ˆf k (x) =<br />

=<br />

=<br />

∞<br />

δ=0<br />

φ2δ∆x 2δ f (2δ) (x)+O(∆x r )<br />

∞<br />

φ2δ∆x 2δ<br />

δ=0<br />

∞<br />

∞<br />

1<br />

∞<br />

j=0<br />

1<br />

j! f(j+2δ) (0)x j +O(∆x r )<br />

φ2δ<br />

j!<br />

j=0 δ=0<br />

f(j+2δ) (0)x j ∆x 2δ +O(∆x r ). (4.24)<br />

75


4.2. RESULTADOS AUXILIARES CAPÍTULO 4. O MÉTODO WENO-Z<br />

<br />

Como x ∈ x 1,x1<br />

− , x ≤ O(∆x),<br />

2 2<br />

1<br />

φδ<br />

j! f(j+2δ) (0)x j ∆x 2δ ≤ O(∆x j+2δ ).<br />

Desta forma, paraj+2v > r−1, ou simplesmente paraδ > ρj = r−j−1<br />

,φδ 2<br />

1<br />

j! f(j+2δ) (0)xj∆x2δ ≤<br />

O(∆x r ), e portanto<br />

O(∆x r )+<br />

∞<br />

j=0<br />

Combinando (4.24) e (4.25),<br />

ˆf k (x) =<br />

∞<br />

<br />

δ=ρj<br />

δ≥0<br />

∞<br />

ρj <br />

<br />

j=0 δ=0<br />

1<br />

φ2δ<br />

j! f(j+2δ) (0)x j ∆x 2δ<br />

1<br />

φ2δ<br />

j! f(j+2δ) (0)x j ∆x 2δ<br />

<br />

= O(∆x r ). (4.25)<br />

<br />

+O(∆x r ). (4.26)<br />

Observamos também que se j > r−1, obviamente j +2δ > r −1, e com isso,<br />

De (4.26) e (4.27),<br />

O(∆x r )+<br />

∞<br />

j=r<br />

ˆf k r−1<br />

(x) =<br />

j=0<br />

∞<br />

<br />

δ=0<br />

ρj<br />

<br />

1<br />

φ2δ<br />

j! f(j+2δ) (0)x j ∆x 2δ<br />

1<br />

φ2δ<br />

j!<br />

δ=0<br />

f(j+2δ) (0)x j ∆x 2δ<br />

Colocando x j em evidência no somatório em j,<br />

como queríamos.<br />

ˆf k r−1<br />

(x) =<br />

j=0<br />

ρj<br />

<br />

1<br />

<br />

= O(∆x r ). (4.27)<br />

<br />

φ2δ<br />

j!<br />

δ=0<br />

f(j+2δ) (0)∆x 2δ +O(∆x r−j )<br />

76<br />

+O(∆x r ) (4.28)<br />

<br />

x j ,


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

Demonstração (b). Nosso objetivo é construir aproximações polinomiais <strong>de</strong> h <strong>de</strong> grau<br />

(r − 1) nos estênceis Sk e Sr−1−k. Para tal utilizaremos as funções Fk e Gk <strong>de</strong>finidas<br />

abaixo como<br />

A partir daí obtemos<br />

Fk(x 1<br />

i+ ) =<br />

2<br />

=<br />

Fk(x) =<br />

x<br />

x [k−(r−1)]− 1 2<br />

x[(r−1)−k]+<br />

1<br />

2<br />

Gk(x) = −<br />

x<br />

xi+ 1 2<br />

x [k−(r−1)]− 1 2<br />

i<br />

s=k−(r−1)<br />

h(ξ)dξ =<br />

h(ξ)dξ,<br />

h(ξ)dξ.<br />

i<br />

s=k−(r−1)<br />

xs+ 1 2<br />

x s− 1 2<br />

fs∆x, i ∈ {k −(r−1),...,k}<br />

x[(r−1)−k]+ 1<br />

2<br />

Gk(x 1<br />

i+ ) = − h(ξ)dξ = −<br />

2<br />

x<br />

i+ 1<br />

2<br />

(r−1)−k <br />

s=i+1<br />

xs+ 1 2<br />

x s− 1 2<br />

(r−1)−k <br />

= − fs∆x, i ∈ {−k,...,(r −1)−k}<br />

s=i+1<br />

h(ξ)dξ (4.29)<br />

h(ξ)dξ (4.30)<br />

Seja PF k (x) o único polinômio <strong>de</strong> grau r que interpola Fk(x) nos r + 1 pontos x 1<br />

i+ ,<br />

2<br />

i ∈ {k−r,...,k}. Da mesma forma, seja PG k (x) o único polinômio <strong>de</strong> grau menor ou igual<br />

a r que interpola Gk(x) nos pontos x 1<br />

i+ ,i ∈ {−k−1,...,(r−1)−k}. É possível mostrar<br />

2<br />

que<br />

h(x) = F ′ k(x) = P F k<br />

h(x) = G ′ k(x) = P G k<br />

′(x)+O(∆x r ), x ∈ [x[k−(r−1)]− 1<br />

2<br />

′(x)+O(∆x r ), x ∈ [x−k− 1<br />

2<br />

77<br />

,x 1<br />

k+ ],<br />

2<br />

,x 1<br />

(r−1)−k+ ],<br />

2


4.2. RESULTADOS AUXILIARES CAPÍTULO 4. O MÉTODO WENO-Z<br />

e, <strong>de</strong>sta forma,<br />

ˆf k (x) = P F k<br />

ˆf (r−1)−k (x) = P G k<br />

′(x), x ∈ [x[k−(r−1)]− 1<br />

2<br />

′(x), x ∈ [x−k− 1<br />

2<br />

,x 1<br />

k+ ],<br />

2<br />

,x 1<br />

(r−1)−k+ ],<br />

2<br />

são as aproximações que queremos. De fato, usando a fórmula <strong>de</strong> interpolação <strong>de</strong> Lagrange<br />

adaptada ao nosso contexto,<br />

com<br />

P F k (x) =<br />

P G k (x) =<br />

Usando (4.29) e (4.30), obtemos<br />

P F k (x) =<br />

P G k (x) =<br />

=<br />

=<br />

=<br />

k<br />

i=k−r<br />

(r−1)−k <br />

i=−k−1<br />

Lk,i(x) =<br />

k<br />

Fk(x 1<br />

i+ )Lk,i(x),<br />

2<br />

Gk(x 1<br />

i+ )L(r−1)−k,i(x),<br />

2<br />

k<br />

s=k−r<br />

s=i<br />

i<br />

i=k−r s=k−(r−1)<br />

(r−1)−k <br />

i=−k−1<br />

(r−1)−k <br />

i=−k−1<br />

k+1<br />

(r−1)−k <br />

s=i+1<br />

(r−1)−k <br />

s=i+1<br />

i∗ =k−(r−1) s=−i∗ +1<br />

k<br />

i=k−r<br />

(r−1)−k <br />

s=−i<br />

x−x 1<br />

s+ 2<br />

x 1<br />

i+ −x 1<br />

s+ 2 2<br />

(r−1)−k <br />

78<br />

.<br />

fs∆xLk,i(x)<br />

−fs∆xL(r−1)−k,i(x)<br />

−fs∆xLk,−i−1(−x)<br />

−fs∆xLk,i ∗ −1(−x)<br />

−fs∆xLk,i(−x)


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

Por outro lado,<br />

Logo<br />

Lk,i(x) =<br />

=<br />

=<br />

P F k (x) =<br />

P G k (x) =<br />

k<br />

k<br />

x−x 1<br />

s+ 2 =<br />

x 1<br />

s=k−r i+ −x 1<br />

s+ 2 2 s=k−r<br />

s=i<br />

s=i<br />

k <br />

1<br />

s=k−r,s=i x−(s+ 2 )∆x<br />

r<br />

j=0<br />

=<br />

Derivando as igualda<strong>de</strong>s acima,<br />

ˆf k (x) =<br />

ˆf (r−1)−k (x) =<br />

k<br />

s=k−r,s=i (i−s)∆x<br />

ck,i,j∆x −j x j<br />

k<br />

i<br />

i=k−r s=k−(r−1)<br />

k<br />

i=k−r<br />

k<br />

(r−1)−k <br />

s=−i<br />

fs<br />

−fs<br />

i=k−r s=k−(r−1)<br />

k<br />

i<br />

r<br />

j=0<br />

r<br />

j=0<br />

−f−s<br />

i=k−r s=k−(r−1) j=0<br />

k<br />

i<br />

i<br />

r<br />

r<br />

i=k−r s=k−(r−1) j=0<br />

79<br />

x−(s+ 1<br />

2 )∆x<br />

(i−s)∆x<br />

=<br />

r<br />

j=0 c1 k,i,j ∆xr−j x j<br />

c 2 k,i,j ∆xr<br />

ck,i,j∆x −(j−1) x j<br />

ck,i,j∆x −(j−1) (−x) j<br />

r<br />

j=0<br />

ck,i,j∆x −(j−1) (−x) j<br />

fsck,i,j∆x −(j−1) jx j−1<br />

−f−sck,i,j∆x −(j−1) (−1) j jx j−1


4.2. RESULTADOS AUXILIARES CAPÍTULO 4. O MÉTODO WENO-Z<br />

Fazendo Ck,i,j = jck,i,j, usando que (−1) j+1 = (−1) j−1 e reorganizando os índices,<br />

Desta forma,<br />

ˆf k (x) =<br />

ˆf (r−1)−k (x) =<br />

ak,j=<br />

⎛<br />

<br />

r−1<br />

k k<br />

s=k−(r−1) i=s<br />

⎝<br />

j=0<br />

Ck,i,j<br />

<br />

∆xj ⎛<br />

<br />

r−1<br />

k k<br />

s=k−(r−1) i=s<br />

⎝<br />

Ck,i,j<br />

<br />

∆xj j=0<br />

<br />

k k<br />

s=k−(r−1) i=sCk,i,j <br />

fs<br />

a(r−1)−k,j=<br />

∆x j<br />

k<br />

s=k−(r−1)<br />

k<br />

∆x j<br />

i=s Ck,i,j<br />

<br />

⎞<br />

fs<br />

⎠x j<br />

f−s<br />

f−s<br />

(−1) j<br />

(−1) j<br />

⎞<br />

⎠x j<br />

Expandindo fs em séries <strong>de</strong> Taylor em torno da origem, e usando que (−1) j = (−1) −j ,<br />

ak,j=<br />

<br />

k k<br />

s=k−(r−1) i=sCk,i,j ∞ δ=0<br />

a(r−1)−k,j=<br />

k<br />

s=k−(r−1)<br />

k<br />

∆x j<br />

i=s Ck,i,j<br />

Organizando os coeficientes em termos <strong>de</strong> ∆x,<br />

ak,j=<br />

⎛<br />

∞<br />

⎝<br />

δ=0<br />

a(r−1)−k,j=<br />

k<br />

s=k−(r−1)<br />

⎛<br />

∞<br />

⎝<br />

δ=0<br />

k<br />

k<br />

i=s<br />

s=k−(r−1)<br />

Ck,i,j<br />

k<br />

i=s<br />

<br />

80<br />

1<br />

δ! f(δ) (0)s δ ∆x δ<br />

∞<br />

∆x j<br />

1<br />

δ=0<br />

δ! f(δ) (0)s δ<br />

Ck,i,j<br />

<br />

1<br />

,<br />

1<br />

δ! f(δ) (0)(−1) δ s δ ∆x δ<br />

⎞<br />

⎠∆x δ−j ,<br />

δ! f(δ) (0)(−1) δ−j s δ<br />

⎞<br />

(−1) j .<br />

⎠∆x δ−j .


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

Fazendo l = δ −j, e constatando através <strong>de</strong> (4.7) que δ −j ≥ 0,<br />

Logo<br />

ak,j=<br />

⎛<br />

∞<br />

⎝<br />

l=0<br />

a(r−1)−k,j=<br />

k<br />

s=k−(r−1)<br />

⎛<br />

∞<br />

⎝<br />

l=0<br />

com σk,jl = (−1) l σr−1−k,jl.<br />

σk,j,l =<br />

σk,j,l =<br />

k<br />

k<br />

i=s<br />

s=k−(r−1)<br />

Ck,i,j<br />

k<br />

k<br />

i=s<br />

<br />

sj+l j +l! f(j+l) ⎞<br />

(0) ⎠∆x l ,<br />

Ck,i,j<br />

k<br />

s=k−(r−1) i=s<br />

k<br />

k<br />

s=k−(r−1) i=s<br />

<br />

Ck,i,j<br />

Ck,i,j<br />

s j+l<br />

(j +l)! f(j+l) (0)(−1) l<br />

sj+l j +l!<br />

sj+l j +l! (−1)l<br />

Demonstração do Lema. Usando (2.3), e expandindo h(x±∆x) em x,<br />

Integrando ambos os lados,<br />

Derivando (4.31),<br />

⎞<br />

⎠∆x l .<br />

f ′ (x) = h ′ (x)+ ∆x2<br />

4.3! h′′′ (x)+ ∆x3<br />

16.5! h(5) (x)+... (4.31)<br />

f(x) = h(x)+ ∆x2<br />

4.3! h′′ (x)+ ∆x3<br />

16.5! h(4) (x)+... (4.32)<br />

f (2) (x) = h (2) (x)+ ∆x2<br />

24 h(4) (x)+... (4.33)<br />

f (4) (x) = h (4) (x)+ ∆x2<br />

24 h(6) (x)+... (4.34)<br />

81


4.2. RESULTADOS AUXILIARES CAPÍTULO 4. O MÉTODO WENO-Z<br />

Substituindo h (2) e h (4) em (4.32),<br />

e, portanto,<br />

f = h+ ∆x2<br />

24<br />

= h+ ∆x2<br />

24 f(2) −<br />

<br />

f (2) − ∆x2<br />

24 h(4)<br />

<br />

+ ∆x5<br />

16.5! h(4) +... (4.35)<br />

4 1 1 ∆x<br />

−<br />

242 16.5! 24 f(4) +... (4.36)<br />

= h+ 1<br />

24 f(2) ∆x 2 − 7<br />

5760 f(4) ∆x 4 +... (4.37)<br />

h(x) = f(x)− 1<br />

24 f(2) ∆x 2 + 7<br />

5760 f(4) ∆x 4 −...<br />

Repetindo o processo in<strong>de</strong>finidamente para or<strong>de</strong>ns maiores <strong>de</strong> ∆x, obtemos (4.22).<br />

Estes resultados nos dão a partir <strong>de</strong> agora a possibilida<strong>de</strong> <strong>de</strong> analisar a expansão <strong>de</strong><br />

ˆf k em potências <strong>de</strong> ∆x.<br />

4.2.2 Or<strong>de</strong>m dos indicadores <strong>de</strong> suavida<strong>de</strong>s βk<br />

Nesta seção veremos um pouco mais a fundo como os indicadores <strong>de</strong> suavida<strong>de</strong> βk são<br />

construídos. Para isto, fazemos uso das equações (4.7) e (4.6):<br />

βk =<br />

=<br />

=<br />

=<br />

r−1<br />

m=1<br />

∆x 2m−1<br />

1<br />

2∆x m=1 − 1<br />

2∆x r−1<br />

∆x 2m−1<br />

1<br />

2∆x r−1<br />

m=1<br />

r−1<br />

m=1<br />

− 1<br />

2 ∆x<br />

∆x 2m−1<br />

1<br />

2∆x r−1−m <br />

j1=0<br />

r−1−m <br />

j2=0<br />

− 1<br />

2 ∆x<br />

2 ˆf k(m)<br />

(x) dx<br />

<br />

r−1−m <br />

j1=0<br />

r−1−m <br />

j1=0<br />

(j1 +m)!<br />

ak,m+j1x<br />

j1!<br />

j1<br />

<br />

r−1−m <br />

j2=0<br />

r−1−m <br />

j2=0<br />

(j1 +m)!<br />

j1!<br />

Cm,j1,j2ak,m+j1ak,m+j2∆x j1+j2+2m<br />

82<br />

(j2 +m)!<br />

ak,m+j2x<br />

j2!<br />

j2<br />

<br />

dx<br />

(j2 +m)!<br />

ak,m+j1ak,m+j2x<br />

j2!<br />

j1+j2dx (4.38)


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

com<br />

Cm,j1,j2 =<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

(j1+m)!(j2+m)!<br />

j1!j2!<br />

2 −(j 1 +j 2 )<br />

(j1+j2+1) mod (j1 +j2,2) = 0<br />

0 mod (j1 +j2,2) = 1<br />

, j = 0,...,r −1, l = 0,...,r −1.<br />

Definição 9. Para facilitar a notação do próximo teorema, usaremos a seguinte <strong>de</strong>finição:<br />

Usando (4.9), obtemos a simetria<br />

E(k,m,j1,j2,l1,l2) = Cm,j1,j2σk,m+j1,l1σk,m+j2,l2,<br />

E(k,m,j1,j2,l1,l2) = (−1) l1+l2 E(r −1−k,m,j1,j2,l1,l2).<br />

Teorema 7. 4.40βk po<strong>de</strong> ser escrito como<br />

com<br />

βk =<br />

∞<br />

M=2<br />

⌊ M<br />

2 ⌋<br />

<br />

j=1<br />

Ak,M,jf (j) f (M−j) ∆x M , (4.39)<br />

Ak,M,j = (−1) M A(r−1)−k,M,j. (4.40)<br />

Além disso, se j < r e M −j < r, Ak,M,j for in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> k, i.e., então<br />

A0,M,j = A1,M,j... = Ar−1,M,j.<br />

Demonstração. Usando a <strong>de</strong>finição <strong>de</strong> ak,j em (4.8), obtemos<br />

ak,m+j1ak,m+j2 =<br />

∞<br />

∞<br />

l1=0 l2=0<br />

σk,m+j1,l1σk,m+j2,l2f (m+j1+l1) f (m+j2+l2) ∆x l1+l2 .<br />

83


4.2. RESULTADOS AUXILIARES CAPÍTULO 4. O MÉTODO WENO-Z<br />

Substituindo na equação (4.38),<br />

βk =<br />

r−1<br />

r−1−m <br />

∞<br />

m=1 j1,j2=0 l1,l2=0<br />

E(k,m,j1,j2,l1,l2)f (m+j1+l1) f (m+j2+l2) ∆x j1+j2+2m+l1+l2 .<br />

Fixando M1 = m+j1 +l1 e M2 = m+j2 +l2, é possível organizar a soma como<br />

on<strong>de</strong><br />

e<br />

βk =<br />

∞<br />

∞<br />

<br />

M1=1 M2=1 ΩM1 ,M2 E(k,m,j1,j2,l1,l2)f (M1) f (M2) ∆x M1+M2 ,<br />

ΩM1,M2 = {(m,j1,j2,l1,l2) ∈ Ψ1 ∪...∪Ψr−1 | m+j1 +l1 = M1 e m+j2 +l2 = M2},<br />

Chamando M = M1 +M2,<br />

βk =<br />

Ψm = {1,...,r −1}×{1,...,r −1−m} 2 ×N 2<br />

∞<br />

M=2<br />

M−1 <br />

j=1<br />

<br />

Ωj,M−j<br />

E(k,m,j1,j2,l1,l2)f (j) f (M−j) ∆x M ,<br />

Como f (j) f (M−j) = f (M−j) f (M−(M−j)) , novamente reorganizamos a soma, obtendo<br />

Se<br />

βk =<br />

∞<br />

M=2<br />

⌊ M<br />

2 ⌋<br />

<br />

j=1<br />

<br />

Ωj,M−j ∪ ΩM−j,j<br />

Ak,M,j = <br />

Ωj,M−j ∪ ΩM−j,j<br />

E(k,m,j1,j2,l1,l2)f (j) f (M−j) ∆x M .<br />

84<br />

E(k,m,j1,j2,l1,l2),


CAPÍTULO 4. O MÉTODO WENO-Z 4.2. RESULTADOS AUXILIARES<br />

nós temos<br />

βk =<br />

∞<br />

M=2<br />

⌊ M<br />

2 ⌋<br />

<br />

j=1<br />

Ak,M,jf (j) f (M−j) ∆x M .<br />

Como E(k,m,j1,j2,l1,l2) = (−1) l1+l2 E(r − 1 − k,m,j1,j2,l1,l2) e j1 + j2 é sempre par<br />

(caso contrário Cm,j1,j2 = 0), temos que<br />

<br />

Ωj,M−j ∪ ΩM−j,j<br />

e portanto<br />

E(k,m,j1,j2,l1,l2) =<br />

=<br />

=<br />

<br />

Ωj,M−j ∪ ΩM−j,j<br />

<br />

Ωj,M−j ∪ ΩM−j,j<br />

<br />

Ωj,M−j ∪ ΩM−j,j<br />

Ak,M,j = (−1) M A(r−1)−k,M,j.<br />

(−1) l1+l2 E(r−1−k,m,j1,j2,l1,l2)<br />

(−1) 2m+j1+j2+l1+l2 E(r−1−k,m,j1,j2,l1,l2)<br />

(−1) M E(r−1−k,m,j1,j2,l1,l2)<br />

Po<strong>de</strong>mos ver também que se j < r e M −j < r, Ak,M,j in<strong>de</strong>pen<strong>de</strong> <strong>de</strong> k. De fato, usando<br />

(4.38) e (4.7),<br />

βk =<br />

r−1<br />

r−1−m <br />

m=1 j1,j2=0<br />

Cm,j1,j2<br />

ρm+j 1<br />

δ1=0<br />

ρm+j 2<br />

δ2=0<br />

O(∆x r−max(j1,j2)<br />

<br />

) ∆x j1+j2+2m<br />

φ2δ1φ2δ2∆x 2δ1+2δ2<br />

(m+j1)!(m+j2)! f(m+j1+2δ1) f (m+j2+2δ2) +<br />

A fórmula acima mostra que os coeficientes associados a f (m+j1+2δ1) f (m+j2+2δ2) são in<strong>de</strong>-<br />

pen<strong>de</strong>ntes <strong>de</strong> k. Desta forma, o maior valor possível para m+j1+2δ1 (e para m+j2+2δ2)<br />

85


4.3. EXISTÊNCIA DE τN<br />

é<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

<br />

r −(m+j1)−1<br />

m+j1 +2ρm+j1 = m+j 1 +2<br />

2<br />

⎧<br />

⎪⎨ r−1, se r −(m+j1) for ímpar,<br />

=<br />

⎪⎩ r−2, caso contrário.<br />

Sendo assim, se j < r e M −j < r, o coeficiente Ak,M,j in<strong>de</strong>pen<strong>de</strong> do estêncil k.<br />

Corolário 3. Se M ≤ r, Ak,M,j é in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> k para todo j ∈ {1,..., <br />

M }. 2<br />

Teorema 8.<br />

Corolário 4. Seja xi um ponto crítico <strong>de</strong> or<strong>de</strong>m ncp = 0. Então βk = O(∆x 2 ).<br />

4.3 Existência <strong>de</strong> τn<br />

Relembrando a formulação do método WENO-Z o início <strong>de</strong>ste capítulo, vemos que,<br />

para garantir a convergência <strong>de</strong> or<strong>de</strong>m n (<strong>de</strong>scrita em (3.11)), é necessário que, dado<br />

uma combinação linear τn = r−1<br />

k=0 ckβk, seja satisfeita a τn = O(∆x r+2 ). Devemos agora<br />

encontrar uma combinação dos ck que satisfaça tal proprieda<strong>de</strong>. Em outras palavras,<br />

expandindo βk em potências <strong>de</strong> ∆x, queremos que todos os termos <strong>de</strong> or<strong>de</strong>m até r+1 se<br />

anulem. Fixemos r. Usando (4.39), isto é equivalente a dizer que<br />

r−1<br />

k=0<br />

ck<br />

⎛<br />

⎜r+1<br />

<br />

⎝<br />

M=2<br />

⌊ M<br />

2 ⌋<br />

j=1<br />

Ak,M,jf (j) f (M−j) ∆x M<br />

86<br />

⎞<br />

⎟<br />

⎠ = 0. (4.41)


CAPÍTULO 4. O MÉTODO WENO-Z 4.3. EXISTÊNCIA DE τN<br />

A partir daí,<br />

0 =<br />

=<br />

r−1<br />

k=0<br />

r+1<br />

M=2<br />

ck<br />

⎛<br />

⎜<br />

r+1<br />

<br />

⎝<br />

⌊M 2 <br />

⌋<br />

j=1<br />

M=2<br />

r−1<br />

<br />

k=0<br />

⌊ M<br />

2 ⌋<br />

j=1<br />

Ak,M,jf (j) f (M−j) ∆x M<br />

ckAk,M,j<br />

<br />

⎞<br />

⎟<br />

⎠<br />

f (j) f (M−j) ∆x M .<br />

Uma condição suficiente para que a equação anterior seja válida é r−1<br />

k=0 ckAk,M,j = 0 para<br />

M = 2,...,r +1 e j = 1,..., M<br />

2<br />

<br />

A0,M,j A1,M,j ··· Ar−1,M,j<br />

, então a equação acima é válida. Em outras palavras,<br />

⎛<br />

⎜<br />

. ⎜<br />

⎝<br />

c0<br />

.<br />

cr−1<br />

⎞<br />

⎟ = 0,<br />

⎠<br />

M = 2,...,r +1,<br />

j = 1,..., <br />

M . 2<br />

(4.42)<br />

Fixemos M ≥ 2 (note que po<strong>de</strong>mos <strong>de</strong>finir M > r +1; isto será importante na próxima<br />

seção). Se para todo j a equação anterior for verda<strong>de</strong>ira, po<strong>de</strong>mos transformar o sistema<br />

<strong>de</strong> equações em uma multiplicação matricial, com o auxílio da matriz<br />

⎛<br />

⎜<br />

Br(M) = ⎜<br />

⎝<br />

e, portanto, reescrever (4.42) como<br />

⎜<br />

Br(M). ⎜<br />

⎝<br />

A0,(M−1),1 A1,(M−1),1 ··· Ar−1,(M−1),1<br />

A0,(M−1),1 A1,(M−1),1 ··· Ar−1,(M−1),1<br />

.<br />

.<br />

A 0,(M−1),⌊ M<br />

2 ⌋ A 1,(M−1),⌊ M<br />

2 ⌋ ··· A r−1,(M−1),⌊ M<br />

2 ⌋<br />

⎛<br />

c0<br />

.<br />

cr−1<br />

. ..<br />

⎞<br />

⎟<br />

⎠ =<br />

⎛ ⎞<br />

⎜ 0 ⎟<br />

⎜ ⎟<br />

⎜ .<br />

⎟<br />

⎟,<br />

⎝ ⎠<br />

0<br />

M = 2,...,r +1,<br />

87<br />

.<br />

⎞<br />

⎟<br />


4.3. EXISTÊNCIA DE τN<br />

Juntando todas as matrizes Br(M) em bloco, e construindo<br />

Po<strong>de</strong>mos novamente reescrever (4.42) como<br />

⎛ ⎞<br />

⎜<br />

Br(3)<br />

⎟<br />

⎜ ⎟<br />

Ar(M) = ⎜ .<br />

⎟<br />

⎝ ⎠<br />

Br(M)<br />

,<br />

⎛<br />

⎜<br />

Ar(r+2). ⎜<br />

⎝<br />

c0<br />

.<br />

cr−1<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

⎞<br />

⎟<br />

⎠ =<br />

⎛ ⎞<br />

⎜ 0 ⎟<br />

⎜ ⎟<br />

⎜ . ⎟<br />

⎝ ⎠<br />

0<br />

.<br />

Em outras palavras, a equação acima é válida se (c0,...,cr−1) T for um elemento do<br />

núcleo <strong>de</strong> Ar(r+2). Na verda<strong>de</strong> apenas nos interessa um elemento não-trivial do núcleo,<br />

caso contrário τn = 0. Por construção, como os elementos <strong>de</strong> Ar(r+2) não <strong>de</strong>pen<strong>de</strong>m <strong>de</strong><br />

f e suas <strong>de</strong>rivadas, os valores ck também não <strong>de</strong>pen<strong>de</strong>rão.<br />

Observação 6. Uma condição necessária e suficiente para garantir a existência <strong>de</strong> um<br />

elemento não-trivial da base <strong>de</strong> Ar(r+2) é que seu posto seja estritamente menor do que<br />

r. De fato, veremos que isto sempre será satisfeito.<br />

Observação 7. Por simplicida<strong>de</strong>, escreveremos Ar(M) = A(M) e Br(M) = B(M); no<br />

entanto, é importante lembrar que a construção <strong>de</strong>stas matrizes <strong>de</strong>pen<strong>de</strong>m intrinsicamente<br />

da or<strong>de</strong>m do método WENO-Z utilizado, ou seja, do valor <strong>de</strong> r. Além disso,<br />

Vamos a alguns exemplos:<br />

Exemplo 2. n = 5(r = 3)<br />

Vimos anteriormente em (3.8) os valores <strong>de</strong> βk para r = 3. Escolhemos ck da seguinte<br />

88


CAPÍTULO 4. O MÉTODO WENO-Z 4.3. EXISTÊNCIA DE τN<br />

forma:<br />

implicando em<br />

ou simplesmente<br />

τ5 =<br />

c0 = 1, c1 = 0, c2 = −1,<br />

<br />

<br />

<br />

13<br />

<br />

τ5 = |β0 −β2|, (4.43)<br />

3 f′′ f ′′′ −f ′ f (4)<br />

<br />

<br />

<br />

∆x5 +O(∆x 6 ).<br />

Vemos claramente que a equação acima satisfaz (4.3) e (4.5).<br />

Exemplo 3. n = 7(r = 4)<br />

Em outro exemplo, para r = 4, obtemos os seguintes valores <strong>de</strong> βk:<br />

β0 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 − 1<br />

2 f′ f (4) ∆x 5 +O(∆x 6 ),<br />

β1 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 + 1<br />

6 f′ f (4) ∆x 5 +O(∆x 6 ),<br />

β2 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 − 1<br />

6 f′ f (4) ∆x 5 +O(∆x 6 ),<br />

β3 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 + 1<br />

2 f′ f (4) ∆x 5 +O(∆x 6 ).<br />

Daí obtemos um bom candidato para τ7, que é<br />

e, consequentemente,<br />

τ7 = |β0 −β1 −β2 +β3|, (4.45)<br />

τ7 = O(∆x 6 ).<br />

Note que essa não é a única escolha que satisfaz a equação acima; po<strong>de</strong>mos também<br />

89


4.3. EXISTÊNCIA DE τN<br />

escolher<br />

Po<strong>de</strong>ríamos também escolher<br />

mas violaríamos a condição (4.5).<br />

τ7 = |2β0 −3β2 +β3|.<br />

τ7 = β 7 0 +β 7 1 −2β 7 2<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

Uma análise mais <strong>de</strong>talhada das possíveis escolhas para τ7 po<strong>de</strong> ser feita através da<br />

matriz A(7) (com as linhas nulas omitidas) que, neste caso, tem a forma<br />

⎛<br />

⎜<br />

⎝<br />

1 1 1 1<br />

13<br />

12<br />

− 1<br />

2<br />

13<br />

12<br />

13<br />

12<br />

1<br />

6 −1<br />

6<br />

13<br />

12<br />

1<br />

2<br />

⎞<br />

⎟<br />

⎠ .<br />

⎛<br />

⎜<br />

⎝<br />

c0<br />

c2<br />

c3<br />

c4<br />

<br />

,<br />

⎞ ⎛ ⎞<br />

⎟ ⎜<br />

0<br />

⎟<br />

⎟ ⎜ ⎟<br />

⎟ ⎜<br />

⎟ ⎜ 0 ⎟<br />

⎟ = ⎜ ⎟.<br />

⎟ ⎜<br />

⎟ ⎜ 0<br />

⎟<br />

⎠ ⎝ ⎠<br />

0<br />

Po<strong>de</strong>mos encontrar uma base {ρ1,ρ2} para o seu núcleo, que é dada por<br />

⎧⎛<br />

⎞ ⎛ ⎞⎫<br />

⎜<br />

2<br />

⎟ ⎜<br />

1<br />

⎟<br />

⎪⎨<br />

⎜ ⎟ ⎜ ⎟<br />

⎜ 0 ⎟ ⎜<br />

⎟ ⎜ 1 ⎟⎪⎬<br />

⎟<br />

⎜ ⎟,<br />

⎜ ⎟ .<br />

⎜ −3<br />

⎟ ⎜<br />

⎟ ⎜ −2<br />

⎟<br />

⎝ ⎠ ⎝ ⎠<br />

⎪⎩ ⎪⎭ 1 0<br />

Qualquer (c0,...,cr−1) T que seja uma combinação linear <strong>de</strong>stes elementos satisfaz τn =<br />

O(∆x r+2 ); resta apenas encontrarmos uma combinação que também satisfaça c0 = 0 e<br />

cr−1 = 0. Neste caso, uma combinação que aten<strong>de</strong> aos requisitos é (c0,...,cr−1) T = ρ1−ρ2.<br />

Exemplo 4. n = 9(r = 5)<br />

Repetindo o mesmo processo,<br />

90


CAPÍTULO 4. O MÉTODO WENO-Z 4.3. EXISTÊNCIA DE τN<br />

β0 = (f ′ ∆x) 2 + 13<br />

12 f′′2∆x 4 <br />

+<br />

β1 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

β2 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

β3 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

β4 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

− 1<br />

<br />

− 1<br />

<br />

− 1<br />

<br />

− 1<br />

360 f′′ f (4) + 781<br />

360 f′′ f (4) + 781<br />

360 f′′ f (4) + 781<br />

360 f′′ f (4) + 781<br />

720 f′′′2 − 2<br />

720 f′′′2 + 1<br />

720 f′′′2 − 1<br />

720 f′′′2 + 1<br />

5 f′ f (5)<br />

<br />

∆x 6 +O(∆x 7 ),<br />

10 f′ f (5)<br />

15 f′ f (5)<br />

10 f′ f (5)<br />

<br />

− 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2 − 2<br />

5 f′ f (5)<br />

Neste caso é bem fácil <strong>de</strong> ver diretamente um candidato para τ9,<br />

<br />

<br />

<br />

∆x 6 +O(∆x 7 ),<br />

∆x 6 +O(∆x 7 ),<br />

∆x 6 +O(∆x 7 ),<br />

<br />

∆x 6 +O(∆x 7 ).<br />

τ9 = |β0 −β4|, (4.47)<br />

mas como nem sempre é possível, é interessante olharmos para o núcleo <strong>de</strong> A(9):<br />

⎧⎛<br />

⎞ ⎛ ⎞ ⎛<br />

0 −1<br />

⎜ ⎟ ⎜ ⎟ ⎜<br />

⎜ ⎟ ⎜ ⎟ ⎜<br />

⎜<br />

⎪⎨ ⎜ −1 ⎟ ⎜<br />

⎟ ⎜ 0 ⎟ ⎜<br />

⎟ ⎜<br />

⎜ ⎟ ⎜ ⎟ ⎜<br />

⎜ 0<br />

⎟<br />

⎟,<br />

⎜ 0<br />

⎟<br />

⎟,<br />

⎜<br />

⎜ ⎟ ⎜ ⎟ ⎜<br />

⎜ ⎟ ⎜ ⎟ ⎜<br />

⎜ 1 ⎟ ⎜ 0 ⎟ ⎜<br />

⎝ ⎠ ⎝ ⎠ ⎝<br />

⎪⎩<br />

0 1<br />

− 1<br />

3<br />

− 2<br />

3<br />

1<br />

0<br />

0<br />

⎞⎫<br />

⎟<br />

⎟⎪⎬<br />

⎟ .<br />

⎟<br />

⎠<br />

⎪⎭<br />

Observamos que a dimensão do núcleo cresce à medida que r aumenta. De fato, é<br />

possível observar que para cada r, a dimensão do núcleo <strong>de</strong> A(r + 2) é r − 2, e que,<br />

portanto, sempre existirá uma combinação que satisfaça τn = O(∆x r+2 ). Este fato será<br />

provado no teorema que virá a seguir, mas antes vamos observar mais um caso:<br />

Exemplo 5. n = 11(r = 6)<br />

91


4.3. EXISTÊNCIA DE τN<br />

β0 = (f ′ ∆x) 2 + 13<br />

12 f′′2∆x 4 <br />

+<br />

β1 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

β2 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

β3 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

β4 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

β5 = (f ′ ∆x) 2 + 13<br />

12 f′′2 ∆x 4 +<br />

e um candidato para τ11 é<br />

− 1<br />

<br />

− 1<br />

<br />

− 1<br />

<br />

− 1<br />

<br />

− 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

<br />

<br />

<br />

<br />

<br />

∆x 6 − 1<br />

3 f′ f (6) ∆x 7 +O(∆x 8 ),<br />

∆x 6 + 1<br />

15 f′ f (6) ∆x 7 +O(∆x 8 ),<br />

∆x 6 − 1<br />

30 f′ f (6) ∆x 7 +O(∆x 8 ),<br />

∆x 6 + 1<br />

30 f′ f (6) ∆x 7 +O(∆x 8 ),<br />

∆x 6 − 1<br />

15 f′ f (6) ∆x 7 +O(∆x 8 ),<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

<br />

− 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

<br />

∆x 6 + 1<br />

3 f′ f (6) ∆x 7 +O(∆x 8 ),<br />

τ11 = |β0 −β1 −β4 +β5|. (4.49)<br />

Olhando mais atentamente para (4.43) e (4.47), vemos que τ5 e τ9 têm formas muito<br />

similares. Além disso, olhando para (4.45) e (4.49), verificamos que τ7 e τ11 também<br />

apresentam uma forma parecida. Por trás <strong>de</strong>ste fato resi<strong>de</strong> uma proprieda<strong>de</strong> ainda mais<br />

geral que po<strong>de</strong> ser resumida no seguinte teorema:<br />

Teorema 9. Seja n = 2r − 1 a or<strong>de</strong>m da reconstrução WENO. Então o indicador <strong>de</strong><br />

suavida<strong>de</strong> <strong>de</strong> alta or<strong>de</strong>m<br />

τn =<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

é tal que τn = O(∆x r+2 ).<br />

|β0 −βr−1| mod (r,2) = 1,<br />

|β0 −β1 −βr−2 +βr−1| mod (r,2) = 0<br />

92


CAPÍTULO 4. O MÉTODO WENO-Z 4.3. EXISTÊNCIA DE τN<br />

Demonstração. A i<strong>de</strong>ia principal é usar a simetria geométrica e a antissimetria entre ˆ f k<br />

e ˆ f r−1−k <strong>de</strong> forma a obter uma relação entre seus coeficientes ak,j and ar−1−k,j.<br />

Usando a <strong>de</strong>finição <strong>de</strong> βk em (4.39) e a simetria em (4.40), obtemos<br />

β0 =<br />

β1 =<br />

βr−2 =<br />

βr−1 =<br />

∞<br />

M=2<br />

∞<br />

M=2<br />

∞<br />

M=2<br />

∞<br />

M=2<br />

⌊ M<br />

2 ⌋<br />

<br />

j=1<br />

⌊ M<br />

2 ⌋<br />

<br />

j=1<br />

⌊ M<br />

2 ⌋<br />

<br />

j=1<br />

⌊ M<br />

2 ⌋<br />

<br />

j=1<br />

A0,M,jf (j) f (M−j) ∆x M ,<br />

A1,M,jf (j) f (M−j) ∆x M ,<br />

A1,M,jf (j) f (M−j) ∆x M (−1) M ,<br />

A0,M,jf (j) f (M−j) ∆x M (−1) M .<br />

Queremos encontrar uma combinação linear dos βk acima <strong>de</strong> forma que a soma <strong>de</strong><br />

todos os termos <strong>de</strong> or<strong>de</strong>m O(∆x k ) sejam nulos para k < r + 2. Em outras palavras,<br />

procuramos constantes não-triviais c0,c1,cr−2,cr−1 tais que<br />

c0β0 +c1β1 +cr−2βr−2 +cr−1βr−1 = 0,<br />

para todos os termos <strong>de</strong> or<strong>de</strong>m até O(∆x r+1 ). Com isso, obteremos τ = O(∆x r+2 ).<br />

Usando o Corolário (3), todos os coeficientes <strong>de</strong> βk associados aos termos ∆x M ,M < r<br />

são iguais.<br />

• Supondor ímpar, r+1 é par, e os coeficientes <strong>de</strong>β0 eβr−1 associados ao termo∆x r+1<br />

são iguais. Além disso, os coeficientes β0 e βr−1 associados aos termos ∆x M ,M ≤<br />

r+1 são iguais, e portanto<br />

β0 −βr−1 = O(∆x r+2 ).<br />

93


4.4. ORDEM MÁXIMA DE τN<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

• Supondor par, r+1 é ímpar, e o coeficiente associado ao termo∆x r+1 <strong>de</strong>βk+βr−1−k<br />

é nulo (<strong>de</strong>vido à simetria encontrada em (4.40)), e para M < r + 1, o coeficiente<br />

<strong>de</strong> ∆x M ⌊M 2 ⌋<br />

é igual a 2 j=1 Ak,M,jf (j) f (M−j) . Isto significa que os coeficientes <strong>de</strong><br />

(β0 +βr−1)−(β1 +βr−2) <strong>de</strong> or<strong>de</strong>m ∆x M ,M ≤ r+1 são nulos, proporcionando<br />

4.4 Or<strong>de</strong>m máxima <strong>de</strong> τn<br />

β0 −β1 −βr−2 +βr−1 = O(∆x r+2 ).<br />

Até este ponto, vimos que é possível encontrar τn = O(∆x r+2 ) <strong>de</strong> modo a garantir<br />

que a <strong>de</strong>rivada no método WENO-Z seja aproximada com or<strong>de</strong>m n, <strong>de</strong>s<strong>de</strong> que βk =<br />

O(∆x 2 ), i.e., que ncp = 0, com ncp <strong>de</strong>finido em (3.9). No entanto, se ncp = 1, temos<br />

pelo primeiro resultado do Teorema 7, que, na vizinhança do ponto crítico, βk = O(∆x 4 ),<br />

e, consequentemente, ω ±<br />

k − dk = O(∆x r−2 ), que não é condição suficiente para garantir<br />

or<strong>de</strong>m n no método. Além disso, se r > 3 , por exemplo, e ncp = 2, βk = O(∆x 6 ) e<br />

portanto, ω ±<br />

k −dk = O(∆x r−4 ). A partir <strong>de</strong>ste fato e relembrando a discussão da seção<br />

4.2.2, vemos que à medida que o valor <strong>de</strong>ncp aumenta, a or<strong>de</strong>m <strong>de</strong> convergência do WENO<br />

(não importando se é o WENO clássico ou WENO-Z) <strong>de</strong>ixará <strong>de</strong> aten<strong>de</strong>r a condição <strong>de</strong><br />

optimalida<strong>de</strong>. Em outras palavras, τn = O(∆x r+2 ) não é mais uma condição que aten<strong>de</strong><br />

ω ±<br />

k − dk = O(∆x r ) em regiões com pontos críticos. Para contornar este problema, uma<br />

solução é encontrar τn = O(∆x m ), m ≥ r +2 que compense o aumento da or<strong>de</strong>m <strong>de</strong> βk.<br />

Desta forma, o que po<strong>de</strong>mos é, para cada r, encontrar M2r−1 = Mn, o maior valor possível<br />

<strong>de</strong> m tal que existam coeficientes {c0,...,cr−1} que gerem τn = O(∆x Mn ) = 0.<br />

Da mesma forma que fizemos na seção anterior, po<strong>de</strong>mos reescrever τn = O(∆x m )<br />

94


CAPÍTULO 4. O MÉTODO WENO-Z 4.4. ORDEM MÁXIMA DE τN<br />

como<br />

r−1<br />

k=0<br />

ck<br />

⎛<br />

m−1<br />

⎜<br />

<br />

⎝<br />

M=2<br />

⌊ M<br />

2 ⌋<br />

j=1<br />

Ak,M,jf (j) f (M−j) ∆x M<br />

⎞<br />

⎟<br />

⎠ = 0.<br />

e estabelecer uma condição suficiente para que a equação acima seja válida:<br />

⎛<br />

⎜<br />

A(m). ⎜<br />

⎝<br />

c0<br />

.<br />

cr−1<br />

⎞<br />

⎟<br />

⎠ =<br />

⎛ ⎞<br />

⎜ 0 ⎟<br />

⎜ ⎟<br />

⎜ . ⎟<br />

⎝ ⎠<br />

0<br />

, (c0,...,cr−1) T = 0<br />

Em outras palavras, o que queremos é encontrar o maior valor possível <strong>de</strong> m tal que a<br />

matriz A(m) ainda tenha uma base não-trivial, i.e., tal que seu posto seja menor do que<br />

r.<br />

Observamos que à medida que o valor <strong>de</strong> m aumenta, o valor do posto <strong>de</strong> A(m),<br />

rank(A(m)), também aumenta. Queremos encontrar uma fórmula para esse aumento e<br />

a partir daí uma fórmula fechada para rank(A(m)).<br />

Nossa estratégia se baseia em encontrar rank(A(m + 1)) a partir <strong>de</strong> rank(A(m)).<br />

Desta forma, para encontrar A(m+1), basta adicionar a A(m) as linhas <strong>de</strong> B(m+1):<br />

A(m+1) =<br />

⎛<br />

⎜<br />

⎝ A(m)<br />

B(m+1)<br />

Observação 8. As linhas que serão adicionadas terão impacto direto no aumento do<br />

posto <strong>de</strong> A(m + 1). No caso em que a linha formada pelos elementos Ak,M,j <strong>de</strong>pen<strong>de</strong><br />

<strong>de</strong> k, iremos supor que, ao tomarmos quaisquer duas linhas com essa proprieda<strong>de</strong>, estas<br />

serão linearmente in<strong>de</strong>pen<strong>de</strong>ntes dois a dois. <strong>Não</strong> provaremos esta suposição, mas ela<br />

parece ser verda<strong>de</strong>ira, pois não encontramos nenhum contra-exemplo até agora. De fato,<br />

95<br />

⎞<br />

⎟<br />

⎠.


4.4. ORDEM MÁXIMA DE τN<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

a afirmação é válida para r ≤ 20. Se por acaso existir algum contra-exemplo em or<strong>de</strong>ns<br />

maiores que 20, o que po<strong>de</strong>rá acontecer é que para alguns valores <strong>de</strong> r, o valor encontrado<br />

<strong>de</strong> M2r−1 será ligeiramente maior, ou seja, um caso melhor do que esperávamos.<br />

Para facilitar, vamos a um exemplo numérico. Com r = 5 , escrevemos os indicadores<br />

<strong>de</strong> suavida<strong>de</strong> βk, k = 0,...,4, explicitando os termos até or<strong>de</strong>m 8:<br />

β0 = (f ′ ∆x) 2 + 13<br />

12 f′′2∆x 4 +<br />

<br />

2<br />

+<br />

+<br />

<br />

− 2<br />

5 f′ f (5) − 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

<br />

∆x 6<br />

<br />

∆x 7<br />

3 f′ f (6) − 9<br />

5 f′′ f (5)<br />

<br />

− 13<br />

21 f′ f (7) + 1235<br />

432 f′′ f (6) − 5467<br />

1440 f′′′ f (5) + 32803<br />

30240 f(4)2<br />

1<br />

<br />

∆x 8 +O(∆x 9 ),<br />

<br />

∆x 6<br />

β1 = (f ′ ∆x) 2 + 13<br />

12 f′′2∆x 4 +<br />

10 f′ f (5) − 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

<br />

+ − 1<br />

12 f′ f (6) + 11<br />

60 f′′ f (5)<br />

<br />

∆x 7<br />

<br />

1<br />

+<br />

21 f′ f (7) − 251<br />

2160 f′′ f (6) − 781<br />

1440 f′′′ f (5) + 32803<br />

30240 f(4)2<br />

<br />

∆x 8 +O(∆x 9 ),<br />

<br />

∆x 6<br />

β2 = (f ′ ∆x) 2 + 13<br />

12 f′′2∆x 4 <br />

+ − 1<br />

15 f′ f (5) − 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

<br />

+ − 1<br />

126 f′ f (7) − 53<br />

2160 f′′ f (6) + 781<br />

1440 f′′′ f (5) + 32803<br />

30240 f(4)2<br />

<br />

∆x 8 +O(∆x 9 ),<br />

β3 = (f ′ ∆x) 2 + 13<br />

12 f′′2∆x 4 +<br />

<br />

1<br />

+<br />

+<br />

1<br />

10 f′ f (5) − 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

<br />

∆x 7<br />

<br />

∆x 6<br />

12 f′ f (6) − 11<br />

60 f′′ f (5)<br />

<br />

1<br />

21 f′ f (7) − 251<br />

2160 f′′ f (6) − 781<br />

1440 f′′′ f (5) + 32803<br />

30240 f(4)2<br />

<br />

∆x 8 +O(∆x 9 ),<br />

96


CAPÍTULO 4. O MÉTODO WENO-Z 4.4. ORDEM MÁXIMA DE τN<br />

β4 = (f ′ ∆x) 2 + 13<br />

12 f′′2∆x 4 +<br />

<br />

+ − 2<br />

+<br />

<br />

− 2<br />

5 f′ f (5) − 1<br />

360 f′′ f (4) + 781<br />

720 f′′′2<br />

<br />

∆x 7<br />

<br />

∆x 6<br />

3 f′ f (6) + 9<br />

5 f′′ f (5)<br />

<br />

− 13<br />

21 f′ f (7) + 1235<br />

432 f′′ f (6) − 5467<br />

1440 f′′′ f (5) + 32803<br />

30240 f(4)2<br />

<br />

∆x 8 +O(∆x 9 ),<br />

Com base nas equações acima, escrevemos as matrizes A(m) (com as linhas <strong>de</strong> valor nulo<br />

omitidas) como<br />

A(6) =<br />

⎛<br />

⎜<br />

A(7) = ⎜<br />

⎝<br />

⎛<br />

⎜<br />

A(8) = ⎜<br />

⎝<br />

⎛<br />

⎜<br />

⎝<br />

1 1 1 1 1<br />

13<br />

12<br />

13<br />

12<br />

13<br />

12<br />

13<br />

12<br />

13<br />

12<br />

⎞<br />

⎟<br />

⎠,<br />

1 1 1 1 1<br />

13<br />

12<br />

− 2<br />

5<br />

− 1<br />

360<br />

781<br />

720<br />

13<br />

12<br />

13<br />

12<br />

1<br />

10 − 1<br />

15<br />

− 1<br />

360<br />

781<br />

720<br />

− 1<br />

360<br />

781<br />

720<br />

13<br />

12<br />

13<br />

12<br />

1 − 10 2<br />

5<br />

− 1<br />

360<br />

781<br />

720<br />

− 1<br />

360<br />

781<br />

720<br />

1 1 1 1 1<br />

13<br />

12<br />

− 2<br />

5<br />

− 1<br />

360<br />

781<br />

720<br />

13<br />

12<br />

13<br />

12<br />

1 − 10 1<br />

15<br />

− 1<br />

360<br />

781<br />

720<br />

− 1<br />

360<br />

781<br />

720<br />

13<br />

12<br />

13<br />

12<br />

1 − 10 2<br />

5<br />

− 1<br />

360<br />

781<br />

720<br />

− 1<br />

360<br />

781<br />

720<br />

2 − 3 1 1 0 − 12 12 2<br />

3<br />

− 9<br />

5<br />

11 0 − 60 11<br />

60<br />

97<br />

9<br />

5<br />

⎞<br />

⎟<br />

⎟,<br />

⎟<br />

⎠<br />

⎞<br />

⎟<br />

⎟,<br />

⎟<br />


4.4. ORDEM MÁXIMA DE τN<br />

⎛<br />

⎜<br />

A(9) = ⎜<br />

⎝<br />

1 1 1 1 1<br />

13<br />

12<br />

− 2<br />

5<br />

− 1<br />

360<br />

781<br />

720<br />

2<br />

3<br />

− 9<br />

5<br />

− 13<br />

21<br />

1235<br />

432<br />

− 5467<br />

1440<br />

32803<br />

30240<br />

13<br />

12<br />

1<br />

10<br />

− 1<br />

360<br />

781<br />

720<br />

13<br />

12<br />

− 1<br />

15<br />

− 1<br />

360<br />

781<br />

720<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

13<br />

12<br />

1<br />

10<br />

− 1<br />

360<br />

781<br />

720<br />

− 1<br />

12 0 1<br />

12<br />

11 0 − 60 11<br />

60<br />

1 − 21 1<br />

126<br />

− 251<br />

2160<br />

− 781<br />

1440<br />

32803<br />

30240<br />

− 53<br />

2160<br />

781<br />

1440<br />

32803<br />

30240<br />

1<br />

21<br />

− 251<br />

2160<br />

13<br />

12<br />

− 2<br />

5<br />

− 1<br />

360<br />

781<br />

720<br />

− 2<br />

3<br />

9<br />

5<br />

− 13<br />

21<br />

1235<br />

432<br />

− 781<br />

1440 −5467<br />

1440<br />

32803<br />

30240<br />

Observamos que o posto <strong>de</strong> cada uma das matrizes é<br />

e neste caso, portanto, M9 = 8.<br />

rank(A(6)) = 1,<br />

rank(A(7)) = 2,<br />

rank(A(8)) = 4,<br />

rank(A(9)) = 5,<br />

32803<br />

30240<br />

Po<strong>de</strong>mos agora discutir como o posto <strong>de</strong> A(m) varia à medida que o valor <strong>de</strong> m<br />

aumenta.<br />

Primeiramente, é fácil ver que rank(A(r + 1)) = 1, pois pelo Corolário 3, A0,M,j =<br />

... = Ar−1,M,j para M ≤ r, e, portanto, todas as linhas são linearmente <strong>de</strong>pen<strong>de</strong>ntes.<br />

Fixemos agora m > r + 1. Para cada m, queremos ver quantas linhas <strong>de</strong> B(m)<br />

<strong>de</strong>pen<strong>de</strong>m <strong>de</strong> k. Estas linhas serão as responsáveis pelo aumento do posto <strong>de</strong> A(m).<br />

98<br />

⎞<br />

⎟<br />

⎟,<br />

⎟<br />


CAPÍTULO 4. O MÉTODO WENO-Z 4.4. ORDEM MÁXIMA DE τN<br />

Pelo Teorema 7, os elementos que não <strong>de</strong>pen<strong>de</strong>m <strong>de</strong> k são da forma Ak,M,j, com j < r e<br />

m−j < r. Logo o número <strong>de</strong> linhas novas que não <strong>de</strong>pen<strong>de</strong>m <strong>de</strong> k é a cardinalida<strong>de</strong> do<br />

conjunto<br />

<br />

m<br />

<br />

j ∈ 1,...,<br />

2<br />

<br />

| j ≥ r ou m−j ≥ r ,<br />

que é rank(B(m)) = m − r (observe que usamos fortemente a suposição contida na<br />

observação [?]).<br />

Em um primeiro momento po<strong>de</strong>ríamos então imaginar querank(A(m+1)) = rank(A(m))+<br />

rank(B(m+1)), mas isto não é verda<strong>de</strong>. Para enten<strong>de</strong>r melhor como o posto aumenta,<br />

precisamos analisar as linhas <strong>de</strong> A(m).<br />

Se r for ímpar, temos que as linhas são da forma<br />

<br />

A0,m,j A1,m,j ··· Ar−1<br />

2 ,m,j ··· Ar−2,m,j Ar−1,m,j<br />

Com o auxílio da simetria em (2.1),<br />

<br />

<br />

.<br />

A0,m,j A1,m,j ··· Ar−1<br />

2 ,m,j ··· (−1) m A1,m,j (−1) m A0,m,j<br />

Consi<strong>de</strong>rando o espaço formado por estas linhas, vemos que as linhas contém <br />

r variáveis 2<br />

livres, A0,m,j,...,Ar−1<br />

2 ,m,j se m for par e <br />

r variáveis livres se m for ímpar, pois neste caso<br />

2<br />

Ar−1<br />

2<br />

,m,j = −Ar−1,m,j<br />

= 0, excluindo esta variável livre. Se r for par, não existe termo<br />

2<br />

r<br />

central Ar−1<br />

,m,j, e portanto há sempre<br />

2 2<br />

m.<br />

<br />

.<br />

variáveis livres, in<strong>de</strong>pen<strong>de</strong>ntemente do valor <strong>de</strong><br />

Ainda no contexto dos espaços formados pelas linhas, vemos através do termo (−1) m<br />

que o k-ésimo elemento <strong>de</strong> cada linha po<strong>de</strong> ser igual ou simétrico ao (r − 1 − k)-ésimo<br />

elemento. Essa dualida<strong>de</strong> nos perimite construir dois espaços distintos, V + eV − , <strong>de</strong>finidos<br />

99


4.4. ORDEM MÁXIMA DE τN<br />

por<br />

V + =<br />

V − =<br />

<br />

<br />

a0 a1 ··· ar−1<br />

a0 a1 ··· ar−1<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

<br />

∈ R r <br />

| ak = ar−1−k, k = 0,...,r −1 ,<br />

<br />

∈ R r <br />

| ak = −ar−1−k, k = 0,...,r −1 ,<br />

com dimensões <br />

r r e respectivamente (note que com r par as dimensões são iguais).<br />

2 2<br />

Note que V + ∩ V − = 0. Se separarmos A(m) nestes dois espaços, formando duas<br />

novas matrizes A + (m) e A − (m), que contém apenas linhas <strong>de</strong> V + e V − respectivamente,<br />

temos que<br />

rank(A(m)) = rank(A + (m))+rank(A − (m)).<br />

Observação 9. Aproveitemos para observar que rank(A + (r + 1)) = 1 e rank(A − (r +<br />

1)) = 0, uma vez que os elementos Ak,m,j in<strong>de</strong>pen<strong>de</strong>m do estêncil k (vi<strong>de</strong> Corolário 3) e,<br />

portanto, todas as linhas <strong>de</strong> A(m) são linearmente <strong>de</strong>pen<strong>de</strong>ntes e pertencentes a V + .<br />

Com esta separação po<strong>de</strong>mos agora <strong>de</strong>finirrank(A(m+1)) em termos <strong>de</strong>rank(A(m)).<br />

Com efeito, adicionando as linhas <strong>de</strong> B(m+1), vemos que se m for par, apenas o posto<br />

<strong>de</strong> A + (m + 1) aumentará, pois B(m + 1) ⊂ V + , enquanto que se m for ímpar, apenas<br />

o posto <strong>de</strong> A − (m + 1) aumentará, pois B(m + 1) ⊂ V − . Por outro lado, esse aumento<br />

está limitado em r<br />

2<br />

para rank(A + (m+1)) e r<br />

2<br />

dimensão dos espaços. Desta forma,<br />

rank(A + (m+1)) =<br />

rank(A − (m+1)) =<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

para rank(A − (m+1)), por conta da<br />

min rank(A + (m))+rank(B(m+1)), <br />

r , m par 2<br />

rank(A + (m)), m ímpar<br />

rank(A− (m)), m par<br />

<br />

, m ímpar<br />

min rank(A − (m))+rank(B(m+1)), r<br />

2<br />

100


CAPÍTULO 4. O MÉTODO WENO-Z 4.4. ORDEM MÁXIMA DE τN<br />

Combinando as duas equações acima,<br />

⎧<br />

⎪⎨<br />

rank(A(m+1)) =<br />

⎪⎩<br />

min rank(A + (m))+rank(B(m+1)), <br />

r − +rank(A (m)), m par<br />

2<br />

rank(A + (m))+min rank(A − (m))+rank(B(m+1)), r<br />

2<br />

, m ímpar<br />

A partir <strong>de</strong>ste resultado obtemos uma relação <strong>de</strong> recorrência para rank(A(m)), com<br />

condições iniciais rank(A + (r + 1)) = 1 e rank(A − (r + 1)) = 0. A partir do resultado<br />

acima po<strong>de</strong>mos chegar à seguinte conclusão:<br />

Teorema 10. O posto <strong>de</strong> A(m+1), m ≥ r, possui a seguinte forma fechada:<br />

com<br />

<br />

rank(A(m+1)) = max ρ + (m+1),<br />

<br />

r<br />

<br />

+max ρ<br />

2<br />

− (m+1),<br />

ρ + ⎧<br />

⎪⎨ 1+<br />

(m+1) =<br />

⎪⎩<br />

<br />

m−r 2,<br />

r ímpar,<br />

2<br />

1+ <br />

m−r m−r +1 , r par,<br />

2 2<br />

ρ − ⎧<br />

⎪⎨<br />

<br />

m−r m−r +1 , r ímpar,<br />

2 2<br />

(m+1) =<br />

⎪⎩<br />

2, r par.<br />

m−r<br />

2<br />

<br />

r<br />

<br />

,<br />

2<br />

Demonstração. Usaremos o fato <strong>de</strong> que rank(A + (r + 1)) = 1, rank(A − (r + 1)) = 0 e<br />

rank(B(m)) = m − r. Para cada caso (r par e r ímpar), veremos como os postos <strong>de</strong><br />

A + (r +1) e A − (r +1) aumentarão.<br />

Consi<strong>de</strong>re inicialmente r ímpar. Usando as relações <strong>de</strong> recorrência para rank(A + (m+<br />

1)) e rank(A − (m+1)), e lembrando que r+1 é par,<br />

rank A + (r +2) <br />

r<br />

<br />

= min 1+1, ,<br />

2<br />

rank A − (r +2) = rank A − (r +1) = 0.<br />

101


4.4. ORDEM MÁXIMA DE τN<br />

De maneira análoga,<br />

rank A + (r +3) = rank A + (r +2) <br />

= min<br />

rank A − (r +3) = min<br />

<br />

0+2,<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

r<br />

2<br />

<br />

.<br />

Usando que min(min(a,b)+c,b)) = min(a+c,b) para a,b,c ≥ 0,<br />

1+1,<br />

<br />

r<br />

<br />

,<br />

2<br />

rank A + (r +4) <br />

r<br />

<br />

r<br />

<br />

= min min 1+1, +3,<br />

<br />

2 2<br />

r<br />

<br />

= min 1+1+3, ,<br />

2<br />

rank A − (r +4) = rank A − (r +3) <br />

r<br />

<br />

= min 0+2, .<br />

2<br />

rank A + (r +5) = rank A + (r +4) <br />

r<br />

<br />

= min 1+1+3, ,<br />

2<br />

rank A − (r +5) <br />

r<br />

<br />

r<br />

<br />

= min min 0+2, +4,<br />

<br />

2 2<br />

r<br />

<br />

= min 0+2+4, .<br />

2<br />

Po<strong>de</strong>mos ver que para k ≥ 1, rank(A ± (r +k)) assume a forma rank(A + (r+k)) =<br />

min ρ + (r+k), <br />

r − − r<br />

e rank(A (r+k)) = min ρ (r +k), . Basta-nos agora encon-<br />

2<br />

2<br />

trar os valores <strong>de</strong> ρ ± (k). Com efeito, organizando os valores encontrados acima na tabela<br />

abaixo, vemos claramente o padrão que se forma:<br />

r+1 r+2 r+3 r+4 r+5 r+6<br />

ρ + (r +k) 1 1+1 1+1 1+(1+3) 1+(1+3) 1+(1+3+5)<br />

ρ − (r +k) 0 0 0+2 0+2 0+(2+4) 0+(2+4)<br />

Fica evi<strong>de</strong>nte que o valor <strong>de</strong> ρ ± (k) aumenta como uma soma <strong>de</strong> progressão aritmética a<br />

102


CAPÍTULO 4. O MÉTODO WENO-Z 4.4. ORDEM MÁXIMA DE τN<br />

cada vez que k é acrescido em 2. Desta forma,<br />

ρ + ⌊<br />

(r+k) = 1+<br />

k<br />

2⌋<br />

(2i−1) = 1+<br />

ρ − (r+k) =<br />

i=1<br />

⌊k−1 2 ⌋<br />

<br />

i=1<br />

2i =<br />

<br />

1+<br />

2 k<br />

2<br />

<br />

k −1 k −1<br />

Escrevendo r+k = m+1, substituindo nas equações acima,<br />

Logo, obtemos<br />

ρ + 2 2 m−r+1 m−r<br />

(m+1) = 1+ = 1+<br />

2 2<br />

ρ − <br />

m−r m−r<br />

(m+1) = 1+<br />

2 2<br />

rank A + (m+1) 2 m−r<br />

<br />

r<br />

<br />

= min 1+ ,<br />

2 2<br />

<br />

,<br />

rank A − (m+1) <br />

m−r m−r<br />

<br />

r<br />

<br />

= min +1 ,<br />

2 2 2<br />

<br />

,<br />

como <strong>de</strong>sejado. Agora consi<strong>de</strong>remos agora o caso r par. Obtemos <strong>de</strong> forma análoga<br />

A + (r+2) = A + (r+1) = 1,<br />

<br />

− r<br />

<br />

A (r+2) = min 0+1,<br />

2<br />

<br />

+ r<br />

<br />

A (r +3) = min 1+2, ,<br />

2<br />

A − (r +3) = A − (r+2) = min<br />

103<br />

2<br />

2<br />

<br />

r<br />

<br />

0+1,<br />

2


4.4. ORDEM MÁXIMA DE τN<br />

CAPÍTULO 4. O MÉTODO WENO-Z<br />

<br />

+ + r<br />

<br />

A (r +4) = A (r +3) = min 1+2, ,<br />

2<br />

<br />

− r<br />

<br />

r<br />

<br />

A (r +4) = min min 0+1, +3,<br />

<br />

2 2<br />

r<br />

<br />

= min 0+1+3, ,<br />

2<br />

<br />

+ r<br />

<br />

r<br />

<br />

A (r+5) = min min 1+2, +4, ,<br />

<br />

2 2<br />

r<br />

<br />

= min 1+2+4,<br />

2<br />

<br />

− − r<br />

<br />

A (r+5) = A (r+4) = min 0+1+3, .<br />

2<br />

Construindo novamente a tabela,<br />

obtemos<br />

r+1 r+2 r+3 r+4 r+5 r+6<br />

ρ + (r +k) 1 1 1+2 1+2 1+(2+4) 1+(2+4)<br />

ρ − (r +k) 0 0+1 0+1 0+(1+3) 0+(1+3) 0+(1+3+5)<br />

ρ + (r+k) = 1+<br />

ρ − (r+k) =<br />

⌊ k−1<br />

2 ⌋<br />

<br />

i=1<br />

2i = 1+<br />

<br />

1+<br />

⌊k 2⌋<br />

2 k −1<br />

(2i−1) =<br />

2<br />

Escrevendo r+k = m+1, substituindo nas equações acima,<br />

i=1<br />

<br />

k −1 k −1<br />

ρ + <br />

m−r m−r<br />

(m+1) = 1+ 1+<br />

2 2<br />

ρ − 2 2 m−r+1 m−r<br />

(m+1) = =<br />

2 2<br />

104<br />

2<br />

2


CAPÍTULO 4. O MÉTODO WENO-Z 4.4. ORDEM MÁXIMA DE τN<br />

como queremos.<br />

<br />

+<br />

A (m+1) = min 1+<br />

A − (m+1) = min<br />

<br />

1+<br />

m−r<br />

2<br />

<br />

m−r m−r<br />

<br />

r<br />

<br />

,<br />

2 2 2<br />

<br />

,<br />

2 <br />

r<br />

<br />

,<br />

2<br />

<br />

,<br />

A partir do valor obtido para rank(A(m)) po<strong>de</strong>mos encontrar Mn, que é simplesmente<br />

o maior valor possível <strong>de</strong> m tal que rank(A(m)) < r.<br />

A tabela a seguir contém, para cada n, o valor <strong>de</strong> Mn:<br />

r n Mn r n Mn<br />

3 5 5 12 23 17<br />

4 7 7 13 25 18<br />

5 9 8 14 27 19<br />

6 11 9 15 29 21<br />

7 13 11 16 31 22<br />

8 15 12 17 33 23<br />

9 17 13 18 35 24<br />

10 19 15 19 37 25<br />

11 21 16 20 39 27<br />

A partir da tabela acima po<strong>de</strong>mos ver que quanto maior for r, a diferença Mn − r,<br />

aumenta, isto é, à medida quer aumenta, existe ainda a possibilida<strong>de</strong> do esquema garantir<br />

a optimalida<strong>de</strong> mesmo com a presença <strong>de</strong> pontos críticos. Por exemplo, quando r = 7,<br />

temos que se ncp = 1, então βk = O(∆x 4 ) e ω ±<br />

k −dk = O(∆x 13−4 ) = O(∆x 9 ), que ainda<br />

é suficiente para garantir a optimalida<strong>de</strong>.<br />

105


4.5. UMA ALTERNATIVA PARA OBTER ORDEM CAPÍTULO N 4. O MÉTODO WENO-Z<br />

Abaixo observamos os valores <strong>de</strong> τn encontrados até or<strong>de</strong>m 13:<br />

τ5 = |β0 −β2|<br />

τ7 = |β0 +3β1 −3β2 −β3|<br />

τ9 = |β0 +2β1 −6β2 +2β3 +β4|<br />

τ11 = |β0 −10β2 +10β3 −β5|<br />

τ13 = |β0 +36β1 +135β2 +−135β4 −36β5 −β6|<br />

Pela complexida<strong>de</strong> das fórmulas para obter estes valores, acreditamos que não existe<br />

uma fórmula fechada que seja simples.<br />

4.5 Uma alternativa para obter or<strong>de</strong>m n<br />

Observamos nas seções anteriores que quando ncp ≥ 1, nem sempre atingimos a or<strong>de</strong>m<br />

máxima. Isso ocorre porque à medida que ncp aumenta, a or<strong>de</strong>m <strong>de</strong> βk, (<strong>de</strong>nominada<br />

nesta seção por ¯ β) também aumenta, mas a or<strong>de</strong>m <strong>de</strong> τn continua sendo igual a Mn. Com<br />

isso, a partir <strong>de</strong> (4.1), vemos que<br />

ω ±<br />

k −dk = O(∆x Mn−¯ β ).<br />

ou seja, Mn − ¯ β diminui à medida que ncp aumenta. Se Mn − ¯ β < r, a condição (3.11)<br />

não é satisfeita e portanto o método não convergirá. Para evitar que isto aconteça, uma<br />

solução aceitável se torna aumentar a or<strong>de</strong>m <strong>de</strong> τn, elevando a uma potência p suficiente<br />

para que pMn − ¯ β ≥ r. Este valor <strong>de</strong> p <strong>de</strong>ve ser escolhido o menor possível, pois quanto<br />

maior o valor <strong>de</strong> p, mais dissipativo o método se tornará. De fato, seja h tal que exista<br />

uma <strong>de</strong>scontinuida<strong>de</strong> no estêncil Sh. Desta forma, usando β z k<br />

106<br />

como <strong>de</strong>finido em (4.1), e


CAPÍTULO 4. O MÉTODO WENO-Z 4.5. UMA ALTERNATIVA PARA OBTER ORDEM N<br />

tomando β z∗<br />

k<br />

como os medidores <strong>de</strong> suavida<strong>de</strong> com a razão τn<br />

βk<br />

βz k<br />

βz h<br />

= βh βh +τn +ǫ<br />

βk βk +τn +ǫ<br />

βh(βh)<br />

<<br />

βk<br />

q +(τn) q +ǫ<br />

(βk) q +(τn) q +ǫ<br />

elevado a p, obtemos<br />

βz∗ k<br />

=<br />

βz∗, ou seja, a importância relativa do estêncil Sh diminui à medida que q aumenta, o que em<br />

outras palavras significa tornar o método mais dissipativo.<br />

O valor <strong>de</strong> p <strong>de</strong>verá ser escolhido <strong>de</strong> acordo com o problema em questão. Por exemplo,<br />

suponha r = 6 e ncp = 5. Temos portanto que ¯ β = 8 e Mn = 9. Logo<br />

e com p = 14,<br />

obtemos 9<br />

p ≥ r + ¯ β<br />

Mn<br />

= 14<br />

9 ,<br />

ω ±<br />

k −dk = O(∆x pMn−¯ β ) = O(∆x 6 ),<br />

implicando em convergência <strong>de</strong> or<strong>de</strong>m n = 11,<br />

ˆf 1<br />

i+ −<br />

2<br />

ˆ f 1<br />

i−2 ∆x<br />

= f ′ (xi)+O(∆x 11 ).<br />

Observação 10. Esta potência p po<strong>de</strong> ser compreendida <strong>de</strong> maneira análoga à potência<br />

<strong>de</strong>finida para os pesos do WENO clássico, isto é, enquanto no WENO clássico os pesos<br />

são <strong>de</strong>finidos como<br />

ωk =<br />

αk<br />

r−1 j=0αj , αk =<br />

no método WENO-Z <strong>de</strong>finimos os pesos como<br />

ω z k =<br />

αk<br />

r−1<br />

j=0 αj<br />

dk<br />

(βk +ǫ) p,<br />

, αk = dk<br />

βz, β<br />

k<br />

z p τn<br />

k = 1+<br />

βk +ǫ<br />

107<br />

h


4.5. UMA ALTERNATIVA PARA OBTER ORDEM CAPÍTULO N 4. O MÉTODO WENO-Z<br />

108


Capítulo 5<br />

Resultados numéricos<br />

No capítulo anterior discutimos sobre o WENO-Z, um esquema alternativo ao WENO<br />

clássico e mapeado, abordados no capítulo 3. Vimos que, dada uma escolha correta do<br />

indicador <strong>de</strong> suavida<strong>de</strong> globalτn, o método converge com or<strong>de</strong>m2r−1 em regiões contínuas<br />

fora da vizinhança <strong>de</strong> um ponto crítico. Neste capítulo exibiremos o comportamento geral<br />

do esquema WENO-Z em diversos problemas, e compará-los com o WENO clássico e o<br />

WENO mapeado.<br />

Para mostrar o bom comportamento do WENO-Z, em especial o caráter essencialmente<br />

não-oscilatório, vamos utilizar a equação do transporte<br />

com a condição inicial dada por<br />

Utilizamos N = 200 pontos na malha e<br />

ut +ux = 0,<br />

u(x,0) = u0(x).<br />

∆t = 8∆x 5<br />

3<br />

109


CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

para que o Runge-Kutta <strong>de</strong> terceira or<strong>de</strong>m funcione efetivamente como um <strong>de</strong> quinta<br />

or<strong>de</strong>m (em função <strong>de</strong> ∆x). Neste exemplo utilizaremos uma função <strong>de</strong>scontínua que é<br />

comumente empregada na literatura para este tipo <strong>de</strong> teste. Ela é a combinação <strong>de</strong> uma<br />

gaussiana, uma onda quadrada, uma onda triangular e uma semi-elipse. A expressão para<br />

a condição inicial é dada por<br />

u0(x) =<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

G(x,β,z) = e −β(x−z)2<br />

,<br />

1 [G(x,β,z −δ)+4G(x,β,z)+G(x,β,z +δ)] , x ∈ [−0.8,−0.6]<br />

6<br />

1 , x ∈ [−0.4,−0.2]<br />

1−[10(x−0.1)] , x ∈ [0,0.2]<br />

1 [F(x,α,a−δ)+4F(x,α,a)+F(x,α,a+δ_)] , x ∈ [0.4,0.6]<br />

6<br />

F(x,α,a) = max(1−α 2 (x−a) 2 ,0),<br />

0 , caso contrário,<br />

on<strong>de</strong> as constantes são z = −0.7, δ = 0.005, β = log2<br />

36δ 2, a = 0.5 e α = 10.<br />

Calculamos a solução em T = 8 para o método WENO-Z <strong>de</strong> or<strong>de</strong>m 5 com p = 1 e 2<br />

como mostra a figura 5.1:<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

Região 1<br />

-1 -0.5 0 0.5 1<br />

x<br />

Sol. Analítica<br />

WENO-Z (p=1)<br />

WENO-Z (p=2)<br />

1<br />

0.98<br />

0.96<br />

0.94<br />

0.92<br />

-0.4 -0.35 -0.3 -0.25 -0.2<br />

x<br />

Sol. Analítica<br />

WENO-Z (p=1)<br />

WENO-Z (p=2)<br />

Figura 5.1: Solução da equação do transporte com t = 8 para WENO-Z <strong>de</strong> or<strong>de</strong>m 5 com<br />

p = 1 e p = 2<br />

110


CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

Observamos que comp = 1 o método é <strong>de</strong> fato menos dissipativo, aproximando-se mais<br />

da solução analítica. Po<strong>de</strong>ríamos então imaginar que é sempre melhor escolher p = 1, já<br />

que o método é menos dissipativo. No entanto, em alguns casos, como veremos a seguir,<br />

a escolha <strong>de</strong> um p pequeno po<strong>de</strong> acarretar a presença <strong>de</strong> oscilações. Veremos também em<br />

exemplos posteriores que em or<strong>de</strong>ns maiores esta característica não-oscilatória persistirá,<br />

<strong>de</strong>s<strong>de</strong> que seja feita uma escolha correta da potência p e do número N <strong>de</strong> pontos da malha.<br />

Feito este primeiro teste, vamos agora verificar que o método WENO-Z <strong>de</strong> fato con-<br />

verge com or<strong>de</strong>m2r−1 em regiões sem a presença <strong>de</strong> pontos críticos. Para tal, inicialmente<br />

obtemos uma aproximação da <strong>de</strong>rivada espacial <strong>de</strong> u em xi, <strong>de</strong>notada por U(xi). Sendo<br />

u0(xi) a solução analítica <strong>de</strong> u no ponto xi, po<strong>de</strong>mos medir o erro em xi como sendo<br />

erro(xi) = U(xi)−u0(xi).<br />

Definimos as normas L1, L2, L∞ do erro como<br />

N 2<br />

erro = |erro(xi)|;<br />

L1 N<br />

i=0<br />

erroL2 =<br />

<br />

<br />

<br />

2<br />

N<br />

(erro(xi))<br />

N<br />

2 ;<br />

i=0<br />

erro L∞ = max<br />

i=0,...,N |erro(xi)|.<br />

Para dois números diferentes <strong>de</strong> pontos na malha, N1 < N2, é possível obter uma estima-<br />

tiva da or<strong>de</strong>m do esquema da seguinte maneira: sejam erro1 e erro2 o vetor <strong>de</strong> erros das<br />

aproximações <strong>de</strong> um <strong>de</strong>terminado método, usando-se N1 e N2 pontos, respectivamente.<br />

Então a estimativa é dada por<br />

<br />

<br />

log<br />

erro1<br />

erro2<br />

log N2<br />

N1<br />

111<br />

<br />

<br />

<br />

.


5.1. ANÁLISE DOS PESOS WENO CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

No nosso exemplo vamos usar a função exponencial<br />

f(x) = e x<br />

restrita ao domínio [−1,1] e calcular sua <strong>de</strong>rivada. Neste caso o erro é medido apenas por<br />

erro(xi) = U(xi)−e xi .<br />

As tabelas 5.1 a 5.4 mostram a convergência do método WENO-Z para or<strong>de</strong>ns 5, 7, 9 e<br />

11. Po<strong>de</strong>mos ver que os dois esquemas ten<strong>de</strong>m a convergir com or<strong>de</strong>m 2r−1.<br />

Observação 11. Utilizamos um número pequeno <strong>de</strong> pontos para calcular a convergência<br />

do WENO <strong>de</strong> or<strong>de</strong>ns 9 e 11 <strong>de</strong>vido ao rápido <strong>de</strong>caimento do erro. Se aumentássemos o<br />

número <strong>de</strong> pontos da malha, per<strong>de</strong>ríamos a informação da or<strong>de</strong>m <strong>de</strong> convergência, uma<br />

vez que o erro se confundiria com o erro da máquina.<br />

5.1 Análise dos pesos WENO<br />

Na seção anterior observamos o caráter não-oscilatório do WENO-Z <strong>de</strong> or<strong>de</strong>m 5 através<br />

da função teste, bem como que, em regiões sem pontos críticos, o método converge com<br />

or<strong>de</strong>m 2r − 1. Precisamos agora comparar estes resultados com os esquemas WENO<br />

clássico (WENO-JS) e WENO mapeado (WENO-M), <strong>de</strong> modo a verificar em quais casos<br />

o método WENO-Z se torna a melhor opção. Para isso, torna-se necessário fazer uma<br />

análise mais minuciosa dos pesos ωk, primeiramente <strong>de</strong>finidos na seção 3.2.<br />

112


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.1. ANÁLISE DOS PESOS WENO<br />

N L∞ or<strong>de</strong>m L2 or<strong>de</strong>m<br />

110 0.21×10 −5 0.34×10 −6<br />

140 0.55×10 −6 5.558 0.80×10 −7 5.737<br />

170 0.22×10 −6 4.828 0.25×10 −7 5.655<br />

200 0.97×10 −7 4.878 0.97×10 −8 5.568<br />

230 0.49×10 −7 4.910 0.45×10 −8 5.284<br />

Tabela 5.1: Or<strong>de</strong>m <strong>de</strong> convergência do esquema WENO-Z <strong>de</strong> or<strong>de</strong>m 5<br />

N L∞ or<strong>de</strong>m L2 or<strong>de</strong>m<br />

30 0.28×10 −10 0.18×10 −10<br />

35 0.83×10 −11 7.994 0.61×10 −11 7.019<br />

40 0.31×10 −11 7.328 0.24×10 −11 7.007<br />

45 0.13×10 −11 7.521 0.10×10 −11 7.003<br />

50 0.60×10 −12 7.126 0.50×10 −12 7.001<br />

Tabela 5.2: Or<strong>de</strong>m <strong>de</strong> convergência do esquema WENO-Z <strong>de</strong> or<strong>de</strong>m 7<br />

N L∞ or<strong>de</strong>m L2 or<strong>de</strong>m<br />

14 0.38×10 −10 0.32×10 −10<br />

15 0.20×10 −10 8.953 0.17×10 −10 8.985<br />

16 0.10×10 −10 9.017 0.90×10 −11 8.986<br />

17 0.59×10 −11 8.960 0.50×10 −11 8.988<br />

18 0.34×10 −11 9.020 0.29×10 −11 8.990<br />

Tabela 5.3: Or<strong>de</strong>m <strong>de</strong> convergência do esquema WENO-Z <strong>de</strong> or<strong>de</strong>m 9<br />

N L∞ or<strong>de</strong>m L2 or<strong>de</strong>m<br />

14 0.20×10 −12 0.17×10 −12<br />

15 0.91×10 −13 10.92 0.77×10 −13 10.99<br />

16 0.43×10 −13 10.86 0.36×10 −13 10.99<br />

17 0.22×10 −13 10.36 0.18×10 −13 10.95<br />

18 0.12×10 −13 10.83 0.91×10 −14 11.04<br />

Tabela 5.4: Or<strong>de</strong>m <strong>de</strong> convergência do esquema WENO-Z <strong>de</strong> or<strong>de</strong>m 11<br />

113


5.1. ANÁLISE DOS PESOS WENO CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

Consi<strong>de</strong>ramos a seguinte função:<br />

g(x) =<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

−sin(πx)− x3,<br />

se −1 < x < 0<br />

2<br />

1−sin(πx)− x3,<br />

se 0 ≤ x ≤ 1<br />

2<br />

g(x) = g(x−2),∀x ∈ R.<br />

S0<br />

S1<br />

S2<br />

Figura 5.2: Função g(x) no intervalo [-1,1]. Os pesos ω0, ω1 e ω2 para a reconstrução da<br />

função na origem são calculados utilizando os estênceis S0, S1 e S2, respectivamente.<br />

Notamos que g possui uma <strong>de</strong>scontinuida<strong>de</strong> em x = 0, o que torna esta função inte-<br />

ressante <strong>de</strong> ser analisada em termos do comportamento dos pesos.<br />

Calculamos os pesos para obter a reconstrução <strong>de</strong> g(x) utilizando-se o WENO-JS,<br />

WENO-M e WENO-Z, todos <strong>de</strong> or<strong>de</strong>m 5, utilizando p = 2. Os resultados po<strong>de</strong>m ser<br />

vistos na figura 5.3.<br />

Po<strong>de</strong>mos reparar que os pesos da parte <strong>de</strong>scontínua (correspon<strong>de</strong>ndo aos seis pontos<br />

próximos <strong>de</strong>x = 0) são ligeiramente maiores no WENO-M do que no WENO-JS e WENO-<br />

Z.<br />

Este resultado po<strong>de</strong> parecer contraditório para leitor, se comparado com o resultado<br />

obtido em [13], no qual o método WENO-Z aparece com os maiores pesos. Na verda<strong>de</strong><br />

114<br />

,


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.1. ANÁLISE DOS PESOS WENO<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10<br />

−0.002 −0.001 0 0.001 0.002<br />

−8<br />

10 −7<br />

10 −6<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

x<br />

(a) WENO-JS<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10<br />

−0.002 −0.001 0 0.001 0.002<br />

−8<br />

10 −7<br />

10 −6<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

x<br />

(b) WENO-M<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10<br />

−0.002 −0.001 0 0.001 0.002<br />

−8<br />

10 −7<br />

10 −6<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

x<br />

(c) WENO-Z<br />

Figura 5.3: Pesos dos esquemas WENO <strong>de</strong> or<strong>de</strong>m 5 para o cálculo da função g(x) com<br />

p = 2<br />

o que acontece é que a comparação feita foi com o WENO clássico e o WENO mapeado<br />

com p = 2, e WENO-Z com p = 1. Nestas condições o WENO-Z possui pesos maiores<br />

- e consequentemente é menos disispativo. Com efeito, calculando os pesos com p = 1,<br />

e checando o resultado na figura 5.4, vemos que nestas condições os pesos aumentam<br />

significamente.<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10<br />

−0.002 −0.001 0 0.001 0.002<br />

−8<br />

10 −7<br />

10 −6<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

x<br />

(a) WENO-JS<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10<br />

−0.002 −0.001 0 0.001 0.002<br />

−8<br />

10 −7<br />

10 −6<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

x<br />

(b) WENO-M<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10<br />

−0.002 −0.001 0 0.001 0.002<br />

−8<br />

10 −7<br />

10 −6<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

x<br />

(c) WENO-Z<br />

Figura 5.4: Pesos dos esquemas WENO <strong>de</strong> or<strong>de</strong>m 5 para o cálculo da função g(x) com<br />

p = 1<br />

Com este resultado, vemos na verda<strong>de</strong> que o WENO-M com p = 1 é menos dissipativo<br />

do que o WENO-Z. O método WENO-JS ainda continua com os pesos menores, o que<br />

torna o método mais dissipativo. Confirmamos este fato através das tabelas 5.5 e 5.6.<br />

A tabela nos mostra que em x = −0.001 o estêncil S2 já <strong>de</strong>tectou a <strong>de</strong>scontinuida<strong>de</strong><br />

em x = 0, por ser o estêncil mais à direita; por essa razão é que o peso ω2 é bem menor do<br />

que os outros, já que o indicador <strong>de</strong> suavida<strong>de</strong> β2 aumenta com a <strong>de</strong>scontinuida<strong>de</strong>. Além<br />

115


5.1. ANÁLISE DOS PESOS WENO CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

disso em x = 0 observamos que o estêncil S2 já não <strong>de</strong>tém informações a respeito do ponto<br />

<strong>de</strong> <strong>de</strong>scontinuida<strong>de</strong>, ao passo que os <strong>de</strong>mais estênceis S0 e S1 <strong>de</strong>têm. Desta forma seus<br />

pesos diminuem consi<strong>de</strong>ravelmente, tornando o peso ω2 maior (na verda<strong>de</strong> ω2 aumenta<br />

pois é feita uma normalização, aumentando o peso relativo dado a ele).<br />

Po<strong>de</strong>mos também comparar os seis métodos <strong>de</strong> uma vez (WENO-JS, WENO-M e<br />

WENO-Z para p = 1 e p = 2). A figura 5.5 confirma que a potência p tem gran<strong>de</strong><br />

influência na dissipação da solução; basta observar que o WENO-JS com p = 1 é menos<br />

dissipativo que WENO-M com p = 2.<br />

u<br />

1<br />

0.99<br />

0.98<br />

0.97<br />

Sol. Analítica<br />

WENO-M (p=1)<br />

WENO-Z (p=1)<br />

WENO-JS (p=1)<br />

WENO-M (p=2)<br />

WENO-Z (p=2)<br />

WENO-JS (p=2)<br />

-0.4 -0.35 -0.3 -0.25 -0.2<br />

x<br />

Figura 5.5: Função g(x) no intervalo [-1,1]. Os pesos ω0, ω1 e ω2 para a reconstrução da<br />

função na origem são calculados utilizando os estênceis S0, S1 e S2, respectivamente.<br />

5.1.1 Or<strong>de</strong>ns mais altas<br />

Po<strong>de</strong>mos esten<strong>de</strong>r a discussão da seção anterior para or<strong>de</strong>ns superiores; por exemplo,<br />

para or<strong>de</strong>m 7, verificamos o seguinte comportamento, apresentado nas figuras 5.6 e 5.7, e<br />

nas tabelas 5.7 e 5.8:<br />

Pelos resultados, observamos novamente que o método WENO-M é o menos dissipativo<br />

116


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.1. ANÁLISE DOS PESOS WENO<br />

x = −0.001 x = 0<br />

WENO-JS WENO-M WENO-Z WENO-JS WENO-M WENO-Z<br />

ω0 0.1427 0.1271 0.1427 6.5089×10 −5 7.1158×10 −4 1.3010×10 −4<br />

ω1 0.8570 0.8717 0.8569 9.7229×10 −4 0.0026 0.0014<br />

ω2 2.0045×10 −4 0.0011 4.0073×10 −4 0.9990 0.9967 0.9985<br />

Tabela 5.5: Medida dos pesos do WENO <strong>de</strong> or<strong>de</strong>m 5 com p = 1<br />

x = −0.001 x = 0<br />

WENO-JS WENO-M WENO-Z WENO-JS WENO-M WENO-Z<br />

ω0 0.1427 0.1272 0.1427 1.2736×10 −8 1.4009×10 −7 2.5477×10 −8<br />

ω1 0.8573 0.8278 0.8573 4.7365×10 −7 1.2630×10 −6 5.5010×10 −7<br />

ω2 9.3794×10 −8 5.1386×10 −7 1.8767×10 −7 0.9999 0.9999 0.9999<br />

Tabela 5.6: Medida dos pesos do WENO <strong>de</strong> or<strong>de</strong>m 5 com p = 2<br />

x = −0.001 x = 0<br />

WENO-JS WENO-M WENO-Z WENO-JS WENO-M WENO-Z<br />

ω0 0.0322 0.0322 0.0322 0.9944 0.9789 0.9947<br />

ω1 0.3870 0.3867 0.3871 0.0034 0.0129 0.0209<br />

ω2 0.5806 0.5807 0.5806 0.0019 0.0055 0.0283<br />

ω3 3.6323×10 −5 3.9810×10 −4 7.2633×10 −5 2.9057×10 −4 0.0028 0.0062<br />

Tabela 5.7: Medida dos pesos do WENO <strong>de</strong> or<strong>de</strong>m 7 com p = 1<br />

x = −0.001 x = 0<br />

WENO-JS WENO-M WENO-Z WENO-JS WENO-M WENO-Z<br />

ω0 0.0322 0.0322 0.0322 0.9999 0.9999 0.9999<br />

ω1 0.3870 0.3868 0.3871 9.5771×10 −7 3.7510×10 −6 3.0159×10 −5<br />

ω2 0.5806 0.5810 0.5806 1.9902×10 −7 5.8602×10 −7 4.4002×10 −6<br />

ω3 1.0226×10 −8 1.1237×10 −7 2.0457×10 −8 2.1343×10 −8 2.0810×10 −7 9.7553×10 −6<br />

Tabela 5.8: Medida dos pesos do WENO <strong>de</strong> or<strong>de</strong>m 7 com p = 2<br />

117


5.1. ANÁLISE DOS PESOS WENO CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

Pesos WENO−JS (p=1)<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10 −6<br />

10<br />

−0.003 −0.002 −0.001 0 0.001 0.002 0.003<br />

−10<br />

10 −9<br />

10 −8<br />

10 −7<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

ω<br />

3<br />

x<br />

i<br />

(a) WENO-JS<br />

Pesos WENO−M (p=1)<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10 −6<br />

10<br />

−0.003 −0.002 −0.001 0 0.001 0.002 0.003<br />

−10<br />

10 −9<br />

10 −8<br />

10 −7<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

ω<br />

3<br />

x<br />

i<br />

(b) WENO-M<br />

Pesos WENO−Z (p=1)<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10 −6<br />

10<br />

−0.003 −0.002 −0.001 0 0.001 0.002 0.003<br />

−10<br />

10 −9<br />

10 −8<br />

10 −7<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

ω<br />

3<br />

x<br />

i<br />

(c) WENO-Z<br />

Figura 5.6: Pesos dos esquemas WENO <strong>de</strong> or<strong>de</strong>m 7 para o cálculo da função g(x) com<br />

p = 1<br />

Pesos WENO−JS (p=2)<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10 −6<br />

10<br />

−0.003 −0.002 −0.001 0 0.001 0.002 0.003<br />

−10<br />

10 −9<br />

10 −8<br />

10 −7<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

ω<br />

3<br />

x<br />

i<br />

(a) WENO-JS<br />

Pesos WENO−M (p=2)<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10 −6<br />

10<br />

−0.003 −0.002 −0.001 0 0.001 0.002 0.003<br />

−10<br />

10 −9<br />

10 −8<br />

10 −7<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

ω<br />

3<br />

x<br />

i<br />

(b) WENO-M<br />

Pesos WENO−Z (p=2)<br />

10 0<br />

10 −1<br />

10 −2<br />

10 −3<br />

10 −4<br />

10 −5<br />

10 −6<br />

10<br />

−0.003 −0.002 −0.001 0 0.001 0.002 0.003<br />

−10<br />

10 −9<br />

10 −8<br />

10 −7<br />

ω<br />

0<br />

ω<br />

1<br />

ω<br />

2<br />

ω<br />

3<br />

x<br />

i<br />

(c) WENO-Z<br />

Figura 5.7: Pesos dos esquemas WENO <strong>de</strong> or<strong>de</strong>m 7 para o cálculo da função g(x) com<br />

p = 2<br />

dos três, e que a dissipação em cada método po<strong>de</strong> ser controlada pela potência p utilizada.<br />

Apesar <strong>de</strong> termos utilizado até então p = 1 e p = 2, estes valores não precisam ser<br />

inteiros. A única questão é que o uso <strong>de</strong>pnão-inteiro torna o método computacionalmente<br />

mais lento, como veremos mais adiante. Veremos também que, apesar do WENO-M ser<br />

o menos dissipativo, o WENO-Z possui um tempo <strong>de</strong> execução menor que o WENO<br />

mapeado.<br />

Para ilustrar os resultados acima, vamos usar a função teste u0, <strong>de</strong>finida no início <strong>de</strong>ste<br />

capítulo, e comparar os diferentes métodos. Primeiramente, vamos utilizar o WENO <strong>de</strong><br />

or<strong>de</strong>m 7, com N = 200 e p = 2.<br />

Constatamos através do zoom dado na região 1 da figura 5.8 que <strong>de</strong> fato o WENO-M é<br />

o esquema menos dissipativo <strong>de</strong>ntre os três. Po<strong>de</strong>ríamos diminiuir a potência p <strong>de</strong> modo<br />

118


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.1. ANÁLISE DOS PESOS WENO<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

Região 1<br />

0<br />

-1 -0.5 0<br />

x<br />

0.5 1<br />

Sol. Analítica<br />

WENO-JS<br />

WENO-M<br />

WENO-Z<br />

1.02<br />

1<br />

0.98<br />

0.96<br />

0.94<br />

0.92<br />

Sol. Analítica<br />

WENO-JS<br />

WENO-M<br />

WENO-Z<br />

-0.4 -0.35 -0.3 -0.25 -0.2<br />

x<br />

Figura 5.8: Solução da equação do transporte com t = 8 para os métodos WENO <strong>de</strong><br />

or<strong>de</strong>m 7 com p = 2<br />

a tornar o esquema menos dissipativo e, portanto, mais próximo da solução analítica.<br />

Vejamos o que acontece se ao invés <strong>de</strong> p = 2, utilizarmos p = 1:<br />

1.05<br />

1<br />

0.95<br />

Sol. Analítica<br />

WENO-JS<br />

WENO-M<br />

WENO-Z<br />

-0.4 -0.35 -0.3 -0.25 -0.2<br />

x<br />

Figura 5.9: Zoom na onda retangular da solução da equação do transporte com t = 8<br />

para WENO-Z <strong>de</strong> or<strong>de</strong>m 7 com p = 1<br />

Ao diminuirmos o valor <strong>de</strong> p, a solução obtida pelo WENO mapeado apresentou os-<br />

cilações in<strong>de</strong>sejadas. Isto ocorre uma vez que os pesos no estêncil com <strong>de</strong>scontinuida<strong>de</strong><br />

não foram pequenos o suficiente, gerando estas oscilações, conhecidas como o fenômeno<br />

119


5.1. ANÁLISE DOS PESOS WENO CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

<strong>de</strong> Gibbs. Po<strong>de</strong>mos, por outro lado, utilizar uma potência p intermediária.<br />

1<br />

0.995<br />

0.99<br />

-0.36 -0.35 -0.34 -0.33 -0.32 -0.31<br />

x<br />

Sol. Analítica<br />

WENO-M (p=1)<br />

WENO-M (p=1.2)<br />

WENO-M (p=1.3)<br />

WENO-M (p=1.5)<br />

WENO-M (p=2)<br />

Figura 5.10: Zoom na onda retangular da solução da equação do transporte em t = 8 do<br />

WENO mapeado para diversos valores <strong>de</strong> p<br />

Neste problema especificamente as oscilações não aparecem a partir <strong>de</strong> p = 1.3. Este<br />

valor <strong>de</strong>pen<strong>de</strong> do problema e do esquema em questão, da or<strong>de</strong>m do método e quantos pon-<br />

tos estão sendo utilizados na malha; não faz sentido procurar uma fórmula para encontrar<br />

o melhor p. No entanto é fácil observar que, como o WENO mapeado é menos dissipativo<br />

que o WENO clássico e o WENO-Z, se a potência p escolhida não gerar oscilações no<br />

WENO-M, então não gerará oscilações nos outros dois esquemas.<br />

A primeira impressão que temos é <strong>de</strong> que então é sempre interessante diminuir o valor<br />

<strong>de</strong> p ao máximo possível sem gerar oscilações. Isto não é verda<strong>de</strong>. Utilizar potências<br />

não-inteiras <strong>de</strong>mandam um tempo computacional maior e, <strong>de</strong>pen<strong>de</strong>ndo do tamanho do<br />

problema, esta diferença <strong>de</strong> tempo po<strong>de</strong> ser crucial para a sua resolução.<br />

120


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.2. TEMPO DE EXECUÇÃO<br />

p = 1 p = 1.3 p = 1.5 p = 2<br />

WENO-JS 33,21s 36,43s 35,40s 34,68s<br />

WENO-M 41,66s 42,40s 44,91s 40,21s<br />

WENO-Z 31,59s 38,44s 41,94s 34,30s<br />

Tabela 5.9: Tempo <strong>de</strong> execução da solução do transporte até t = 8 para os esquemas<br />

WENO com diferentes valores <strong>de</strong> p<br />

5.2 Tempo <strong>de</strong> execução<br />

Discutimos na seção anterior que em <strong>de</strong>terminados casos torna-se interessante utilizar<br />

valores <strong>de</strong> p não-inteiros, mas que isto <strong>de</strong>manda um tempo computacional maior. Vamos<br />

confirmar este fato, utilizando para isto o mesmo exemplo da solução do transporte com<br />

a função teste para os esquemas WENO <strong>de</strong> or<strong>de</strong>m 7, com N = 2000:<br />

Os três métodos apresentaram um tempo <strong>de</strong> execução maior com a utilização <strong>de</strong> p não-<br />

inteiro, mas é notório que o WENO-Z é o que apresentou a maior diferença <strong>de</strong> resultado<br />

entre as potências. Observamos também uma vantagem do WENO-Z em relação ao<br />

WENO-M em termos computacionais, chegando a ser em média 20% mais eficiente com<br />

p inteiro, e 5% com p não-inteiro. Esta vantagem se <strong>de</strong>ve ao fato do mapeamento feito<br />

no WENO-M ter um alto custo computacional - basta notar que quase não há diferença<br />

entre o WENO clássico e o WENO-Z, especialmente com p inteiro.<br />

5.3 Equações <strong>de</strong> Euler<br />

Nesta seção, implementaremos o sistema <strong>de</strong> equações <strong>de</strong> Euler<br />

⎡ ⎤ ⎡<br />

⎢ ρ ⎥ ⎢ ρv<br />

⎢ ⎥ ⎢<br />

⎢ ρv ⎥ + ⎢ ρv<br />

⎣ ⎦ ⎣<br />

E<br />

2 ⎤<br />

⎥<br />

+p ⎥<br />

⎦<br />

v(E +p)<br />

t<br />

121<br />

x<br />

= 0


5.3. EQUAÇÕES DE EULER CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

com os três esquemas WENO estudados. Neste sistema a variávelρrepresenta a <strong>de</strong>nsida<strong>de</strong><br />

<strong>de</strong> massa, v é a velocida<strong>de</strong> (ρv é o momento linear), E é a energia total e p é a pressão.<br />

A equação <strong>de</strong> estado, que relaciona a pressão com as <strong>de</strong>mais variáveis, para os próximos<br />

problemas será dada por<br />

E = p 1<br />

+<br />

γ −1 2 ρv2 ,<br />

com γ sendo uma constante que <strong>de</strong>pen<strong>de</strong> do material do fluido (nestes problemas utiliza-<br />

remos γ = 1,4). As equações <strong>de</strong> Euler constituem um sistema não-linear, o que as torna<br />

difíceis <strong>de</strong> se resolver analiticamente e até numericamente. Além disto, estas equações<br />

são bastante utilizadas na mo<strong>de</strong>lagem <strong>de</strong> fluidos em alta velocida<strong>de</strong>, on<strong>de</strong> os termos dis-<br />

sipativos das equações <strong>de</strong> Navier-Stokes não influenciam muito no resultado. Estas duas<br />

características das equações <strong>de</strong> Euler fazem <strong>de</strong>las um teste importante para qualquer<br />

esquema numérico <strong>de</strong> equações <strong>de</strong> leis <strong>de</strong> conservação.<br />

5.3.1 Comparação entre os esquemas WENO<br />

Os próximos testes serão comparações entre os métodos WENO vistos até agora,<br />

usando diferentes potências p. Como em geral não temos solução analítica para estes<br />

problemas, utilizaremos como comparativo o método WENO-M com um número gran<strong>de</strong><br />

<strong>de</strong> pontos.<br />

122


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.3. EQUAÇÕES DE EULER<br />

Interação entre duas blast waves<br />

Este é um problema consi<strong>de</strong>rdo difícil na literatura, <strong>de</strong>vido à situação <strong>de</strong> choques fortes<br />

com ondas <strong>de</strong> rarefação. A condição inicial é dada por<br />

⎧<br />

⎪⎨<br />

(1,0,1000) se 0 ≤ x ≤ 0.1,<br />

(ρ,v,p) = (1,0,1000) se 0.1 ≤ x ≤ 0.9,<br />

⎪⎩ (1,0,1000) se 0.9 ≤ x ≤ 1,<br />

com condição <strong>de</strong> fronteira reflexiva em x = 0 e x = 1.<br />

Calculamos as soluções para o WENO <strong>de</strong> or<strong>de</strong>m 9 e p = 5, com tempo final t = 0.038<br />

e N = 300 pontos na malha, exibidas na figura 5.11. Temos duas regiões interessantes que<br />

são analisadas nas figuras adiante. Os <strong>de</strong>talhes da figura 5.11 confirmam mais uma vez<br />

que o WENO-M é menos dissipativo que o WENO-Z, que por sua vez é menos dissipativo<br />

que o WENO-JS.<br />

Observação 12. Utilizamos o valor p = 5 pois a solução com p = 2 explodiu quando<br />

utilizados o WENO mapeado e o WENO-Z. Na verda<strong>de</strong> o valor escolhido não é o menor<br />

encontrado <strong>de</strong> modo a gerar soluções estáveis para os métodos; para o WENO-M o valor<br />

p = 3.3 foi suficiente para gerar uma solução estável, enquanto que para o WENO-Z o<br />

valor <strong>de</strong> p = 3.9 foi encontrado. Ao contrário do que imaginávamos, o valor encontrado<br />

para o WENO-Z foi maior do que o WENO-M. Deduzimos a partir <strong>de</strong>ste resultado que tal<br />

instabilida<strong>de</strong> não po<strong>de</strong> ser justificada somente pela pouca dissipação, mas por outros fatores<br />

que ainda não inspecionamos. Observamos posteriormente que em or<strong>de</strong>m 7 po<strong>de</strong>ríamos<br />

facilmente utilizar p = 2, e que em or<strong>de</strong>m 11 nenhum p foi encontrado <strong>de</strong> modo a gerar<br />

soluções estáveis. Uma alternativa para contornar este problema específico ficará para<br />

trabalhos posteriores.<br />

123


5.3. EQUAÇÕES DE EULER CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

Rho<br />

6<br />

5<br />

4<br />

Rho<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

WENO-JS<br />

WENO-M<br />

WENO-Z<br />

WENO-M (2000 pontos)<br />

WENO-JS<br />

WENO-M<br />

WENO-Z<br />

WENO-M (2000 pontos)<br />

Região 1<br />

Região 2<br />

-1<br />

-0.2 0 0.2 0.4 0.6 0.8 1 1.2<br />

x<br />

0.65 0.7 0.75 0.8<br />

x<br />

Rho<br />

1.3<br />

1.2<br />

1.1<br />

1<br />

0.9<br />

0.8<br />

WENO-JS<br />

WENO-M<br />

WENO-Z<br />

WENO-M (2000 pontos)<br />

0.78 0.8 0.82 0.84 0.86 0.88 0.9<br />

x<br />

Figura 5.11: Comparação entre os métodos WENO <strong>de</strong> or<strong>de</strong>m 9 no problema da interação<br />

entre duas blast waves N = 300 pontos na malha<br />

Problema <strong>de</strong> Riemann <strong>de</strong> Lax<br />

Um problema <strong>de</strong> Riemann é um problema em que a condição inicial é dada por um<br />

choque simples, isto é, há um valor xd tal que<br />

⎧<br />

⎪⎨ ul, se x ≤ xd,<br />

u0(x) =<br />

⎪⎩ ur, se x > xd.<br />

124


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.3. EQUAÇÕES DE EULER<br />

No problema <strong>de</strong> Riemman <strong>de</strong> Lax a condição inicial é dada por<br />

⎧<br />

⎪⎨ (0.445,0.698,3.528) se x ≤ 0,<br />

(ρ,v,p) =<br />

⎪⎩ (0.5,0,0.571) se x > 0.<br />

Na figura 5.12 observamos um comparativo entre o método WENO-Z (p = 2) para<br />

or<strong>de</strong>ns 5, 7, 9 e 11 (ou r = 3, 4, 5 e 6, respectivamente). Observamos que à medida que a<br />

or<strong>de</strong>m do método aumenta, começam a surgir oscilações nas regiões com <strong>de</strong>scontinuida<strong>de</strong><br />

(vi<strong>de</strong> região 1 da figura 5.12). Tentamos contornar este problema aumentando a dissi-<br />

pação, isto é, aumentando a potência p, e refinando a malha, sem sucesso. Suspeitamos<br />

que seja <strong>de</strong>vido ao fato <strong>de</strong>sta <strong>de</strong>scontinuida<strong>de</strong> ser uma <strong>de</strong>scontinuida<strong>de</strong> <strong>de</strong> contato, mas é<br />

apenas uma suposição inicial. Esta discussão ficará para trabalhos futuros.<br />

Interação entre um choque e uma onda <strong>de</strong> entropia<br />

Neste problema a condição inicial é dada por<br />

⎧<br />

⎪⎨ (0.445,0.698,3.528) se x ≤ −4,<br />

(ρ,v,p) =<br />

⎪⎩ (0.5,0,0.571) se x > −4.<br />

A seguir veremos um panorama geral das soluções obtidas pelo WENO mapeado e WENO-<br />

Z <strong>de</strong> or<strong>de</strong>m 11 para a variável ρ, ambos com N = 400 pontos na malha e potência p = 2.<br />

Os dois métodos apresentaram bom comportamento, apesar <strong>de</strong> não <strong>de</strong>tectarem com<br />

precisão os bicos à esquerda e à direita da oscilação <strong>de</strong>stacada na região 1 da figura<br />

5.13. Observamos também na região 2 que os dois esquemas apresentaram oscilações<br />

in<strong>de</strong>sejadas. Tentamos contornar este problema refinando a malha, como mostra a figura<br />

5.14.<br />

Ao refinarmos a malha, vemos que os dois métodos se aproximaram melhor da solução<br />

125


5.3. EQUAÇÕES DE EULER CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

Rho<br />

1.36<br />

1.34<br />

1.32<br />

1.3<br />

1.28<br />

1.26<br />

1.24<br />

Rho<br />

1.4<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

WENO-Z (4000 pontos)<br />

WENO-Z (r = 3)<br />

WENO-Z (r = 4)<br />

WENO-Z (r = 5)<br />

WENO-Z (r = 6)<br />

2 2.5 3<br />

x<br />

WENO-Z (4000 pontos)<br />

WENO-Z (r = 3)<br />

WENO-Z (r = 4)<br />

WENO-Z (r = 5)<br />

WENO-Z (r = 6)<br />

Região 1<br />

Região 2<br />

-4 -2 0 2 4 6<br />

x<br />

Rho<br />

0.51<br />

0.5<br />

WENO-Z (4000 pontos)<br />

WENO-Z (r = 3)<br />

WENO-Z (r = 4)<br />

WENO-Z (r = 5)<br />

WENO-Z (r = 6)<br />

3.2 3.25 3.3 3.35 3.4<br />

x<br />

Figura 5.12: Método WENO-Z com diversas or<strong>de</strong>ns <strong>de</strong> convergência para o problema <strong>de</strong><br />

Lax N = 400 pontos na malha<br />

real. No entanto, a pouca dissipação do WENO mapeado não foi suficiente para evitar<br />

algumas oscilações, como po<strong>de</strong>mos ver nas regiões 2 e 3 da figura 5.14. Já o WENO-Z se<br />

comportou bem nas três regiões apresentadas, sem apresentar nenhum tipo <strong>de</strong> oscilação<br />

que <strong>de</strong>stoe da solução <strong>de</strong>sejada.<br />

126


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.3. EQUAÇÕES DE EULER<br />

Rho<br />

4.5<br />

4<br />

3.5<br />

3<br />

Rho<br />

5<br />

4.5<br />

4<br />

3.5<br />

3<br />

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

Região 2<br />

WENO-M (2000 pontos)<br />

WENO-M<br />

WENO-Z<br />

Região 1<br />

-4 -2 0 2 4<br />

x<br />

WENO-M (200<br />

WENO-M<br />

WENO-Z<br />

1 1.5 2 2.5<br />

x<br />

Rho<br />

3.85<br />

3.8<br />

3.75<br />

3.7<br />

3.65<br />

WENO-M (2000 pontos)<br />

WENO-M<br />

WENO-Z<br />

-2.9 -2.85 -2.8 -2.75 -2.7 -2.65 -2.6 -2.55 -2.5 -2.45<br />

x<br />

Figura 5.13: Comparação entre os métodos WENO-M e WENO-Z <strong>de</strong> or<strong>de</strong>m 11 no problema<br />

da interação entre um choque e uma onda <strong>de</strong> entropia com N = 400 pontos na<br />

malha.<br />

5.3.2 Conclusão<br />

Nos testes exibidos nestas seções vimos que os resultados do WENO-Z foram muito<br />

satisfatórios para diversos problemas clássicos. Em termos <strong>de</strong> dissipação, o WENO ma-<br />

peado se mostrou o menos dissipativo, seguido do WENO-Z e por fim o WENO clássico.<br />

Vimos também que a potência p utilizada no cálculo dos pesos WENO influi diretamente<br />

127


5.3. EQUAÇÕES DE EULER CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

Rho<br />

Rho<br />

5<br />

4.5<br />

4<br />

3.5<br />

3<br />

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0.95<br />

0.9<br />

Região 3<br />

WENO-M<br />

WENO-Z<br />

WENO-M (2000 pontos)<br />

Região 2<br />

Região 1<br />

-4 -2 0 2 4<br />

x<br />

WENO-JS<br />

WENO-M<br />

WENO-Z<br />

WENO-M (2000 pontos)<br />

2.38 2.4 2.42 2.44 2.46<br />

x<br />

Rho<br />

Rho<br />

3.35<br />

3.3<br />

3.25<br />

3.2<br />

3.15<br />

3.1<br />

3.05<br />

3<br />

3.9<br />

3.85<br />

3.8<br />

3.75<br />

3.7<br />

3.65<br />

WENO-M<br />

WENO-Z<br />

WENO-M (2000 pontos)<br />

2.3 2.35 2.4<br />

x<br />

WENO-M<br />

WENO-Z<br />

WENO-M (2000 pontos)<br />

-2.9 -2.8 -2.7 -2.6 -2.5<br />

x<br />

Figura 5.14: Comparação entre os métodos WENO-M e WENO-Z <strong>de</strong> or<strong>de</strong>m 11 no problema<br />

da interação entre um choque e uma onda <strong>de</strong> entropia com N = 800 pontos na<br />

malha.<br />

128


CAPÍTULO 5. RESULTADOS NUMÉRICOS 5.3. EQUAÇÕES DE EULER<br />

na dissipação da solução, sendo em alguns casos imprescindível que este valor seja maior<br />

que 1, principalmente em problemas <strong>de</strong> alta or<strong>de</strong>m. Em alguns exemplos se o valor <strong>de</strong><br />

p fosse pequeno, algumas oscilações in<strong>de</strong>sejadas po<strong>de</strong>m aparecer. Estas oscilações geral-<br />

mente po<strong>de</strong>m ser contornadas amentando esta potência p, ou simplesmente aumentando<br />

o número <strong>de</strong> pontos da malha. Em outros casos o WENO-Z apresentou oscilações que<br />

não se extinguiram nem com o refinamento da malha nem com o aumento da potência<br />

p. Acreditamos que estas oscilações ocorrem pelo fato da <strong>de</strong>scontinuida<strong>de</strong> em questão ser<br />

uma <strong>de</strong>scontinuida<strong>de</strong> <strong>de</strong> contato, mas é apenas uma suposição. Em termos computacio-<br />

nais, o WENO-Z se mostrou mais rápido do que o WENO-M em média 20% quando p é<br />

inteiro, e que essa melhora cai para 5%, caso contrário.<br />

129


5.3. EQUAÇÕES DE EULER CAPÍTULO 5. RESULTADOS NUMÉRICOS<br />

130


Referências Bibliográficas<br />

[1] HARTEN, A. et al. Uniformly high-or<strong>de</strong>r accurate essentially non-oscillatory schemes<br />

III. Journal of Computacional Physics, [S.l.], v71, p.231-303, 1987. 5, 7, 8, 39<br />

[2] LIU, X,-D.; OSHER, S.; CHAN T. Weighted essentially non-oscillatory schemes.<br />

Journal of Computacional Physics, [S.l.], v115, 1994, p. 200-212.LIU, X,-D.; OSHER,<br />

S.; CHAN T. Weighted essentially non-oscillatory schemes. Journal of Computacional<br />

Physics, [S.l.], v115, 1994, p. 200-212. 5, 39, 49<br />

[3] HENRICK, A. K.; TASLAM, T. D.; POWERS, J. M. Mapped weighted essentially<br />

non-oscillatory schemes: achieving optimal or<strong>de</strong>r near critical points. Journal of Com-<br />

putacional Physics, [S.l.], v207, 2005, p. 542-567 5, 8, 40, 56, 57, 60, 65<br />

[4] JIANG, G.-S.; SHU, C.-W. Efficient implementation of weighted ENO schemes. Jour-<br />

nal of Computacional Physics, [S.l.], v126, 1996, p. 200-228. 5, 8, 13, 19, 39, 40, 49,<br />

56, 65<br />

[5] SHU, C.-W. Essentially non-oscillatory and weighted non-oscillatory schemes for hy-<br />

perbolic conservation laws. ICASE Report, Hampton, no. 97-65, 1997. 12, 32, 35,<br />

50<br />

[6] LEVEQUE, R. J. Numerical methods for conservation laws, Birkhäuser, 2 edition,<br />

Basel, 1992, 232 p. 5, 34<br />

131


REFERÊNCIAS BIBLIOGRÁFICAS REFERÊNCIAS BIBLIOGRÁFICAS<br />

[7] SERNA, S.; MARQUINA, A. Power ENO methods: a fifth-or<strong>de</strong>r accurate weighted<br />

power ENO method. Journal of Computational Physics, [S.l.], v194, 2004, p. 632-658.<br />

6<br />

[8] SIDDIQI, K.; KIMIA, B. B.; SHU; C.-W. Geometric shockcapturing ENO schemes<br />

for subpixel interpolation. Graphical Mo<strong>de</strong>ls and Image Processing, 59(5), 1997, p;<br />

278-301. 5<br />

[9] HARTEN, A. Adaptative multiresolution schemes for shock computations. Journal<br />

of Computational Physics, [S.l.], v115, 1994, p.319-338. 37<br />

[10] GOTTLIEB, S.; C.-W. Total variation diminishing Runge-Kutta schemes. Mathe-<br />

matics of computation, Menasha, v. 67, no. 221, 1998, p. 73-85. 19<br />

[11] GELB, A.; TADMOR, E. Detection of edges in spectral data. Applied and computa-<br />

tional harmonic analysis, v7, 1999, p. 101-135. 19<br />

[12] KAMI, S.; KURGANOV, A.; PETROVA, G. A smoothness indicator for adaptative<br />

algorithms for hyperbolic systems. Journal of Computational Physics, [S.l.], v178,<br />

2002, p. 323-341. 19<br />

[13] BORGES, R.; CARMONA, M.; COSTA, B.; DON, W. S. An improved weighted<br />

essentially non-oscillatory scheme for hyperbolic conservation laws. Journal of Com-<br />

putational Physics, [S.l.], v227, 2008, p. 3191-3211. 9, 114<br />

132

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!