Do fluxo ao caos: o poder de Navier–Stokes em um GIF de fumaça

Último quadro da simulação: uma coluna estreita de fumaça aquecida termina em uma pluma com curvas e redemoinhos, aos cinco segundos.

Uma coluna fina sobe quase em linha reta. Depois, sua cabeça se alarga, se dobra e se desfaz em redemoinhos. É uma cena familiar para quem já observou a fumaça de um incenso. No GIF abaixo, porém, cada mudança nasceu de um cálculo: o computador recebeu leis físicas e um estado inicial, e calculou a evolução de uma pluma aquecida.

A parte fascinante é que as regras continuam as mesmas quando o movimento perde sua aparência comportada. Não existe um instante em que o programa troca a física organizada por outra física, destinada à bagunça. A complexidade aparece durante a evolução do próprio escoamento.

Simulação tridimensional de uma pluma aquecida: a fumaça sobe em uma coluna estreita e desenvolve curvas e redemoinhos durante cinco segundos.
Cinco segundos de evolução física. Aquecimento nominal de +32 K, perturbação inicial de 0,5 mm/s e malha 3D de 48 × 48 × 237 células. O GIF repete a mesma execução.

Abrir o GIF original em tamanho completo. Observe primeiro a coluna estreita; na repetição seguinte, acompanhe a cabeça da pluma e as dobras que se formam abaixo dela.

O que estamos vendo, afinal?

Esta é uma simulação de ar aquecido carregando uma concentração relativa de fumaça. O domínio representa a região logo acima de uma pequena fonte, inspirada em um cigarro em combustão lenta. A ponta acesa, a queima do material e as reações que fabricam as partículas ficam fora do modelo.

Na base, a fonte mantém calor e um marcador de fumaça. O ar aquecido ganha movimento ascendente, arrasta ar ao redor e transporta o marcador. Ao subir, regiões com velocidades diferentes interagem; a pluma cresce, se deforma e desenvolve estruturas que lembram as observadas em fumaça real.

Há duas leituras diferentes da imagem. A leitura física é a evolução de uma pluma por convecção e a formação de instabilidades. A leitura visual é a passagem de uma forma organizada para outra irregular. O GIF ilustra essa passagem; sozinho, ele não comprova caos matemático nem caracteriza uma turbulência plenamente desenvolvida. Essas conclusões exigiriam comparações entre execuções quase idênticas, medições e testes de resolução.

Navier–Stokes: a segunda lei de Newton aplicada ao ar

A ideia básica cabe em uma frase: cada pequena região do fluido muda sua velocidade conforme as forças que atuam nela. É o raciocínio de “força produz aceleração”, aplicado a um material que se desloca, se deforma e interage com seus vizinhos.

As equações de Navier–Stokes foram desenvolvidas no século XIX e incluem os efeitos da viscosidade. São uma base da mecânica dos fluidos e da simulação computacional de escoamentos. A introdução da NASA apresenta esse sistema e sua solução aproximada por computadores.

Na forma usada neste projeto, a equação do movimento pode ser escrita assim. Não é preciso dominar os símbolos para entender a animação:

∂u/∂t + (u · ∇)u = −∇π + ν∇²u + gβθ e_z
∇ · u = 0

Aqui, u é a velocidade em três dimensões; π é a pressão dividida pela densidade de referência, com o equilíbrio hidrostático de fundo retirado; ν é a viscosidade cinemática; θ é o aumento de temperatura em relação ao ambiente; g é a gravidade; β vale 1/T₀ neste modelo; e e_z aponta para cima.

O primeiro termo acompanha a mudança da velocidade no tempo. Ele responde à pergunta: como o ar neste lugar está acelerando?

O segundo descreve o movimento transportando o próprio movimento. Uma região de ar leva sua velocidade para outro lugar, onde encontra regiões que já se movem de outro modo. Essa interação é não linear: dobrar uma causa não significa simplesmente dobrar todo o resultado. É uma peça central da capacidade de desenvolver estruturas complexas.

A pressão redistribui o movimento. Ela ajusta as velocidades para que o ar não se acumule indevidamente em uma célula. A viscosidade suaviza diferenças de velocidade entre regiões vizinhas. O termo térmico acrescenta a aceleração ascendente associada ao empuxo.

