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