Hello, I have been doing my undergraduate work on diffusers and took a look at possible radiation problems, but maybe I could add something to setting the boundary conditions as should be similar to what I have been doing.
On Gmsh I separate surfaces with different properties using the Physical Groups. I then load the mesh in bempp with the import_grid function. To attribute a velocity BC, I create an array with velocity data for every physical group index, and then use it to create a grid function. Maybe the code snippet below could help.
##
@bempp.api.complex_callable
def v_data(x, n, domain_index, result):
with numba.objmode():
result[0] = v[domain_index]
v_fun = bempp.api.GridFunction(space, fun=v_data)
##
Then I just use v_fun in the equations. I don't know if this was specifically your problem, but well, there it is anyway. I am sure there maybe other approaches, but this one seemed to have worked fine for me.
All the best.
Luiz Augusto Alvim.