To solve a waves equation, I need to define some boundary conditions. The wave is propagating on an infinite plane, and it's not a membrane fixed on some fixed support. I'm have difficulties in setting up the proper conditions with this working code:
Tmax = 20;
WaveEquation =
D[Phi[t, x, y], t, t] - D[Phi[t, x, y], x, x] - D[Phi[t, x, y], y, y] == 0;
PHI0[x_, y_] = Tanh[x] - 1.5Exp[-0.25(x^2 + y^2)]; (* Initial field *)
BoundaryConditions = { (* The issue is here ! *)
Phi[t, -10, y] == PHI0[-10, y],
Phi[t, 10, y] == PHI0[10, y],
Phi[t, x, -10] == PHI0[x, -10],
Phi[t, x, 10] == PHI0[x, 10]
};
InitialConditions = {
Phi[0, x, y] == PHI0[x, y],
(D[Phi[t, x, y], t]/.t -> 0) == 0
};
WaveSolution = NDSolve[
Flatten@{WaveEquation, InitialConditions, BoundaryConditions},
Phi,
{t, 0, Tmax},
{x, -10, 10},
{y, -10, 10},
PrecisionGoal -> 2
];
Manipulate[
Plot3D[
Evaluate[Phi[t, x, y]/.WaveSolution/.t -> time],
{x, -10, 10},
{y, -10, 10},
PlotPoints -> {20, 20},
PlotRange -> {{-10, 10}, {-10, 10}, {-3, 3}},
Axes -> True,
MeshFunctions -> (#3&),
ColorFunction -> "Rainbow",
ImageSize -> 700,
Method -> {"RotationControl" -> "Globe"},
SphericalRegion -> True
],
{time, 0, Tmax, 0.01}
]
By running this code, we could clearly see the waves reflections on the bounding box. I want to get rid of that effect, since the wave is supposed to be propagating on an infinite plane. What can I do here? Take note that I'm working on Mathematica 7.0, so the option PeriodicBoundaryCondition
isn't recognized by my version, and it would be inapropriate anyway since the waves would get back to the origin after a while.
So how can I tell Mathematica that there isn't any boundary to constraint the waves?
EDIT1: Is there a way to tell Mathematica that all waves should get truncated at the boundaries, without producing any reflections, creating something equivalent to a boundary at infinity? My problem mainly comes from the reflections at the borders {{-10, 10}, {-10, 10}}
that I would like to prevent.
EDIT2: My question is similar to this one (but without an answer yet): Absorbing/Derivative Boundary Conditions