I have just released fenicsx_pml.
This module is a complete refactor and serves as the official replacement for the legacy autogen_LC_PML repository.
Updates include:
- Custom vectorized layer extrusion. Extrudes directly from gmsh meshes. The old geometry-only approach is gone.
- Fully MPI-ready
- Simplified math: I completely removed the need to calculate principal curvatures and principal directions.
There is a working demo for acoustic wave propagation (Helmholtz) included in the repo.
Regarding electromagnetics, the exact same coordinate stretching could be applied to the time-harmonic Maxwell’s equations. If you are an EM expert who actually enjoys assembling curl-curl operators in UFL, we can add another demo!
Repo: https://github.com/bayswiss/fenicsx_pml
Install:
git clone https://github.com/bayswiss/fenicsx_pml.git
cd fenicsx_pml
pip install .
P.S. report any bugs you may find, thank you!