Mudanças entre as edições de "Equação de Burgers"

De Física Computacional
Ir para: navegação, pesquisa
Linha 213: Linha 213:
 
Portanto:
 
Portanto:
  
<math> u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\left[x-x_{0}\right]-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) </math>
+
<math> u(x, t)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{D}}{2} \tanh \left(\frac{\left(\Delta x-s t\right)\left(u_{E}-u_{D}\right)}{4 \nu}\right) </math>
  
 
=== Gráfico ===
 
=== Gráfico ===
Linha 269: Linha 269:
 
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao
 
anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao
 
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s
 
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s
anim.save('shockwaveee.gif', writer='imagemagick') # gera um .GIF (e permite a renderizacao)
+
anim.save('shockwaveee.gif', writer='imagemagick') # gera um .GIF (e renderizacao)
  
 
</source>
 
</source>
  
 
== Velocidade de Choque ==
 
== Velocidade de Choque ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.
+
Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como<ref name=Cameron>Cameron, M. Notes on Burgers's Equation. University of Maryland, 2021</ref>:
  
== Características da Equação ==
+
<math> \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 </math>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.
+
 
 +
Cuja solução é dada na forma e uma onda viajante:
 +
 
 +
<math> u(x,t)=V(\Delta x - st) </math>
 +
 
 +
Onde <math>V(y)</math> é uma função degrau:
 +
 
 +
<math> \left\{\begin{array}{l}
 +
u_{E}\text{ para } y<0\\
 +
u_{D}\text{ para } y>0
 +
\end{array}\right. </math>
 +
 
 +
Onde <math>u_{L}>u_{R}</math>. Essa onda é chamada de [https://en.wikipedia.org/wiki/Shock_wave onda de choque], e possui velocidade de propagação <math>s</math>. Por conservação, [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions#The_jump_condition The condição de salto]:
 +
 
 +
<math> \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=\int_{-M}^{M}-u u_{x} d x=-\left.\frac{u^{2}}{2}\right|_{-M} ^{M}=\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2} </math>
 +
 
 +
Por outro lado:
 +
 
 +
<math> \int_{-M}^{M} u(x, t) d x=(M+s t) u_{L}+(M-s t) u_{R} </math>
 +
 
 +
Portanto:
 +
 
 +
<math> \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{L}-u_{R}\right) </math>
 +
 
 +
Dessa forma:
 +
 
 +
<math> s=\left(\frac{u_{L}^{2}}{2}-\frac{u_{R}^{2}}{2}\right) /\left(u_{L}-u_{R}\right)=\frac{u_{L}+u_{R}}{2} </math>
 +
 
 +
O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como [https://en.wikipedia.org/wiki/Rankine%E2%80%93Hugoniot_conditions condição de Rankine-Hugoniot], e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:
 +
 
 +
<math> \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 </math>
 +
 
 +
Assim:
 +
 
 +
<math> s=\frac{f\left(u_{L}\right)-f\left(u_{R}\right)}{u_{L}-u_{R}} = \frac{\text{salto em }f(u)}{\text{salto em }u} </math>
 +
 
 +
A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.
  
 
== Métodos Numéricos ==
 
== Métodos Numéricos ==
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.
+
Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS ([https://en.wikipedia.org/wiki/FTCS_scheme ''Foward Time Central Space'']), com a derivada à direita:
 +
 
 +
<math> \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) </math>
 +
 
 +
<math> \cfrac{\partial^{2}}{\partial{x^{2}}}u(x,t) = \cfrac{u(x+\Delta x, t) - 2u(x,t) + u(x-\Delta x,t)}{(\Delta t)^{2}} +\mathcal{O}(\Delta x^{3}) </math>
 +
 
 +
Se:
 +
 
 +
<math> \left\{\begin{array}{l}
 +
u(x, t) := U_{i}^{n}\\
 +
u(x, t+\Delta t) := U_{i}^{n+1}\\
 +
u(x+\Delta x, t) := U_{i+1}^{n}
 +
\end{array}\right. </math>
 +
 
 +
<math> \implies \cfrac{\partial{u}}{\partial{t}}+u\cfrac{\partial{u}}{\partial{x}}=\nu\cfrac{\partial^{2}{U}}{\partial{x^{2}}} \longrightarrow \cfrac{U_{i}^{n+1}-U_{i}^{n}}{\Delta t} + U_{i}^{n}\cfrac{U_{i}^{n}-U_{i-1}^{n}}{\Delta x} = \nu\cfrac{U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}}{(\Delta x)^{2}} </math>
 +
 
 +
<math> \longrightarrow U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) </math>
  
 
=== Conservação ===
 
=== Conservação ===
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.
+
Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma ''quasi''-linear com viscosidade nula:<ref name=Cameron></ref>
 +
 
 +
<math> \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 </math>
 +
 
 +
Com condições iniciais:
 +
 
 +
<math> u(x, 0)=u_{0}(x)= \begin{cases}1, & x<0 \\ 0, & x \geq 0\end{cases} </math>
 +
 
 +
Pela discretização feita anteriormente:
 +
 
 +
<math> U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})+\nu\cfrac{\Delta t}{(\Delta x)^{2}}(U_{i+1}^{n}-2U_{i}^{n}+U_{i-1}^{n}) </math>
 +
 
 +
