I’m currently working on bringing the FEM-BEM coupling code with NGSolve up to date to the new bempp-cl. So far everything works well, but I’m (somewhat) missing the ability to use higher order shape functions. Since I’m doing a coupling, the fact that only flat triangles are possible is not that big of a restriction (but would obviously be great if that arrived in the near future).
Could you give an estimate on what would need to be done to get higher order shape functions back (for scalar functions)? Is it just a matter of implementing the space (with local_to_global map) and shapeset in bempp.api.space.scalar_spaces and bempp.api.space.shapeset or are there hidden assumptions elsewhere in the code?
in principle it is not difficult to get higher order function spaces back. The only place where they cause problem is the definition of hypersingular operators. Here, we assume in the assembly that we have P1 functions, which allows us to simplify the kernel evaluation by pre-computing a number of quantities. At the moment the functions for instantiating hypersingular operators check explicitly for a space with linear functions as shapesets and throws an error otherwise. May I ask what you need higher order spaces for?
It is more a general interest than a direct need. But for example I’m currently working on a paper on coupling a discontinuous Galerkin method to BEM for the Helmholtz equation and I would like to include some higher order examples (as getting the p-depdedencies right was quite a bit of work).
As it is I will probably have to resort to the old bem++ for these examples (the formulation does require all 4 bem operators).
Also, I would like to use higher order to showcase the NGSolve/Bempp-cl coupling. NGsolve is quite proud of its high order capabilities and doing p=1 doesn’t generate quite as pretty pictures.
Hi. I understand. I am very interested in bringing higher order back too, but would like to do it together with the processing of corresponding order 2 surface meshes. In the next few weeks though I am full with teaching preparations, so don’t think I will be able to make a reasonable start on higher order meshes.