There is a code for solving a wave equation over an arbitrarily shaped region.
Ω =
RegionDifference[RegionUnion[Disk[], Rectangle[{0, 0}, {2, 2}]],
Disk[{1/4, 1/4}, 1/5]];
uifWave = NDSolveValue[{D[u[t, x, y], t, t] - Inactive[Laplacian][u[t, x, y], {x, y}] == 0,
u[0, x, y] == E^(-5*((x - 3/2)^2 + (y - 3/2)^2)),
Derivative[1, 0, 0][u][0, x, y] == 0,
DirichletCondition[u[t, x, y] == 0,
True]},
u, {t, 0, 2 π}, {x, y} ∈ Ω] //
Quiet;
framesWEQ =
Table[Plot3D[
uifWave[t, x, y], {x, y} ∈ uifWave["ElementMesh"],
PlotRange -> {-1, 1}, Boxed -> False, Axes -> False,
Mesh -> None], {t, 0, 2 π, 2 π/50}];
Manipulate[framesWEQ[[i]], {{i, 16, "time"}, 1, Length[framesWEQ], 1},
SaveDefinitions -> True]
How to solve this equation over the Black Sea shape region?
mask = GeoGraphics[{GeoStyling[RGBColor["Aqua"]],
Polygon[Entity["Ocean", "BlackSea"]]}, GeoBackground -> None]
Ω = Cases[mask, _Polygon, Infinity][[1]]
, doesn't work. I mean, it produces a region, but does not produce a solution to the equations. $\endgroup${x, y} ∈ Ω
inPlot3D
instead of"ElementMesh"
. $\endgroup$uifWave
that plots but I think the wave is very small over the area. May need to increase the amplitude inu
. $\endgroup$