Pelas condições iniciais, <math>U_{j}^{0}=1</math> para <math>j<0</math> e <math>U_{j}^{0}=0</math> para <math>j\geq 0</math>:
 +
 
 +
<math> U_{j}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, & j<0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{j-1}^{0}\right)=0, & j \geq 0\end{cases} </math>
 +
 
 +
Como resultado, <math>U_{j}^{1}=U_{j}^{0}</math>. Dessa forma, <math>U_{j}^{n}=U_{j}^{0}</math>; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, <math>s=0</math>.
  
 
=== Lax-Friedrichs ===  
 
=== Lax-Friedrichs ===  
Linha 300: Linha 368:
 
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:
 
O limite bilateral da função não existe no ponto na qual é centrada (assim como a função [https://en.wikipedia.org/wiki/Heaviside_step_function degrau de Heavisde]). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:
  
<math>\lim _{x \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)\right) \text{ para } u_{D}<u_{E}</math>
+
<math>\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right) \text{ para } u_{D}<u_{E}</math>
  
<math>\lim _{x \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)\right)</math>
+
<math>\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)</math>
  
<math>\lim _{x \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)(u_{E}-u_{D})\right)</math>
+
<math>\lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)</math>
  
<math>\lim _{x \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)</math>
+
<math>\lim _{\nu \rightarrow 0^{-}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)</math>
  
 
Aplicando a regra do produto:
 
Aplicando a regra do produto:
  
<math>\frac{\lim _{x \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 x}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}</math>
+
<math>\frac{\lim _{\nu \rightarrow 0^{-}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}</math>
  
<math>\lim _{x \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)=-1 \text{ para } u<u_{E} \rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}</math>
+
<math>\lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u<u_{E} </math>
  
<math>\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}<u_{E} \implies \lim _{x \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)\right)=u_{E} \text{ para } u_{D}<u_{E}</math>
+
<math>\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(-1)}{2}=\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}</math>
 +
 
 +
<math>\frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}<u_{E} </math>
 +
 
 +
<math>\implies \lim _{\nu \rightarrow 0^{-}}\left(\frac{u_{D}+u_{E}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{E} \text{ para } u_{D}<u_{E}</math>
  
 
Para o segundo caso:
 
Para o segundo caso:
  
<math>\lim _{x \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)\right)</math>
+
<math>\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)</math>
  
<math>\lim _{x \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)(u_{E}-u_{D})\right)</math>
+
<math>\lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})\right)</math>
  
<math>\lim _{x \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)</math>
+
<math>\lim _{\nu \rightarrow 0^{+}}-\frac{1}{2} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)(u_{E}-u_{D})+\left(\frac{u_{E}+u_{D}}{2}\right)</math>
  
 
Aplicando a regra do produto:
 
Aplicando a regra do produto:
  
<math>\frac{\lim _{x \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 x}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}</math>
+
<math>\frac{\lim _{\nu \rightarrow 0^{+}} \tanh \left(\cfrac{y(u_{E}-u_{D})}{4 \nu}\right)(-u_{E}+u_{D})}{2}+\frac{u_{E}+u_{D}}{2}</math>
 +
 
 +
<math>\lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}<u_{E} </math>
 +
 
 +
<math>\rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}</math>
  
<math>\lim _{x \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)=1 \text{ para } u_{D}<u_{E} \rightarrow \frac{u_{E}+u_{D}}{2}+\frac{(-u_{E}+u_{D})(1)}{2}=\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}</math>
+
<math>\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}<u_{E} </math>
  
<math>\frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}<u_{E} \implies \lim _{x \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 x}\right)\right)=u_{D} \text{ para } u_{D}<u_{E}</math>
+
<math>\implies \lim _{\nu \rightarrow 0^{+}}\left(\frac{u_{E}+u_{D}}{2}-\frac{1}{2}(u_{E}-u_{D}) \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)\right)=u_{D} \text{ para } u_{D}<u_{E}</math>
  