A segunda linha, ∇ · u = 0, expressa a incompressibilidade: nessa aproximação, o volume de ar que entra em uma região deve corresponder ao que sai. O modelo acompanha um fluido contínuo, e não cada molécula individual.

O que foi utilizado além de Navier–Stokes?

Para simular esta fumaça, o programa também precisa saber onde estão o calor e o material que torna a pluma visível. Por isso, resolve duas equações de transporte:

Calor:   ∂θ/∂t + u · ∇θ = α∇²θ
Fumaça:  ∂c/∂t + u · ∇c = D∇²c
Na fonte, calor e concentração são repostos a cada passo.

O ar em movimento leva o calor e a fumaça consigo: isso é advecção, como uma correnteza transportando uma gota de tinta. Ao mesmo tempo, diferenças locais se espalham por difusão. Os coeficientes α e D determinam o ritmo dessa suavização no modelo.

O calor participa ativamente da dinâmica, porque altera o empuxo. Já a concentração c funciona como um marcador passivo: é carregada pelo ar, mas sua quantidade não acrescenta peso, força ou outra alteração às velocidades. O código não segue partículas individuais, nem calcula seu tamanho, sua queda ou sua química.

A ligação entre temperatura e movimento usa a aproximação de Boussinesq. A densidade é tratada como constante nos demais cálculos, mas a pequena diferença associada ao aquecimento é mantida no empuxo. É uma forma comum de modelar convecção natural; a explicação técnica da COMSOL mostra esse acoplamento. O projeto usa sua própria implementação, escrita em Python; não utiliza o programa COMSOL.

Portanto, a afirmação científica correta é: Navier–Stokes, a conservação de volume, o transporte de calor e fumaça, a lei de empuxo e condições bem especificadas produzem esta evolução. A equação do movimento é o núcleo. Ela precisa dessas informações para representar uma pluma aquecida particular.

Todas as hipóteses que dão forma a este experimento

A animação foi conferida contra o código e o registro da execução que gerou o arquivo. Os números abaixo pertencem a esse GIF, e não apenas às opções padrão da interface.

EscolhaValor nesta execuçãoSignificado
Região calculada16 × 16 × 79 cmUma caixa finita que aproxima uma pequena região de ar ambiente.
Malha tridimensional48 × 48 × 237 = 546.048 célulasCada célula mede aproximadamente 3,33 mm em cada direção.
Tempo físico5 sA duração do fenômeno representado.
Passo do cálculo0,008 s; 625 passosO estado é atualizado a cada oito milésimos de segundo.
Temperatura ambiente293,15 K = 20 °CReferência do calor e do empuxo.
Aquecimento da fonte+32 K, nominalmenteDiferença de 32 °C; aproximadamente 52 °C na região central idealizada.
Perturbação inicial0,5 mm/s = 0,0005 m/sEscala usada para normalizar cada componente do campo inicial, antes da correção de pressão.
Viscosidade cinemática ν1,5 × 10⁻⁵ m²/sSuavização física das diferenças de velocidade.
Difusividade térmica α2,1 × 10⁻⁵ m²/sEspalhamento do calor.
Difusividade do marcador D1 × 10⁻⁶ m²/sEspalhamento idealizado da concentração.
Gravidade9,81 m/s²Entra no cálculo do empuxo térmico.

1. O ar é contínuo, viscoso e aproximadamente incompressível

O fluido é descrito por campos de velocidade, temperatura e pressão. A viscosidade segue a hipótese de fluido newtoniano, com coeficientes constantes. Não há ondas sonoras, choques ou compressão rápida. Também não se recalculam as propriedades do ar conforme a temperatura varia. Essas escolhas reduzem o custo e delimitam o tipo de fenômeno representado.

2. O calor sobe por empuxo, dentro de uma aproximação

A temperatura extra θ gera uma aceleração ascendente gθ/T₀. Para θ = 32 K, ela vale aproximadamente 1,07 m/s². A temperatura cai e se redistribui durante a evolução, portanto essa aceleração não permanece igual em toda a pluma.

A diferença nominal de temperatura equivale a cerca de 11% da temperatura absoluta ambiente. Isso pede cuidado: Boussinesq é mais fiel quando as diferenças relativas de densidade são pequenas. Aqui é uma simplificação didática, sem validação de precisão térmica. Os 52 °C aproximados representam o gás na fonte do domínio, não a temperatura da ponta em combustão.

