# Solving Helmholtz Equation in 2D for Circular Disk with DEigensystem, NDEigensystem

I would like to solve the Helmholtz equation with Dirichlet boundary conditions in two dimensions for a circular disk with a radius of 1.

$$\Omega =$$ some boundary e.g. a circle

$$\nabla^2 u(x,y) + k^2u(x,y) =0 \quad x,y \in \Omega \\ u(x,y) = 0 \quad x,y \in \partial\Omega$$

As discussed at Helmholtz Problem in Circular Disk

a = 1;
mmax = nmax = 2; (*Set the value of m,n*)
b[m_, n_] := BesselJZero[n, m];
(*calculate the eigenfunction k[m,n]*)
k[m_, n_] := N[b[m, n]/a];
uc[r_, t_, m_, n_] := (Cos[n t]) BesselJ[n, k[m, n]*r];
us[r_, t_, m_, n_] := (Sin[n t]) BesselJ[n, k[m, n]*r];


We created the eigenvalues of $$k_{nm}$$


data = Table[  N[b[m, n]/a], {m, 1, 5}, {n, 0, 2}]  ;
TableForm[ data , TableSpacing -> {3, 7},
TableAlignments -> Center,
TableHeadings -> {{  1 , 2, 3, 4,
5}, {"\!$$\*TemplateBox[{\"0\", \"x\"},\n\"BesselJ\"]$$",
"\!$$\*TemplateBox[{\"1\", \"x\"},\n\"BesselJ\"]$$",
"\!$$\*TemplateBox[{\"2\", \"x\"},\n\"BesselJ\"]$$"}}]


Visualization

rule = {r -> Sqrt[x^2 + y^2], t -> ArcTan[x, y]}; region =
ImplicitRegion[x^2 + y^2 <= 1, {x, y}];
Table[Plot3D[Evaluate[uc[r, t, m, n] /. rule],
Element[{x, y}, region], PlotLabel -> {n, m},
PlotTheme -> "Marketing", ColorFunction -> "AuroraColors"], {n, 0,
nmax}, {m, 1, mmax}]

Table[Plot3D[Evaluate[us[r, t, m, n] /. rule],
Element[{x, y}, region], PlotLabel -> {n, m},
PlotTheme -> "Marketing", ColorFunction -> "AuroraColors"], {n, 1,
nmax}, {m, 1, mmax}]


Now we are trying to solve it with DEigensystem, NDEigensystem

Compute the first 4 eigenfunctions for a circular membrane with the edges clamped:

• DEigensystem
Clear["Global*"]
{vals, funs} =
DEigensystem[{-Laplacian[u[x, y], {x, y}],
DirichletCondition[u[x, y] == 0, True]},
u[x, y], {x, y} \[Element] Disk[{0, 0}, 1], 4];
(*Calculate the eigenvalues*)
vals // N
(*isostatic eigenfunction curves*)
Table[Plot3D[
funs[[i]] // N // Evaluate, {x, y} \[Element] Disk[{0, 0}, 1],
PlotRange -> All, PlotLabel -> vals[[i]],
PlotTheme -> "Minimal"], {i, Length[vals]}]


• NDEigensystem
Clear["Global*"]
{vals, funs} =
NDEigensystem[{-Laplacian[u[x, y], {x, y}],
DirichletCondition[u[x, y] == 0, True]},
u[x, y], {x, y} \[Element] Disk[{0, 0}, 1], 4];
(*Calculate the eigenvalues*)
vals
(*isostatic eigenfunction curves*)
Table[Plot3D[funs[[i]], {x, y} \[Element] Disk[{0, 0}, 1],
PlotRange -> All, PlotLabel -> vals[[i]],
PlotTheme -> "Minimal"], {i, Length[vals]}]


At which values of $$k_{nm}$$ of the relation corresponding to the first 4 eigenvalues given by the command? Because I have found the eigenvalues but they don’t match these $$k_{nm}$$ of the above table. Any help?

Eigenvalues $$\lambda_i$$ are defined as solution of equation $$-\nabla^2 u(x, y)=\lambda_i u(x,y)$$. In a case of $$u=\cos (n \theta) J_n(k_{mn}r)$$ we have

 -Laplacian[Cos[n \[Theta]] BesselJ[n, kmn r], {r, \[Theta]},
"Polar"] // FullSimplify

Out[]= kmn^2 BesselJ[n, kmn r] Cos[n \[Theta]]


Therefore, $$\lambda_{mn}=k_{mn}^2$$. First eigenvalues

b[m_, n_] := BesselJZero[n, m];
k[m_, n_] := N[b[m, n]]; Table[{m, n, k[m, n]^2}, {m, 1, 3}, {n, 0, 2}]

{{{1, 0, 5.78319}, {1, 1, 14.682}, {1, 2, 26.3746}}, {{2, 0,
30.4713}, {2, 1, 49.2185}, {2, 2, 70.85}}, {{3, 0, 74.887}, {3, 1,
103.499}, {3, 2, 135.021}}}

• So I can not find the corresponding values of the first right? Commented Apr 14, 2023 at 13:09
• Oh i got it i have to compare it with $k_{nm}^2$ Commented Apr 14, 2023 at 13:18