Equação de Burgers: mudanças entre as edições
| Linha 392: | Linha 392: | ||
Considerando a equação de Burgers víscida com <math>f(u)=u^{2}/2</math>, na forma <ref name=Mikel></ref>: | Considerando a equação de Burgers víscida com <math>f(u)=u^{2}/2</math>, na forma <ref name=Mikel></ref>: | ||
<math>\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \ | <math>\frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \nu\frac{\partial^{2} u}{\partial x^{2}}</math> | ||
Integrando de <math>x_{ | Integrando de <math>x_{i-1/2}</math> até <math>x_{i+1/2}</math>: | ||
<math>\int_{x_{ | <math>\int_{x_{i-1 / 2}}^{x_{i+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=-[f(u)]_{x_{i-1 / 2}}^{x_{i+1 / 2}}</math> | ||
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo: | Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo: | ||
<math>\int_{x_{ | <math>\int_{x_{i-1 / 2}}^{x_{i+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{i}, t\right) h</math> | ||
Para o segundo: | Para o segundo: | ||
<math>-\left[\ | <math>-\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=\nu\left[\frac{\partial u}{\partial x}\left(x_{i-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{i+1 / 2}, t\right)\right]</math> | ||
<math>\implies -\left[\ | <math>\implies -\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}} \approx \nu\left[\frac{u\left(x_{i}, t\right)-u\left(x_{i-1}, t\right)}{h}-\frac{u\left(x_{i+1}, t\right)-u\left(x_{i}, t\right)}{h}\right] = -\nu \frac{u\left(x_{i+1}, t\right)-2 u\left(x_{i}, t\right)+u\left(x_{i-1}, t\right)}{h}</math> | ||
Para o terceiro: | Para o terceiro: | ||
<math>-[f(u)]_{x_{ | <math>-[f(u)]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=f\left(u\left(x_{i-1 / 2}, t\right)\right)-f\left(u\left(x_{i+1 / 2}, t\right)\right)</math> | ||
Substituindo as aproximações na expressão completa e definindo <math>U_{ | Substituindo as aproximações na expressão completa e definindo <math>U_{i}(t)\equiv u(x_{i},t)</math>: | ||
<math>\frac{d U_{ | <math>\frac{d U_{i}}{d t}-\nu \frac{U_{i+1}-2 U_{i}+U_{i-1}}{h^{2}}=\frac{f\left(U_{i-\frac{1}{2}}\right)-f\left(U_{i+\frac{1}{2}}\right)}{h}</math> | ||
Discretizando a derivada em relação a tempo por um método FTCS: | Discretizando a derivada em relação a tempo por um método FTCS: | ||
<math>U_{ | <math>U_{i}^{n+1}=U_{i}^{n}+k\left(\nu \frac{U_{i+1}^{n}-2 U_{i}^{n}+U_{i-1}^{n}}{h^{2}}-\frac{f\left(U_{i+\frac{1}{2}}^{n}\right)-f\left(U_{i-\frac{1}{2}}\right)}{h}\right)</math> | ||
Onde <math>f(U_{ | Onde <math>f(U_{i\pm\frac{1}{2}})</math> é calculada numericamente como a média entre <math>f(U_{i})</math> e <math>f(U_{i\pm 1})</math>. | ||
== Implementação == | == Implementação == | ||
Edição atual tal como às 20h27min de 12 de outubro de 2021
Grupo: Eduardo Pedroso, Luis Gustavo Lang Gaiato e William Machado Pantaleão
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 Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle p} é definida pela equação de Poisson:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Delta p(x,t) = -\nabla \cdot v(x,t) \cdot \nabla v(x,t)) }
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 Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u} corresponde ao campo de velocidades e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nu} ao coeficiente de difusão:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) }
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]:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial t}\psi(x,t)=\nu \Delta \psi(x,t) }
Escrevendo a equação, para uma certa condição inicial Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle F(x)} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial t}u(x,t) + u(x,t)\frac{\partial}{\partial x}u(x,t) = \nu\frac{\partial^{2}}{\partial x^{2}}u(x,t) }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u(x,0)=F(x) }
Assim, reescrevendo a equação:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial t}u(x,t) + \frac{\partial}{\partial x}\left(\frac{(u(x,t))^{2}}{2}-\nu \frac{\partial}{\partial x}u(x,t)\right) = 0 }
Busca-se uma solução Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \psi(x,t) } que satisfaça:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\{\begin{array}{l} \cfrac{\partial \psi}{\partial x}=u\\ \cfrac{\partial \psi}{\partial t}=\nu \cfrac{\partial}{\partial x}u - \cfrac{u^{2}}{2} \end{array}\right. }
Como:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial x}\frac{\partial \psi}{\partial t} = \frac{\partial}{\partial t}\frac{\partial \psi}{\partial x} }
Tem-se, que:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial\psi}{\partial t} = \nu\frac{\partial^{2}\psi}{\partial x^{2}} -\frac{1}{2}\left(\frac{\partial\psi}{\partial x}\right)^{2} }
Aplicando a transformação de Hopf-Cole:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \psi=-2\nu\ln{(\phi)} }
Assim, os seguintes resultados são obtidos:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial\psi}{\partial x} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right) }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial^{2}\psi}{\partial x^{2}} = \frac{2\nu}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2} - \frac{2\nu}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right) }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial\psi}{\partial t} = -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) }
Dessa forma:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial\psi}{\partial t} = \nu \frac{\partial^{2} \psi}{\partial x^{2}} - \frac{1}{2}\left(\frac{\partial \psi}{\partial x}\right)^{2} \rightarrow -\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial t}\right) = \frac{2\nu^{2}}{\phi^{2}}\left(\frac{\partial \phi}{\partial x}\right)^{2}-\frac{2\nu^{2}}{\phi}\left(\frac{\partial^{2} \phi}{\partial x^{2}}\right)-\frac{1}{2}\left[\frac{2\nu}{\phi}\left(\frac{\partial \phi}{\partial x}\right)\right]^{2} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies \frac{\partial \phi}{\partial t} = \nu\frac{\partial^{2} \phi}{\partial x^{2}} }
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:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle F(x)=u(x,0)=-\frac{2\nu}{\phi(x,0)}\left(\frac{\partial \phi(x,0)}{\partial x}\right) }
Podendo ser reescrito como:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \rightarrow \frac{d}{dx}\ln{(\phi)}=-\frac{1}{2\nu}F(x)}
Cuja solução:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \phi(x,0)=\Phi(x)=\exp{\left(-\frac{1}{2\nu}\int_{0}^{x}F(s)ds\right)}}
Dessa forma, é preciso resolver:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\{\begin{array}{l} \cfrac{\partial \phi}{\partial t}=\nu\frac{\partial^{2} \phi}{\partial x^{2}}\\ \phi(x,0)=\Phi(x) \end{array}\right. }
Utilizando a transformada de Fourier:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\{\begin{array}{l} \cfrac{\partial \hat{\phi}}{\partial t}=-k^{2}\nu\hat{\phi}\\ \hat{\phi}(k,0)=\hat{\Phi}(k) \end{array}\right. }
Cuja solução:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \hat{\phi}(k,t)=\hat{\Phi}(k)e^{-k\nu t} }
Aplicando o teorema da convolução:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \phi(x,t)=\Phi(x)\mathcal{F}^{-1}\left[e^{-k^{2}\nu t}\right] = \frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}\Phi(y)e^{\frac{(x-y)^{2}}{4\nu t}}dy }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies \phi(x,t)=\frac{1}{2\sqrt{\pi\nu t}}\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy }
Onde:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} }
Em Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \rightarrow u(x,t)=-\frac{2\nu}{\phi(x,t)}\left(\frac{\partial \phi(x,t)}{\partial x}\right) }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies u(x,t)=\frac{\int_{-\infty}^{\infty}\left(\frac{x-y}{t}\right)e^{-\frac{f}{2\nu}}dy}{\int_{-\infty}^{\infty}e^{-\frac{f}{2\nu}}dy} }
Onde:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(x,y,t)=\frac{1}{2\nu}\int_{0}^{y}F(s)ds + \frac{(x-y)^{2}}{2t} }
Modelo de Deposição - Crescimento de Interfaces
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].
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial t} h(x, t)-\frac{1}{2}\left(\nabla h(x, t)\right)^{2}=\nu \frac{\partial^{2}}{\partial x^{2}} h(x, t)+F(x, t)}
A equação é obtida a partir da equação de advecção simples para uma superfície Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle z=h(x,t)} se movimentando com velocidade Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U(x,t)} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial t} h(x, t) + U \cdot \nabla h(x,t)=0}
A velocidade é assumida como sendo proporcional ao gradiente de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle h(x,t)} (superfície evolui na direção do gradiente). A difusão da superfície é descrita pelo termo de difusão.
A equação KPZ unidimensional corresponde a versão estocástica da equação de Burgers com campo Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u(x,t)} pela substituição Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u=-\lambda\frac{\partial h}{\partial x}} .
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:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u(x,t)=w(\Delta x - st)\equiv w(y)}
Dessa forma:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial t} u(x,t) = -sw^{\prime} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial}{\partial x} u(x,t) = w^{\prime} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial^{2}}{\partial x^{2}} u(x,t) = w^{\prime\prime} }
Substituindo na equação de Burgers:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle -s w^{\prime}+w w^{\prime}=\nu u^{\prime \prime} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle -s w^{\prime}+\left(\frac{w^{2}}{2}\right)^{\prime}=\nu w^{\prime\prime} \rightarrow -s w+\frac{w^{2}}{2}=\nu w^{\prime}+C }
Impondo condições em Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \pm\infty} , tais que:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\{\begin{array}{l} w(-\infty)=u_{E}\\ w(\infty)=u_{D}\\ w^{\prime}(\pm\infty)=0 \end{array}\right. }
Onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{E}>u_{D}} . Dessa forma, tem-se que:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle -s u_{E}+\frac{u_{E}^{2}}{2}=C=-s u_{D}+\frac{u_{D}^{2}}{2} \implies s=\frac{u_{E}+u_{D}}{2}}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle C=-u_{E}u_{D}/2 }
Desse modo, a velocidade de choque é a mesma para o caso de viscosidade nula Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left(\nu=0\right)} . Continuando:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nu w^{\prime}=\frac{w^{2}}{2}-\frac{u_{E}+u_{D}}{2} w+\frac{u_{E} u_{D}}{2} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\cfrac{u_{E}+u_{D}}{2}\right)^{2}-\cfrac{\left(u_{E}-u_{D}\right)^{2}}{4}} }
Integrando ambas as partes, utilizando que:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-\cfrac{u_{E}+u_{D}}{2}-\cfrac{u_{E}-u_{D}}{2}}{w-\cfrac{u_{E}+u_{D}}{2}+\cfrac{u_{E}-u_{D}}{2}}\right| }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle =\frac{1}{u_{E}-u_{D}} \ln \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} }
Utilizando o fato de que Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{E}>w>u_{D}} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} }
Portanto:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies w=\frac{u_{E}+u_{D} e^{\alpha}}{e^{\alpha}+1}=u_{D}+\frac{u_{E}-u_{D}}{2} \frac{2}{e^{\alpha}+1} }
Onde:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \alpha=\frac{y\left(u_{L}-u_{R}\right)}{2 \nu}+C }
Multiplicando e dividindo por Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \exp{(-\alpha/2)}} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{2 e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\frac{e^{\alpha / 2}-e^{-\alpha / 2}}{e^{\alpha / 2}+e^{-\alpha / 2}}=1-\tanh{\left(\frac{\alpha}{2}\right)} }
Dessa forma:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle w(y)=\frac{u_{D}+u_{E}}{2}-\frac{u_{E}-u_{R}}{2} \tanh \left(\frac{y\left(u_{E}-u_{D}\right)}{4 \nu}+C\right) }
Portanto:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle 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) }
Gráfico
O perfil da função Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle w(y)} 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 Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x-st} (ver Apêndice).
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]:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial u(x,t)}{\partial t} + \frac{\partial}{\partial x}\frac{u^{2}}{2} = 0 }
Cuja solução é dada na forma e uma onda viajante:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u(x,t)=V(\Delta x - st) }
Onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle V(y)} é uma função degrau:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\{\begin{array}{l} u_{E}\text{ para } y<0\\ u_{D}\text{ para } y>0 \end{array}\right. }
Onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{E}>u_{D}} . Essa onda é chamada de onda de choque, e possui velocidade de propagação Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle s} . Por conservação, a condição de salto:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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_{E}^{2}}{2}-\frac{u_{D}^{2}}{2} }
Por outro lado:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_{-M}^{M} u(x, t) d x=(M+s t) u_{E}+(M-s t) u_{D} }
Portanto:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{d}{d t} \int_{-M}^{M} u(x, t) d x=s\left(u_{E}-u_{D}\right) }
Dessa forma:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle s=\left(\frac{u_{E}^{2}}{2}-\frac{u_{D}^{2}}{2}\right) /\left(u_{E}-u_{D}\right)=\frac{u_{E}+u_{D}}{2} }
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:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial u}{\partial t}+\frac{\partial}{\partial x} f(u)=0 }
Assim:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle s=\frac{f\left(u_{E}\right)-f\left(u_{D}\right)}{u_{E}-u_{D}} = \frac{\text{salto em }f(u)}{\text{salto em }u} }
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:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \cfrac{\partial}{\partial{t}}u(x,t) = \cfrac{u(x,t+\Delta t) - u(x,t)}{\Delta t} +\mathcal{O}(\Delta t^{2}) }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}) }
Se:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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. }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}) }
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]
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} = 0 }
Com condições iniciais:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u(x, 0)=u_{0}(x)= \begin{cases}1, & x<0 \\ 0, & x \geq 0\end{cases} }
Pela discretização feita anteriormente:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle 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}) }
Pelas condições iniciais, Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{0}=1} para Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle i<0} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{0}=0} para Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle i\geq 0} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{1}= \begin{cases}1-\frac{\Delta t}{\Delta x} 1(1-1)=1, & i<0 \\ 0-\frac{\Delta t}{\Delta x} 0\left(0-U_{i-1}^{0}\right)=0, & i \geq 0\end{cases} }
Como resultado, Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{1}=U_{i}^{0}} . Dessa forma, Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n}=U_{i}^{0}} ; isso significa que o método propaga a descontinuidade (onda de choque) com a velocidade incorreta, Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle s=0} ; ou seja, não ocorre propagação após o choque.
Método Conservativo
A partir da discretização para o caso víscido, se Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nu=0} , então:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1} = U_{i}^{n} - U_{i}^{n}\cfrac{\Delta t}{\Delta x}(U_{i}^{n}-U_{i-1}^{n})}
Assim como para o caso anterior, esse método não é conservativo e é adequado apenas para soluções que não possuem descontinuidades. Considerando a lei de conservação:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = 0}
Discretizando:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]}
Onde a função Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f} corresponde à uma função de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle p+q+1} argumentos, chamada de fluxo numérico [7] [8] [9]. Assim, para Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle p=1} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle q=0} , Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle F(U,V)=f(u)} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1}=U_{i}^{n}-\frac{\Delta t}{\Delta x}\left[\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]}
Lax-Friedrichs
O método de Lax-Friedrichs para sistemas não lineares possui a forma:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{k}{2 h}\left[f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right]}
Para o caso da equação de Burgers invíscida:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1}=\frac{1}{2}\left(U_{i-1}^{n}+U_{i+1}^{n}\right)-\frac{\Delta t}{2 \Delta x}\left[\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right]}
Lax-Wendroff
O método de Lax-Wendroff é um método de segunda ordem e possui a forma [9][8]:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1}=U_{i+1}^{n}-\frac{k}{2 h}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)+\frac{k^{2}}{2 h^{2}}\left[A_{i+\frac{1}{2}}\left(f\left(U_{i+1}^{n}\right)-f\left(U_{i}^{n}\right)\right)-A_{i-\frac{1}{2}}\left(f\left(U_{i}^{n}\right)-f\left(U_{i-1}^{n}\right)\right)\right]}
Onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle A_{j\pm\frac{1}{2}}} corresponde à matriz jacobiana Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle A(u)=f^{\prime}(u)} , avaliada em Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle 1/2(U_{i}^{n}+U_{j\pm1}^{n})} . Para a equação de Burgers (invíscida) Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f^{\prime}(u)=u} , assim:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1}= U_{i+1}^{n}-\frac{k}{2 h}\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)+}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{k^{2}}{2 h^{2}}\left[\left(\frac{1}{2}\left(U_{i}^{n}+U_{i+1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i+1}^{n}\right)^{2}-\frac{1}{2}\left(U_{i}^{n}\right)^{2}\right)-\left(\frac{1}{2}\left(U_{i}^{n}+U_{i-1}^{n}\right)\right)\left(\frac{1}{2}\left(U_{i}^{n}\right)^{2}-\frac{1}{2}\left(U_{i-1}^{n}\right)^{2}\right)\right]}
Método parabólico
Considerando a equação de Burgers víscida com Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(u)=u^{2}/2} , na forma [8]:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\partial u}{\partial t} + \frac{\partial}{\partial x}f(u) = \nu\frac{\partial^{2} u}{\partial x^{2}}}
Integrando de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_{i-1/2}} até Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_{i+1/2}} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_{x_{i-1 / 2}}^{x_{i+1 / 2}} \frac{\partial u}{\partial t} d x-\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=-[f(u)]_{x_{i-1 / 2}}^{x_{i+1 / 2}}}
Aproximando-se cada termo da equação acima tem-se que, para o primeiro termo:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_{x_{i-1 / 2}}^{x_{i+1 / 2}} \frac{\partial u}{\partial t} d x \approx \frac{d u}{d t}\left(x_{i}, t\right) h}
Para o segundo:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle -\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=\nu\left[\frac{\partial u}{\partial x}\left(x_{i-1 / 2}, t\right)-\frac{\partial u}{\partial x}\left(x_{i+1 / 2}, t\right)\right]}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies -\left[\nu\frac{\partial u}{\partial x}\right]_{x_{i-1 / 2}}^{x_{i+1 / 2}} \approx \nu\left[\frac{u\left(x_{i}, t\right)-u\left(x_{i-1}, t\right)}{h}-\frac{u\left(x_{i+1}, t\right)-u\left(x_{i}, t\right)}{h}\right] = -\nu \frac{u\left(x_{i+1}, t\right)-2 u\left(x_{i}, t\right)+u\left(x_{i-1}, t\right)}{h}}
Para o terceiro:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle -[f(u)]_{x_{i-1 / 2}}^{x_{i+1 / 2}}=f\left(u\left(x_{i-1 / 2}, t\right)\right)-f\left(u\left(x_{i+1 / 2}, t\right)\right)}
Substituindo as aproximações na expressão completa e definindo Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}(t)\equiv u(x_{i},t)} :
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{d U_{i}}{d t}-\nu \frac{U_{i+1}-2 U_{i}+U_{i-1}}{h^{2}}=\frac{f\left(U_{i-\frac{1}{2}}\right)-f\left(U_{i+\frac{1}{2}}\right)}{h}}
Discretizando a derivada em relação a tempo por um método FTCS:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i}^{n+1}=U_{i}^{n}+k\left(\nu \frac{U_{i+1}^{n}-2 U_{i}^{n}+U_{i-1}^{n}}{h^{2}}-\frac{f\left(U_{i+\frac{1}{2}}^{n}\right)-f\left(U_{i-\frac{1}{2}}\right)}{h}\right)}
Onde Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(U_{i\pm\frac{1}{2}})} é calculada numericamente como a média entre Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(U_{i})} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(U_{i\pm 1})} .
Implementação
Foram implementados quatro métodos: para o caso víscido, FTCS não conservativo e o método parabólico; para o caso invíscido, FTCS não conservativo e FTCS conservativo. Definindo a condição de contorno periódica Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle U_{i=0}^{n}=u_{i_{max}}^{n}} , e utilizando as condições iniciais:
Caso 1:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u(x, t)= \begin{cases}1, & x \leq 1 \\ 0, & x>1\end{cases}}
Caso 2:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\{\begin{array}{l} u_{i}^{n=0}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\ \phi=e^{\left(\frac{-x^{2}}{4 \nu}\right)+e^{\left[\frac{-(x-2 \pi)^{2}}{4 \nu}\right]}} \end{array}\right.}
Derivando Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \phi} e substituindo na equação:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \implies u_{i}^{n=0} = -\cfrac{x}{2\nu}e^{\left(\cfrac{-x^{2}}{4\nu}\right)}-\cfrac{(x-2\pi)}{2\nu}e^{\left[\cfrac{-(x-2\pi)^{2}}{4\nu}\right]}}
Cuja solução analítica é
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\{\begin{array}{l} u_{i}^{n}=\frac{-2 \nu}{\phi(x, \nu)}\left(\frac{\partial \phi(x, \nu)}{\partial x}\right)+4 \\ \phi=e^{\left(\frac{-(x-4 t)^{2}}{4 \nu(t+1)}\right)+e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}} \end{array}\right.}
Derivando Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \phi} e substituindo na equação:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{i}^{n}=-\frac{(x-4 t)}{2 \nu(t+1)} e^{-\left(\frac{(x-4 t)^{2}}{4 \nu(t+1)}\right)}-\frac{(x-4 t-2 \pi)}{2 \nu(t+1)} e^{\left[\frac{-(x-4 t-2 \pi)^{2}}{4 \nu(t+1)}\right]}}
Importando os Módulos Utilizados
# -*- coding: utf-8 -*-
from math import pi, exp
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
Array2D = np.ndarray # typing...
Burgers FTCS Víscido Não Conservativo
def burgers(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -> tuple:
# incrementos
dt = tmax/(nt-1) # no tempo
dx = xmax/(nx-1) # no espaco
# arrays
u = np.zeros((nx, nt)) # velocidade
x = np.zeros(nx)
ipos = np.zeros(nx)
ineg = np.zeros(nx)
# condicoes de contorno periodicas
for i in range(0, nx): # i: 0, 1, ... nx-2, nx-1, nx
x[i] = i*dx
ipos[i] = i+1 # 1, 2, ... nx-2, nx+1
ineg[i] = i-1 # -1, 0, ... nx-2, nx-1
ipos[-1] = 0 # ipos[nx-1] = 0, u_{n+1}
ineg[0] = nx-1 # u_{n-1}
# condicoes iniciais
if caso == 1:
for i in range(0,nx):
if x[i] <= 1:
u[i,0] = 1
elif x[i] > 1:
u[i,0] = 0
elif caso == 2:
for i in range(0, nx):
phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )
dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )
*exp(-(x[i]-2*pi)**2 / (4*v) ))
u[i,0] = -2*v*(dphi/phi) + 4
# solucao numerica
for n in range(0, nt-1):
for i in range(0,nx):
u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n])+
v*(dt/dx**2)*(u[int(ipos[i]),n]-2*u[i,n]+u[int(ineg[i]),n]))
return((u, x))
Burgers Víscido Parabólico
def burgParab(nt:int, nx:int, tmax:float, xmax:float, v:float, caso:int) -> tuple:
def f(u):
return((u**2)/2)
# incrementos
dt = tmax/(nt-1)
dx = xmax/(nx-1)
# arrays
u = np.zeros((nx,nt))
x = np.zeros(nx)
ipos = np.zeros(nx)
ineg = np.zeros(nx)
# condicoes de contorno periodicas
for i in range(0,nx):
x[i] = i*dx
ipos[i] = i+1
ineg[i] = i-1
ipos[nx-1] = 0
ineg[0] = nx-1
# condicoes iniciais
if caso == 1:
for i in range(0,nx):
if x[i] <= 1:
u[i,0] = 1
elif x[i] > 1:
u[i,0] = 0
elif caso == 2:
for i in range(0,nx):
phi = exp( -(x[i]**2)/(4*v) ) + exp( -(x[i]-2*pi)**2 / (4*v) )
dphi = (-(0.5*x[i]/v)*exp( -(x[i]**2) / (4*v) ) - (0.5*(x[i]-2*pi) / v )
*exp(-(x[i]-2*pi)**2 / (4*v) ))
u[i,0] = -2*v*(dphi/phi) + 4
# solucao numerica
for n in range(0,nt-1):
for i in range(0,nx):
fminus = 0.5*(f(u[i,n]) + f(u[int(ineg[i]),n]))
fplus = 0.5*(f(u[i,n]) + f(u[int(ipos[i]),n]))
u[i,n+1] = u[i,n]+dt*(v*((u[int(ipos[i]),n]-(2*u[i,n])+u[int(ineg[i]),n])/(dx**2))-(fplus-fminus)/dx)
return((u, x))
Burgers Víscido Analítico (Caso 2)
def burgers_analytical(nt:int, nx:int, tmax:float, xmax:float, v:float) -> tuple:
# incrementos
dt = tmax/(nt-1)
dx = xmax/(nx-1)
# arrays
u_a = np.zeros((nx, nt))
x = np.zeros(nx)
t = np.zeros(nt)
# len(x)
for i in range(0, nx):
x[i] = i*dx
# solucao analitica
for n in range(0, nt):
t = n*dt
for i in range(0, nx):
phi = (exp( -(x[i]-4*t)**2/(4*v*(t+1)) ) +
exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ))
dphi = ( -0.5*(x[i]-4*t)/(v*(t+1))*exp( -(x[i]-4*t)**2/(4*v*(t+1)) )
-0.5*(x[i]-4*t-2*pi)/(v*(t+1))*exp( -(x[i]-4*t-2*pi)**2/(4*v*(t+1)) ) )
u_a[i,n] = -2*v*(dphi/phi) + 4
return((u_a, x))
Burgers FTCS Invíscido Não Conservativo
def burgInv(nt:int, nx:int, tmax:float, xmax:float) -> tuple:
# incrementos
dt = tmax/(nt-1)
dx = xmax/(nx-1)
# arrays
u = np.zeros((nx,nt))
x = np.zeros(nx)
ipos = np.zeros(nx)
ineg = np.zeros(nx)
# condicoes de contorno periodicas
for i in range(0,nx):
x[i] = i*dx
ipos[i] = i+1
ineg[i] = i-1
ipos[nx-1] = 0
ineg[0] = nx-1
# condicoes iniciais
for i in range(0,nx):
if x[i]<=1:
u[i,0] = 1
elif x[i]>1:
u[i,0] = 0
# solucao numerica
for n in range(0,nt-1):
for i in range(0,nx):
u[i,n+1] = (u[i,n]-u[i,n]*(dt/dx)*(u[i,n]-u[int(ineg[i]),n]))
return((u, x))
Burgers FTCS Invíscido Conservativo
def burgCons(nt:int, nx:int, tmax:float, xmax:float) -> tuple:
# incrementos
dt = tmax/(nt-1)
dx = xmax/(nx-1)
# arrays
u = np.zeros((nx,nt))
x = np.zeros(nx)
ipos = np.zeros(nx)
ineg = np.zeros(nx)
# condicoes de contorno periodicas
for i in range(0,nx):
x[i] = i*dx
ipos[i] = i+1
ineg[i] = i-1
ipos[nx-1] = 0
ineg[0] = nx-1
# condicoes iniciais
for i in range(0,nx):
if x[i]<=1:
u[i,0] = 1
elif x[i]>1:
u[i,0] = 0
# solucao numerica
for n in range(0,nt-1):
for i in range(0,nx):
u[i,n+1] = (u[i,n]-(dt/dx)*((1/2 * (u[i,n])**2)-(1/2 * (u[int(ineg[i]),n])**2)))
return((u, x))
Gráfico de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{a}} vs. Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x}
def plot(u_a:Array2D, u:Array2D, x:list, nt:int, title:str):
plt.figure(figsize=(8, 6), dpi=80)
colour=iter(cm.rainbow(np.linspace(0, 20, nt)))
for n in range(0, nt, 20):
c=next(colour)
plt.plot(x, u[:, n], 'ko', markerfacecolor=c, alpha=0.5)
plt.plot(x, u_a[:, n], linestyle='-', c=c, label=f'i={n}')
plt.legend()
plt.xlabel(r'$x$')
plt.ylabel(r'$u$')
plt.ylim([0, 8.0])
plt.xlim([0, max(x)])
plt.title(title)
plt.show()
Gráfico de Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u} , Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{p}} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle u_{a}} vs. Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x} na Última Iteração
def plotErro(u:Array2D, u_p:Array2D, u_a:Array2D, x:list, v:float):
plt.plot(x, u[:,-10], label='Burgers', color='blue')
plt.plot(x, u_a[:,-10], label='Analítico', color='red')
plt.plot(x, u_p[:,-10], label='Parabólico', color='green')
plt.legend()
plt.xlabel(r'$x$')
plt.ylabel(r'$u$')
plt.title('Última Interação com ' + r'$\nu=$' + f'{v}')
plt.show()
Gráfico 3D Invíscido (Caso 1)
def plot3D(num:int, arr:Array2D, xmax:int, tmax:int, n:int, nx:int, title:str, cond:int) -> None:
w_arr = np.zeros((num,len(arr[:,-1])))
x_arr = np.zeros((num,len(arr[:,-1])))
for i in range(num):
if cond == 0:
w, x_res = burgInv(nt, nx, n*i/num, xmax)
elif cond == 1:
w, x_res = burgCons(nt, nx, n*i/num, xmax)
elif cond == 2:
w, x_res = burgParab(nt, nx, n*i/num, xmax, 0.1,2)
elif cond == 3:
w, x_res = burgers(nt, nx, n*i/num, xmax, 0.1, 2)
w_arr[i] = w[:,-1]
x_arr[i] = x_res
ax = plt.axes(projection='3d')
times = np.zeros((num,1))
t = 0
dt = 0
for i in range(num):
times[i,0] = t + dt
dt += tmax/num
ax.plot_surface(x_arr, times, w_arr, rstride=1, cstride=1,
cmap='jet', edgecolor='none')
plt.title(title)
ax.set_xlabel('x')
ax.set_ylabel('t')
ax.set_zlabel('u')
plt.show()
Exemplo de Utilização
Define-se Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nu=0.1} , Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle n_{t}=200} , Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle n_{x}=200} , Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle t_{max}=0.5} e Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_{max}=2\pi} :
nt, nx, tmax, xmax, v = 200, 200, 0.5, 2*pi, 0.1
Chama-se as funções de cálculo e constrói os gráficos:
u, x = burgers(nt, nx, tmax, xmax, v, 2) # ftcs nao conservativo
u_a, x = burgers_analytical(nt, nx, tmax, xmax, v) # ftcs analítico
u_p, x = burgParab(nt, nx, tmax, xmax, v, 2) # # ftcs parabolico
title = str(r'($\nu=$'+f'{v}, '+r'$n_t$'+f'={nt}, '+
r'$n_x$'+f'={nx}, '+r'$t_{max}$'+f'={tmax})')
plot(u_a, u, x, nt, 'Não Conservativo ' + title) # grafico de u e u_a vs. x
plot(u_a, u_p, x, nt, 'Parabólico ' + title) # grafico de u_p e u_a vs. x
plotErro(u, u_p, u_a, x, v)
Como Resultado
É possível observar que o método não conservativo propaga a descontinuidade com velocidade incorreta, ao contrário do método parabólico. De fato, como demonstrado anteriormente (ver Conservação), no caso em que Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nu=0} , pelo método não conservativo a velocidade é nula.
Para o Caso Invíscido
u_nc, x_nc = burgInv(nt, 100, 4, 2)
title = 'Burgers Invíscido (não conservativo) - Caso 1'
plot3D(200, u_nc, 2, 4, 2, 100, title, 0)
u_c, x_c = burgCons(nt, 100, 4, 2)
title = 'Burgers Invíscido (conservativo) - Caso 1'
plot3D(200, u_c, 2, 4, 2, 100, title, 1)
Como Resultado
É possível observar o comportamento discutido acima, quando Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nu=0} a descontinuidade não se propaga pelo método FTCS não conservativo; em oposição ao método conservativo, onde se propaga.
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:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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)}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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)}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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)}
Aplicando a regra do produto:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim _{\nu \rightarrow 0^{-}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=-1 \text{ para } u<u_{E} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{u_{E}-u_{D}}{2}+\frac{u_{E}+u_{D}}{2}=u_{E} \text{ para } u_{D}<u_{E} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}}
Para o segundo caso:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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)}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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)}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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)}
Aplicando a regra do produto:
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim _{\nu \rightarrow 0^{+}} \tanh \left(\frac{y(u_{E}-u_{D})}{4 \nu}\right)=1 \text{ para } u_{D}<u_{E} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}}
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{u_{E}+u_{D}}{2}+\frac{u_{D}-u_{E}}{2}=u_{D} \text{ para } u_{D}<u_{E} }
Falhou ao verificar gramática (MathML com retorno SVG ou PNG (recomendado para navegadores modernos e ferramentas de acessibilidade): Resposta inválida ("Math extension cannot connect to Restbase.") do servidor "https://wikimedia.org/api/rest_v1/":): {\displaystyle \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}}
Ao analisar gráfico, verifica-se esse comportamento (ver figura 2)..
Referências
- ↑ F. M. White, Viscous Fluid Flow, 3rd ed. New York, NY: McGraw-Hill Professional, 2005.
- ↑ 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
- ↑ Evans, Lawrence C. (2010). Partial differential equations. [S.l.]: Providence, R.I. : American Mathematical Society. pp. 175–176
- ↑ Meylan, M., 2020. Nonlinear PDE Meylan. Lecture 12. [online] Youtube.com. Disponível em: <https://youtu.be/CsnUKrLjtyQ> [Acessado em 30 Setembro de 2021]
- ↑ 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]
- ↑ Reis, F. D. A. A. Depinning transitions in interface growth models. Brazilian journal of physics, v. 33, n. 3, p. 501–513, 2003
- ↑ 7,0 7,1 7,2 Cameron, M. Notes on Burgers's Equation. University of Maryland, 2021
- ↑ 8,0 8,1 8,2 Landajuela, M. Burgers Equation. Basque Center for Applied Mathematics, 2011
- ↑ 9,0 9,1 LeVeque, Randall J. (1992). Numerical Methods for Conservation Laws (PDF). Boston: Birkhäuser. p. 125. ISBN 0-8176-2723-5.