Ao analisar gráfico, verifica-se esse comportamento.
+
Ao analisar gráfico, verifica-se esse comportamento (ver [[#Gráfico|figura 2]])..
  
 
== Referências ==
 
== Referências ==
  
 
<references/>
 
<references/>

Edição das 17h30min de 1 de outubro de 2021

(EM EDIÇÃO)

Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato, William...

Um dos maiores desafios no campo dos sistemas complexos é a compreensão do fenômeno de turbulência. Simulações computacionais contribuíram bastante para o entendimento dessa área, no entanto, ainda não existe nenhuma teoria que explique com sucesso esse comportamento e permita prever outros importantes fenômenos como misturas, convecção e combustão turbulentas, com base nas equações fundamentais da dinâmica de fluidos. Isso se deve ao fato de que a equação para os fluidos mais simples (incompressíveis) já deve levar em consideração propriedades não lineares [1]. Da equação de Navier–Stokes:

Devido à incompressibilidade, a pressão é definida pela equação de Poisson:

Em 1939 o cientista alemão Johannes Martinus Burgers simplificou a equação de Navier-Stokes, removendo o termo de pressão. A equação ficou conhecida como equação de Burgers. Em uma dimensão, onde corresponde ao campo de velocidades e ao coeficiente de difusão:

A equação de Burgers é não linear e, portanto, espera-se um comportamento similar ao da turbulência. No entanto, foi demonstrado posteriormente que a equação de Burgers homogênea, não possuí a propriedade mais importante atribuída ao fenômeno de turbulência: o comportamento caótico em relação à pequenas mudanças nas condições iniciais. Utilizando a transformação de Hopf-Cole, que transforma a equação de Burgers em uma equação parabólica linear é possível observar essa característica [2].

Do ponto de vista numérico, isso é bastante importante, pois permite a comparação das soluções da equação não linear numérica com o resultado analítico. Dessa forma, pode-se investigar a qualidade do método numérico utilizado.

A transformação de Hopf-Cole

A transformação de Hopf-cole mapeia a solução da equação de Burgers na equação do calor [2] [3] [4]:

Escrevendo a equação, para uma certa condição inicial :

Assim, reescrevendo a equação:

Busca-se uma solução que satisfaça:

Como:

Tem-se, que:

Aplicando a transformação de Hopf-Cole:

Assim, os seguintes resultados são obtidos:

Dessa forma:

A equação se torna a própria equação de difusão. É necessário, no entanto, transformar também as condições de contorno; assim:

Podendo ser reescrito como:

Cuja solução:

Dessa forma, é preciso resolver:

Utilizando a transformada de Fourier:

Cuja solução:

Aplicando o teorema da convolução:

Onde:

Em :

Onde:

Modelo de Deposição - Crescimento de Interfaces

Figura 1: Modelo de deposição balística (pertencente à família dos modelos KPZ). O modelo é como um tetris onde os blocos caem e se fixam no primeiro contato [5].

Um exemplo de aplicação é no crescimento de interfaces por deposição, já que a equação de Burgers é equivalente a equação conhecida como, equação de Kardar-Parisi-Zhang (equação KPZ), um modelo de crescimento de uma superfície sólida por deposição de vapor (ou erosão de material de uma superfície sólida), que mostra a evolução da altura da camada com o tempo [6].

A equação é obtida a partir da equação de advecção simples para uma superfície se movimentando com velocidade :

A velocidade é assumida como sendo proporcional ao gradiente de (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.

A equação KPZ é obtida a partir da equação Burgers, no passo imediato à aplicação da transformação de Hopf-Colem.

Solução de Onda Viajante

Pode-se ainda, encontrar uma solução para a equação de Burgers na forma de uma onda viajante. Assim:

Dessa forma:

Substituindo na equação de Burgers:

Impondo condições em , tais que:

Onde . Dessa forma, tem-se que:

Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula . Continuando:

Integrando ambas as partes, utilizando que:

Utilizando o fato de que :

Portanto:

Onde:

Multiplicando e dividindo por :

Dessa forma:

Portanto:

Gráfico

O perfil da função pode ser plotado para diferentes viscosidades. Sabe-se, que conforme a viscosidade se aproxima de zero (fluido invíscido) a função se aproxima de uma função degrau de argumento (ver Apêndice).

Figura 2: Os perfis da solução da equação de Burgers víscida para, uD=0, uE=1, x0=0 e ν variando de 0.4 a 0.02 em 50 passos. Nota-se, que a função se aproxima de uma função degrau quando ν->0.

O gráfico pode ser construido utilizando o código em Python abaixo.

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.animation import FuncAnimation
from matplotlib.lines import Line2D
import numpy as np
from numpy import ndarray
from typing import Any

u, v, x0 = 0, 1, 0 # define-se os parametros iniciais u=u_D, v=u_E

def w(y:ndarray, nu:float): # funcao w(y)
    arg = (y*(v-u))/(4*nu)
    return((u+v)/2 - ((v-u)/2) *np.tanh(arg))

fig = plt.figure(figsize=(12.8, 3.7), dpi=80) # resolucao da gráfico
ax = plt.axes(xlim=(-2, 2), ylim=(0, 1), # características dos eixos
              xlabel=r'$y$', ylabel=r'$w(y)$')
line, = ax.plot([], [], lw=3) # cria-se um obejto 'Line' de 2D
plt.title('Perfis da Equação '+r'$w(y)$'+ # titulo do grafico
          ' para Diferentes Viscosidades')

def init(): # funcao que inicia a animacao caso o frame=0 seja vazio
    line.set_data([], [])
    return line,

def animate(frame, *fargs: Any) -> tuple[Line2D]: # função que plota os gráficos
    c = 0 # inicializa a variavel
    y = np.linspace(-2,2,100) # cria um array de valores para y
    nu_list = np.linspace(0.4,0.02,50) # cria um array de valores de viscosidade
    w_arr = w(y, nu_list[frame]) # cria o array de w(y, nu)
    colour = iter(cm.rainbow(np.linspace(0,2,110))) # iteravel utilizado para as cores
    
    for k in range(frame + 1): # avanca o objeto iteravel em (frame + 1) vezes
        c = next(colour)
    plt.plot(y, w_arr, color=c) # faz com que as linhas sejam mantidas entre frames
    ax.text(1, 0.9, r'$\nu = $'+f'{nu_list[frame]:.3f}', fontsize=15, # adiciona nu
            bbox=dict(edgecolor='white', facecolor='white', alpha=1))
    line.set_color(c) # define a cor da linha com base no iteravel atualizado
    line.set_data(y, w_arr) # define o novo conjunto de dados
    return(line,) # retorna o objeto iteravel [Linha2D]

anim = FuncAnimation(fig, animate, init_func=init, # funcao que produz a animacao
                     frames=50, interval=100, blit=True) # 50 frames com intervalo de 0.1s
anim.save('shockwaveee.gif', writer='imagemagick') # gera um .GIF (e renderizacao)

Velocidade de Choque

Tomando a viscosidade como nula, a equação de Burgers pode ser reescrita como[7]:

Cuja solução é dada na forma e uma onda viajante:

Onde é uma função degrau:

Onde . Essa onda é chamada de onda de choque, e possui velocidade de propagação . Por conservação, The condição de salto:

Por outro lado:

Portanto:

Dessa forma:

O caso generalizado da velocidade de propagação de uma onda de choque é conhecido como condição de Rankine-Hugoniot, e pode ser obtido, desse resultado, pela aplicação das leis de conservação hiperbólicas:

Assim:

A condição de Rankine-Hugoniot, onde o salto da função é definido como choque.

Métodos Numéricos

Discretizando a equação de Burgers para um fluido víscido, a partir da abordagem FTCS (Foward Time Central Space), com a derivada à direita:

Se:

Conservação

Um dos problemas no cálculo de soluções descontinuas para equações como a de Burgers pode ser exemplificado da seguinte forma; supondo a equação de Burgers na forma quasi-linear com viscosidade nula:[7]

Com condições iniciais:

Pela discretização feita anteriormente:

Pelas condições iniciais, para e para :

Como resultado, . Dessa forma, ; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, .

Lax-Friedrichs

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.

Lax-Wendroff

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.

Implementação

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.

Objetivos Futuros

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum metus.

Apêndice

O limite bilateral da função não existe no ponto na qual é centrada (assim como a função degrau de Heavisde). Dessa forma, pode-se calcular o os dois limites unilaterais para entender o comportamento da função, assim:

Aplicando a regra do produto:

Para o segundo caso:

Aplicando a regra do produto:

Ao analisar gráfico, verifica-se esse comportamento (ver figura 2)..

Referências

  1. F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.
  2. 2,0 2,1 Hopf, E. (1950). The partial differential equation ut + uux = μxx. Communications on Pure and Applied Mathematics, 3(3), 201–230. doi:10.1002/cpa.3160030302
  3. Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176
  4. Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: <https://youtu.be/CsnUKrLjtyQ> [Acessado em 30 Setembro de 2021]
  5. Halpin-Healy, T., 2015. KPZ growth model - ballistic deposition (BD). [online] Youtube.com. Disponível em: <https://youtu.be/pdeswgu9rS8> [Acessado em 30 Setembro de 2021]
  6. REIS, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003
  7. 7,0 7,1 Cameron, M. Notes on Burgers's Equation. University of Maryland, 2021