Bloch Floquet Boundary condition / Perfect Matching Layer

Hello!
I posted this question on Fenics Slack, but this place is probably more suitable.
I am working on solving Maxwell equations in the time-harmonic approximation and I would like to implement Bloch-Floquet boundary conditions, where you apply some damping to the electric field at the boundaries to emulate infinite distance by reducing unwanted reflection of the field.
I could not find many reference on this using Fenics, except this old forum answer which could be related:
https://fenicsproject.org/qa/146/perfectly-matched-layer/index.html

Does anyone have experience on this subject?

Thanks!

1 Like

Hi,

Not a proper answer since I don’t know how to do this all in Fenics, but I believe you are mixing two things here:

  • Bloch-Floquet boundary conditions are used to mimic a periodic domain in frequency-domain computations;
  • Perfectly Matched Layers are, as you state, used to progressively damp the electromagnetic field in a specific region of the domain (thus mimicking an infinite domain), without introducing parasite reflections in the domain.

PMLs are usually easier to implement in frequency-domain computations than in time-domain, although it is totally feasible in both cases. You may discover while browsing the literature that a large variety of PMLs exists, each with their own pros and cons. The most reliable (i.e. stable) and efficient (i.e. good damping with a reasonable computational overhead) usually come at the cost of a higher implementation complexity (you might give a look at CFS-PMLs for example, which from my own experience (with a DGTD method) represent a relatively robust choice, although the implementation is not easy.

Unfortunately, I have no clue about how to implement that in Fenics, I just wanted to clear out the mixup between Bloch conditions and PMLs.