I’m struggling to implement explicit values on boundary dofs with Nedelec spaces. The idea is to apply analytic solutions of electric fields for a simplified problem in time-harmonic scattering problems to reduced the boundary effects.
If we consider a Lagrange space, the Non-homogeneous Dirichlet condition Phi = Phi_0 forces this value in the solution function and I assume that the right-hand side and matrix are modified accordingly during the assembly.
However, for Nedelec spaces, the Dirichlet-condition is n x E = n x E_0. Using zero-Dirichlet conditions works fine with the function
DirichletBC(V, "zero", boundary-domain)
As expected, this forces the tangential component to be zero. However, if I use something like Constant(“1000000”) or the values of my analytic solution function as input here, I’d expect that
DirichletBC(V, "analytic", boundary-domain) n x E_0
would lead to apply the non-zero values to the tangential component, but obviously this is not correct as the field behavior is not realy affected (0.01 % random overall field amplitude changes using different orders of magnitude for the tests with different "Constant"s).
Does anyone know how I could force “E = E_0” (like in Lagrange spaces) on my Nedelec space for all dofs at the boundary? Identifying the latter and inserting interpolated explicit values on the right-hand side is not the problem and already implemented, but I have no clue how I could manipulate the matrix before the assembly to have something like a “1” on the main diagonal and zeros elsewhere for these dofs.
Thank you in advance for any ideas,