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

De Física Computacional
Ir para: navegação, pesquisa
Linha 177: Linha 177:
 
<math> \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} </math>
 
<math> \frac{d y}{2 \nu}=\frac{d w}{w^{2}-\left(u_{E}+u_{D}\right) u+u_{E} u_{D}} </math>
  
<math> \implies \frac{d y}{2 \nu}=\frac{d w}{\left(w-\frac{u_{E}+u_{D}}{2}\right)^{2}-\frac{\left(u_{E}-u_{D}\right)^{2}}{4}} </math>
+
<math> \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}} </math>
  
 
Integrando ambas as partes, utilizando que:
 
Integrando ambas as partes, utilizando que:
  
<math> \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \log \left|\frac{w-a-b}{w-a+b}\right| </math>
+
<math> \int \frac{d w}{(w-a)^{2}-b^{2}}=\frac{1}{2 b} \ln \left|\frac{w-a-b}{w-a+b}\right| </math>
  
<math> \implies \frac{y}{2 \nu}+C=\frac{1}{u_{E}-u_{D}} \log \left|\frac{w-\frac{u_{E}+u_{D}}{2}-\frac{u_{E}-u_{D}}{2}}{w-\frac{u_{E}+u_{D}}{2}+\frac{u_{E}-u_{D}}{2}}\right| </math>
+
<math> \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| </math>
  
<math> =\frac{1}{u_{E}-u_{D}} \log \left|\frac{w-u_{E}}{w-u_{D}}\right|=\frac{1}{u_{E}-u_{D}} \log \frac{u_{E}-w}{w-u_{D}} </math>
+
<math> =\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)} </math>
  
 
Utilizando o fato de que <math>u_{E}>w>u_{D}</math>:
 
Utilizando o fato de que <math>u_{E}>w>u_{D}</math>:
  
<math> \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \log \frac{u_{E}-w}{w-u_{D}} </math>
+
<math> \frac{y}{2 \nu}+C = \frac{1}{u_{E}-u_{D}} \ln{\left(\frac{u_{E}-w}{w-u_{D}}\right)} </math>
  
 
Portanto:
 
Portanto:
  
<math> \frac{u_{E}-w}{w-u_{D}}=e^{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C} </math>
+
<math> \frac{u_{E}-w}{w-u_{D}}=\exp{\left[{\frac{y\left(u_{E}-u_{D}\right)}{2 \nu}+C}\right]} </math>
  
 
<math> u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} </math>
 
<math> u_{E}-w=w e^{\alpha}-u_{D} e^{\alpha} \rightarrow w\left(e^{\alpha}+1\right)=u_{E}+u_{D}e^{\alpha} </math>
Linha 205: Linha 205:
 
Multiplicando e dividindo por <math>\exp{(-\alpha/2)}</math>:
 
Multiplicando e dividindo por <math>\exp{(-\alpha/2)}</math>:
  
<math> \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 \frac{\alpha}{2} </math>
+
<math> \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)} </math>
  
 
Dessa forma:
 
Dessa forma:

Edição das 03h17min 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 permite a renderizacao)

Velocidade de Choque

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

Características da Equação

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

Métodos Numéricos

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

Conservação

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

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.

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