Hi everyone,

I’m building knowledge on perfectly-matched-layers and how to define them on FEniCS, but I’m stuck now.

Consider the weak form of the Helmholtz equation in the bounded domain x = [-a^*, a^*] and y = [-b^*, b^*], where a<x<a^* and b<y<b^* define the PML.

\large{\int_{\Omega} (\frac{\gamma_y}{\gamma_x} \frac{\partial p}{\partial x} \frac{\partial q}{\partial x} + \frac{\gamma_x}{\gamma_y} \frac{\partial p}{\partial y} \frac{\partial q}{\partial y}} - \kappa^2 \gamma_x \gamma_y p q)dxdy = \int_{\Gamma}gq ds

Here, p and q are respectively the trial and test functions, \kappa the wavenumber,

\gamma_x \cases{1, \text{ if } |x|<a \\ 1+\frac{i}{\omega} \sigma_x(x), \text{ if } a<|x|<a^*}

\gamma_y \cases{1, \text{ if } |y|<b \\ 1+\frac{i}{\omega} \sigma_y(y), \text{ if } b<|y|<b^*}

are the damping functions and we have some possibilities for the \sigma's.

I know that p and q need to be split into its real and imaginary parts, for example

\nabla p \cdot \nabla q = \nabla p^R \cdot \nabla q^R + \nabla p^I \cdot \nabla q^I + i(\nabla p^I \cdot \nabla q^R - \nabla p^R \cdot \nabla q^I)

But what about \gamma_x and \gamma_y? I’m confused because they are already complex by definition.

Can someone please give a hint on how to treat them?