[attachment=undefined]schema.PNG[/attachment] [attachment=undefined]schema.PNG[/attachment]

https://ngsolve.org/media/kunena/attachments/1052/pulse2d_waveguide_pml.pyDear NGSolve developers,

I have trouble with pml when used for a waveguide problem. Consider a 2D geometry: \Omega = [0, Range] X [0, Depth] and the Helmholtz equation:

\Delta u + k^2 u = -f in \Omega

with

\frac{\partial u}{\partial n} = 0 on \Gamma_N (top and bottom boundaries).

To the left and right, we have \Gamma_R where we use the PML, so that \partial \Omega = \Gamma_N \cup \Gamma_R

I wish to prescribe f as a point source at (x0,y0) located in \Omega so I followed the pulse implementation given in the NGSolve’s the i-tutorials page (1.7 Complex-valued waves — NGS-Py 6.2.2302-87-ga5a5eff3b documentation)

For the geometry described above, I created the mesh externally in GMsh and specified the regions for PML (to left and right of the source) by using the domain keywords i used in GMsh. While I can see that the solution decays within the PML regions, I would have expected it to undergo an exponential decay due to geometrical spreading loss as it travels to left and right of the point source. Does the NGSolve pml implementation take into account the modal behaviour of waves in a confined cavity unlike fully exterior problem?

I have attached the script that I am using and a schematic of the problem to get an idea.

Many thanks for your help.