3. A fonte tem tamanho e desenho definidos

Ela fica no centro horizontal da caixa, nos primeiros 12 mm de altura. Sua intensidade cai suavemente com a distância ao centro, em um perfil gaussiano com escala radial de 9 mm. Essa escala não é uma borda rígida: o perfil tem uma cauda que vai enfraquecendo.

O desenho recebe uma pequena assimetria fixa: um termo linear de coeficiente 0,06 e um termo senoidal de coeficiente 0,03. Assim, a fonte não é perfeitamente idêntica em todas as direções. Esses coeficientes descrevem a fórmula, e não uma garantia de variação máxima de 6% e 3% em toda a caixa.

A fonte não pulsa e não muda de lado durante a execução. Ela também não injeta uma velocidade vertical prescrita: o movimento ascendente é produzido pelo aquecimento.

4. O começo contém calor, marcador e um movimento muito pequeno

No instante inicial, a temperatura extra é 32 vezes o perfil da fonte, e a concentração relativa é esse mesmo perfil. Fora da faixa inferior da fonte, esses dois campos começam em zero: ar à temperatura ambiente e sem marcador de fumaça.

A velocidade inicial contém uma perturbação espacial suave. Ela é construída uma única vez com um gerador de números pseudoaleatórios de semente fixa 1701, filtrada com escala espacial de 11 mm, e modulada para enfraquecer perto das laterais e do topo. Cada componente é normalizada pela sua dispersão espacial para a escala de 0,5 mm/s. Depois, a pressão corrige o campo para respeitar a incompressibilidade.

Esse 0,5 mm/s não significa que todos os pontos tenham a mesma velocidade. É a escala de preparação de um campo distribuído no espaço. Não há sorteios novos a cada quadro nem rajadas aleatórias durante a evolução. Com os mesmos parâmetros e ambiente de cálculo, a execução é reproduzível.

5. A fonte continua alimentando a pluma

A cada passo, o programa repõe temperatura e concentração onde caíram abaixo do perfil definido para a fonte. Essa operação mantém uma região quente e com marcador disponível. É uma condição de alimentação contínua; não basta fornecer um estado inicial e depois abandonar o sistema.

Essa reposição não é uma simulação da combustão, nem uma emissão medida em gramas por segundo. A concentração é relativa e não permite inferir diretamente massa real de fuligem ou exposição a poluentes.

6. A caixa tem fronteiras que deixam o ar circular

A base impede fluxo vertical através dela. O topo deixa o ar sair e impede entrada vertical descendente. Nas laterais, o código permite saída local quando a velocidade interior aponta para fora e distribui entrada de ar ambiente para compensar o fluxo total que sai. O ar que chega pelas laterais recebe temperatura extra e concentração iguais a zero no transporte desses campos.

As fronteiras aproximam uma região inserida em uma sala maior. Não representam paredes completas com todas as condições de atrito: em particular, a base impermeável não implica uma condição integral de velocidade nula junto a uma superfície real. Nas diferenças usadas para difusão, o valor da borda é estendido, aproximando gradiente normal nulo. O tamanho finito da caixa pode influenciar o resultado, sobretudo perto das bordas.

7. O computador resolve aproximações das equações

As velocidades ficam nas faces das células; calor e concentração, em seus centros. Essa disposição, chamada malha desencontrada, ajuda a relacionar os fluxos com a conservação de volume. As derivadas são aproximadas por diferenças entre valores da malha.

O transporte usa um método semilagrangiano com correção: para atualizar uma célula, o programa procura de onde veio o fluido. Uma interpolação tridimensional fornece os valores intermediários; uma etapa de ida e volta reduz a perda de detalhes. Um limitador evita criar máximos e mínimos artificiais fora do intervalo dos valores vizinhos.

A viscosidade e as difusões são aplicadas explicitamente. A pressão é obtida por uma equação de Poisson resolvida com transformadas de Fourier sobre uma extensão espelhada do domínio. O modo médio é removido e as velocidades interiores são corrigidas, preservando os fluxos de fronteira definidos pelo código. Os campos principais usam números de ponto flutuante de 32 bits.

