So, the hyperbolic wave equation can be quite easily solved in Mathematica like this:
L = 5;
TMax = 10;
tsunamiEqn =
u /. NDSolve[{
D[u[t, x, y], t, t] == D[u[t, x, y], x, x] + D[u[t, x, y], y, y],
u[0, x, y] == 0.15/E^(x^2 + y^2),
Derivative[1, 0, 0][u][0, x, y] == 0,
u[t, -L, y] == u[t, L, y],
u[t, x, -L] == u[t, x, L]},
u, {t, 0, TMax}, {x, -L, L}, {y, -L, L}][[1]];
One can then plot it or Manipulate
it via the following snippet:
Manipulate[
Plot3D[
tsunamiEqn[fac TMax, x, y], {x, -L, L}, {y, -L, L},
PlotRange -> {{-L, L}, {-L, L}, {-0.1, 0.2}},
Mesh -> 10,
PlotStyle -> {LightBlue, Specularity[White, 50]}
],
{fac, 0, 0.9}
]
Now my question is:
How do I include a structure inside this "pond". I would like to see what happens when the wave interacts with a square block or so.
I am drawing a blank right now as to how I would want to include that: A boundary condition? (would seem a little complex)
Here are a few snapshots of this wave travelling: