Dear all,
I was trying to solve the Eddy Current Problem with Multigrid.
I have curl-conforming boundary constraints, i.e. n x u = 0.
I managed to apply these to the system matrix via
VectorTools::project_boundary_values_curl_conforming_l2()
Unlike step-16 where the same approach has been demonstrated for the LaplaceProblem, I didn't find any method,
which allows me to apply the before mentioned boundary constraints to the MGConstrainedDoFs object.
Thus I computed the curl conforming constraints in assemble_multigrid, when I instantiated the boundary_constraints on each level.
The matrix on the finest grid is the same as the system matrix, which means that my workaround should have worked.
How can I apply my boundary constraints to the transfer matrices between the level meshes, if they are not contained in MGConstrainedDoFs?
Currently I am still using:
MGTransferPrebuilt<VectorType> mg_transfer(mg_constrained_dofs);
mg_transfer.build_matrices(dof_handler);
Obviously this isn't correct though, since the boundary constraints haven't been accounted for.
How can I add curl conforming boundary constraints to the transfer matrices?
Is there any other way that I can deal with the curl conforming boundary conditions, when I am working with Multigrid?
Kind regards,
Julian
P.S. Note that my Multigrid approach is not MatrixFree. Thus I don't think that I can use
MGConstrainedDoFs.add_user_constraints()
since this only applies to MatrixFree methods.