Após o transporte, a temperatura extra é mantida não negativa e a concentração é limitada entre zero e um; em seguida, a fonte é reposta. Não há um modelo adicional de turbulência, nem uma força artificial desenhada para fabricar redemoinhos. Há, porém, difusão e limitações numéricas: a malha e a interpolação suavizam estruturas pequenas. A execução não é uma simulação direta de todas as escalas da turbulência real.

8. A imagem é uma tradução dos dados

O campo calculado é convertido em volumes de concentração com 256 níveis. O navegador usa WebGL 2 para atravessar esse volume com raios virtuais e acumular cor e transparência. Cada raio usa até 128 amostras. A câmera mostra um ponto de vista do cálculo tridimensional, e não um desenho plano movimentado depois.

A transparência depende da concentração, com uma transformação visual para melhorar a leitura. Há suavização junto às laterais e ao topo para a borda da caixa não parecer uma parede sólida. Cor, opacidade e enquadramento são escolhas de apresentação; o brilho não mede temperatura nem representa um cálculo completo do espalhamento físico da luz.

Foram salvos estados a cada cinco passos: um intervalo físico de 0,04 s, mais o estado inicial, totalizando 126 quadros. Os quadros foram renderizados em 1080 × 1440 pixels e reunidos com Python e Pillow em um GIF de paleta compartilhada, com 256 cores e duração de cinco segundos. A repetição automática reinicia a mesma sequência; não cria uma nova pluma.

Por que a coluna perde a aparência bem comportada?

Perto da fonte, o aquecimento sustenta uma coluna estreita. A pluma ascendente interage com o ar ao redor, que se move de maneira diferente. Sua cabeça avança, alarga e organiza regiões de circulação. Pequenas assimetrias já presentes na fonte e no ar encontram uma dinâmica capaz de amplificá-las e reorganizá-las.

Quando uma região se curva, modifica o transporte de calor, o empuxo e as velocidades ao redor. Essas mudanças alteram as próximas curvas. A viscosidade e a difusão suavizam diferenças; o transporte e as forças reorganizam o movimento. O que aparece na imagem é o resultado dessa competição durante cinco segundos.

Nenhum redemoinho foi especificado como uma trajetória a ser seguida. Também não há uma altura definida para começar a “bagunça”. As formas nascem da evolução dos campos segundo as regras do modelo. É nesse sentido que a simulação torna visível o poder de uma lei relativamente compacta: ela descreve interações locais cujo resultado coletivo pode ser muito complicado.

Em sistemas caóticos, estados iniciais muito próximos podem evoluir para estados bastante diferentes, embora sigam regras determinísticas. Essa ligação ficou célebre com o trabalho de Edward Lorenz, em 1963. O GIF aproxima o leitor dessa ideia, mas não mede a sensibilidade a condições iniciais: foi registrada uma execução, e uma forma irregular também pode ser apenas uma instabilidade transitória.

Oito curiosidades para olhar a fumaça com outros olhos

1. O personagem principal é invisível

O cálculo fundamental é o movimento do ar. A fumaça funciona como tinta que revela parte desse movimento. Há ar circulando mesmo nas regiões escuras da imagem; ausência de marcador não significa ausência de escoamento.

2. A gravidade participa da subida

O ar quente sobe por sua diferença de densidade em relação ao ambiente sob gravidade. No código, zerar g eliminaria o empuxo térmico, ainda que a fonte continuasse quente. O aquecimento não é uma ordem geométrica de “mover para cima”: a subida vem de uma força modelada.

3. Cinco segundos custaram quase 24 minutos

O registro desta execução informa 1.435,28 segundos de cálculo, aproximadamente 23 minutos e 55 segundos, antes das etapas de renderização e codificação. O fenômeno simulado dura cinco segundos; o computador levou cerca de 287 vezes esse tempo para calcular a evolução. Esse custo pertence a esta execução e a este ambiente, e não é uma regra para qualquer computador.

4. Um redemoinho pode se intensificar ao ser esticado

Em três dimensões, um tubo de rotação pode ser alongado e afinar, intensificando sua vorticidade em certas condições. É um mecanismo que ajuda a entender por que a terceira dimensão importa para os fluidos. As notas de hidrodinâmica do MIT explicam o estiramento de vórtices. Isso não significa que cada dobra visível no GIF seja uma medida direta desse mecanismo.

5. Não existe um número mágico para toda fumaça virar turbulência

