Um poluente é liberado em uma determinada seção (x=0) de um rio que se comporta como uma reator advectivo-difusivo/dispersivo. A concentração nesta seção aumenta subitamente para 100 mg / L no instante t=0 e permanece com esse valor até o instante t=2 horas. Determine a concentração da substância ao longo do tempo nas seções x =100 m e x=2000 m, para duas situações:
a) considerando o poluente conservativo
b) considerando o poluente não-conservativo com k=0.0005 / s.
Usar U=0,1 m / s e D=5 m^2 / s. Mostrar os resultados obtidos por meio de gráficos.

Passo 1

Beleza, olha só o que o exercício pede: a gente tem um rio que transporta e dispersa um poluente (esse é o tal “reator advectivo–difusivo”), em x=0 a concentração sobe de 0 para 100 mg/L num pulinho em t=0 e fica lá até t=2 h. Queremos saber como essa concentração varia no tempo em dois pontos rio abaixo: x=100 m e x=2000 m.
Conteúdo: equação de advecção–difusão (com e sem decaimento de primeira ordem). Vamos precisar da solução analítica para um “step input” e da técnica de superposição para o pulso de 2 h. Também usamos funções de erro (erfc).

Passo 2

A base teórica é esta equação diferencial:
partial Cpartial t + U,partial Cpartial x = D,partial^2 Cpartial x^2 - k,C
onde
  • U=0,1 m/s é a velocidade (advecção),
  • D=5 m²/s é a dispersão,
  • k=0 (conservativo) ou k=0,0005 s⁻¹ (não-conservativo).
A solução para um degrau de concentração em x=0 que começa em t=0 e vai até t=t₀ é obtida por superposição de duas “injeções”: uma que liga em t=0 e outra que desliga em t=t₀ (com sinal invertido).

Passo 3

Conservativo (k=0):
Para t≤t₀ (antes de desligar) a concentração em x, t é
Para t>t₀, a gente subtrai o mesmo pulso atrasado em t–t₀:
C1(x,t)=C02l[erfc!l(x-Ut2raizDtr) +exp!l(tfracUxDr),erfc!l(x+Ut2raizDtr)r]

Passo 4

Não-conservativo (k=0,0005 s⁻¹):
Mesma ideia, mas cada termo leva um fator de decaimento exponencial. Para t≤t₀:
E para t>t₀:
C1(x,t)=C02,e^-k t l[erfc!l(x-Ut2raizDtr) +exp!l(tfracUxDr),erfc!l(x+Ut2raizDtr)r]

Passo 5

Agora é só pôr os números:
  • mg/L,
  • m/s,
  • m²/s,
  • s,
  • ou s⁻¹,
  • m e m.
Aí a gente varre (por exemplo de 0 a 30 000 s) e calcula .

Passo 6

Vamos visualizar em gráfico vs. para cada caso.
– Em x=100 m o degrau chega rapidinho (em s ≃0,28 h) e estabiliza enquanto dura o pulso, depois cai.
– Em x=2000 m chega só em s ≃5,6 h, e você vê um “bump” que aparece depois de 2 h e some.
– Com decaimento, a curva fica mais “baixinha” e um pouco mais estreita.
Para plotar, em Python por exemplo:
import numpy as np, matplotlib.pyplot as plt
from scipy.special import erfc

def C_step(x, t, C0, U, D):
    return 0.5*C0*(erfc((x-U*t)/(2*np.sqrt(D*t)))+np.exp(U*x/D)*erfc((x+U*t)/(2*np.sqrt(D*t))))

def C_pulso(x,t, C0,U,D,t0,k):
    if t<=t0:
        return np.exp(-k*t)*C_step(x,t,C0,U,D)
    else:
        return np.exp(-k*t)*C_step(x,t,C0,U,D) - np.exp(-k*(t-t0))*C_step(x,t-t0,C0,U,D)

t = np.linspace(1,3e4,500)
for x in [100,2000]:
    plt.figure()
    for k,label in [(0,'conserv.'),(5e-4,'decai')]:
        C = [C_pulso(x,ti,100,0.1,5,7200,k) for ti in t]
        plt.plot(t/3600,C,label=label)
    plt.title(f"x={x} m")
    plt.xlabel("t (h)"); plt.ylabel("C (mg/L)")
    plt.legend(); plt.grid()
plt.show()

Resposta

Fórmulas finais:
Conservativo (k=0):
Não-conservativo (k=0,0005 s⁻¹):
C(x,t)= dfracC02l[erfc!l(tfracx-Ut2raizDtr) +exp!l(tfracUxDr),erfc!l(tfracx+Ut2raizDtr)r], & t<= t0,[8pt] dfracC02l[erfc!l(tfracx-Ut2raizDtr) +exp!l(tfracUxDr),erfc!l(tfracx+Ut2raizDtr)r] -dfracC02l[erfc!l(tfracx-U(t-t0)2raizD(t-t0)r) +exp!l(tfracUxDr),erfc!l(tfracx+U(t-t0)2raizD(t-t0)r)r], & t>t0
com C(x,t)= e^-k t,C1(x,t), & t<= t0,[6pt] e^-k t,C1(x,t);-;e^-k,(t-t0),C1(x,t-t0), & t>t0, igual ao bloco entre colchetes acima.
Gráficos de vs. para x=100 m e 2000 m mostram:
  • Chegada rápida em 0,3 h no ponto 100 m, pico em 100 mg/L, queda após 2 h.
  • Em 2000 m o pico chega só em ≃5,6 h e atinge bem menos (difusão + decaimento).
  • A curva não-conservativa fica sempre abaixo da conservativa.

Exercícios relacionados