Solução de uma equação de onda com condições de contorno periódicas
Resolva uma equação de onda em 1D com condições de contorno periódicas.
Especifique uma equação de onda com condições de contorno absorventes. Note que o valor de Neumann é pela primeira vez derivado de .
In[1]:=

eqn = D[u[t, x], {t, 2}] ==
D[u[t, x], {x, 2}] +
NeumannValue[-Derivative[1, 0][u][t, x], x == 0 || x == 1];
Especifique as condições iniciais para a equação de onda.
In[2]:=

f[x_] = D[0.125 Erf[(x - 0.5)/0.125], x];
vInit[x_] = -D[f[x], x];
ic = {u[0, x] == f[x], Derivative[1, 0][u][0, x] == vInit[x]};
Especifique uma condição de contorno tal que a solução no contorno direito é propagada para o lado esquerdo.
In[3]:=

bc = PeriodicBoundaryCondition[u[t, x], x == 0,
TranslationTransform[{1}]];
Resolva a equação utilizando o método de elemento finito.
In[4]:=

ufun = NDSolveValue[{eqn, ic, bc}, u, {t, 0, 2}, {x, 0, 1},
Method -> {"MethodOfLines"}];
Visualize a função de onda periódica.
In[5]:=

plots = Table[
Plot[ufun[t, x], {x, 0, 1}, PlotRange -> {-0.1, 1.3}], {t, 0,
2, .1}];
ListAnimate[plots]