O número de Reynolds, Re = UL/ν, compara a importância da inércia com a viscosidade. A NASA explica essa razão. Como exemplo apenas ilustrativo, U = 0,5 m/s, L = 2 cm e a viscosidade deste modelo dão Re ≈ 667. Escolher outra escala muda o valor. A geometria, o aquecimento e as perturbações também importam: um limiar conhecido para um tubo não deve ser transplantado automaticamente para uma pluma.

6. Repetir o GIF e repetir o experimento real são coisas diferentes

O arquivo reproduz sempre os mesmos 126 quadros. O cálculo também foi preparado para ser determinístico. Já duas plumas reais podem começar com pequenas diferenças de corrente de ar, temperatura e emissão. Determinismo e previsibilidade prática são conceitos diferentes: conhecer as regras não garante conhecer o estado inicial com precisão suficiente.

7. “Resolver Navier–Stokes” tem mais de um significado

Calcular uma aproximação de um caso, em uma malha e por cinco segundos, é uma tarefa distinta de provar uma propriedade geral das soluções. O problema de existência e regularidade em três dimensões foi incluído pelo Clay Mathematics Institute entre os Problemas do Milênio, associados desde 2000 a prêmios de um milhão de dólares. Uma animação bonita nunca foi uma solução desse desafio matemático.

8. Mais pixels não significam mais física

O GIF tem 1080 × 1440 pixels, mas o cálculo usa células de cerca de 3,33 mm. A renderização pode suavizar e ampliar a imagem; ela não recupera movimentos menores que a malha não calculou. Detalhe visual e resolução física são medidas diferentes.

A pequena receita matemática da fonte

Para quem gosta de conferir todos os ingredientes, o perfil usado no código é descrito abaixo. As coordenadas x, y e z estão em metros; o centro horizontal fica em x = y = 0,08 m. Esta expressão dá a distribuição idealizada da fonte, antes dos detalhes da amostragem na malha:

r² = (x − 0,08)² + (y − 0,08)²
R = 0,009 m
A = 1 + 0,06(x − 0,08)/R
      + 0,03 sen(3πx/0,16) sen(2πy/0,16)
S = exp[−r²/(2R²)] × A, se z < 0,012 m
S = 0, acima dessa faixa

No início: θ = 32S e c = S
Após cada passo: θ ← máximo(θ, 32S)
                 c ← máximo(c, S)

A perturbação inicial usa ruído normal com a semente fixa, filtrado em Fourier por exp(−2π²ℓ²|k|²), com ℓ = 0,011 m e k em ciclos por metro. O filtro elimina variações espaciais muito bruscas. O campo recebe ainda o envelope cos²(πz/2H) sen²(πx/W) sen²(πy/W), com H = 0,79 m e W = 0,16 m; depois, cada componente é normalizada para a escala escolhida. Isso define um início espacialmente estruturado, sem acrescentar ruído ao longo do tempo.

Esses detalhes mostram por que “condições bem definidas” é uma expressão concreta: é preciso dizer qual ar, qual fonte, qual perturbação, quais fronteiras, quais coeficientes e qual método de cálculo. A fonte persistente e as fronteiras acompanham toda a execução, além das condições do instante inicial.

O alcance desta demonstração

A simulação reproduz qualitativamente traços familiares de uma pluma real: subida por aquecimento, coluna estreita, alargamento, curvas e redemoinhos. Não foi comparada a um experimento instrumentado, nem apresentada aqui com um estudo de convergência entre malhas. Portanto, não permite afirmar que a posição de cada dobra, a taxa real de emissão ou a mistura de um incenso específico foram previstas quantitativamente.

Essa distinção preserva a descoberta mais interessante da animação: uma lei de movimento, acompanhada das equações e condições físicas adequadas, pode gerar formas que ninguém desenhou uma a uma. O mundo organizado e o mundo de aparência caótica podem aparecer na evolução do mesmo modelo. Quando a coluna começa a se dobrar, a lei continua trabalhando.

Nota sobre as fontes: os parâmetros, as hipóteses e o modo de geração foram conferidos no código da simulação, no registro de sua execução e nos metadados do GIF. As referências externas, indicadas nos trechos correspondentes, contextualizam Navier–Stokes, Boussinesq, Reynolds, vorticidade, caos determinístico e o desafio matemático do Clay Institute.

Deixe um comentário