Hello everyone,
I have successfully implemented LC-PML in FEniCSx, but I need some help fine-tuning a few details. The equation being solved essentially becomes an anisotropic version of the Helmholtz equation:
\int_{\Omega}\nabla w \cdot \nabla p d\Omega - \int_{\Omega}k^{2}wp d\Omega + \int_{\Omega_{PML}}\Lambda_{PML} \nabla w \cdot \nabla p d\Omega_{PML} - \int_{\Omega_{PML}}\alpha_{PML}k^{2}wp d\Omega_{PML} = \int_{\Omega}j\omega\rho_{0} w q_{m} d\Omega +\oint_{\partial\Omega}w \frac{\partial p}{\partial n} dS
Here, \Lambda_{PML} and \alpha_{PML} define the behavior of the PML.
Since these functions can be quite complex and differ significantly from polynomials, ffcx is estimating a very high quadrature degree (between 19 and 25).
I am aware that I can manually set the quadrature degree using the following:
dx = Measure("dx", domain=msh, metadata={"quadrature_degree": desired_degree})
However, I would appreciate some advice:
- Is it common for complicated weak forms to result in a high estimated quadrature degree?
- Can I use a rule of thumb to determine the appropriate quadrature degree based on the element order? Should it be more than twice the element order, considering the presence of the \Lambda_{PML} tensor?
While I plan to conduct a sensitivity analysis (which I will do), your advice would help put my mind at ease.
Thank you!