After presenting it at the FENICS2023 conference, I am sharing the updated version of the LC-PML.
The tool has been calibrated (I finally switched to an hyperbolic absorption function \sigma, way more accurate at low frequencies) and validated. You will find a demo that solves the helmholtz equation in a given domain (step file) with a monopole-like source in a point and a microphone in another one.
The demo calls the actual code, available in autogen_LC_PML.py.
I commented the code in the best way possible, hoping that you will understand all the steps.
You can find the code at the following link:
https://github.com/bayswiss/autogen_LC_PML
For more information about the underlying mathematics and the details of the code, please refer to my article:
https://undabit.com/locally-conformal-perfectly-matched-layer-implementation-in-fenicsx
Disclaimer: the tool was created with acoustics in mind, but it can easily be implemented in other wave problems.
Have fun!
Antonio