FEM-BEM coupling

188 views
Skip to first unread message

seb_...@gmx.de

unread,
Mar 29, 2016, 3:00:28 AM3/29/16
to bempp
Is there a possibility to couple BEM++ with FEM programs other than FEniCs? I am thinking of the deal.ii FEM library.

Timo Betcke

unread,
Mar 29, 2016, 3:22:56 AM3/29/16
to bempp
Hi,

deal.ii will be difficult as it does not support tetrahedral elements. So you would have to map yourself between quadrilaterals on the surface of the FEM mesh and triangles for a corresponding BEM mesh. 

Otherwise, any FEM library that supports tetrahedral elements can be made to interact with BEM++. However, you would have to write the dof mappers from one library to the other. We are only doing it for FEniCS right now as this is the only FEM code we are using.

Best wishes

Timo

seb_...@gmx.de

unread,
Mar 29, 2016, 9:42:48 AM3/29/16
to bempp
Timo,

thank you for your reply. I see the conflict of tetrahedral and quadrilateral elements.

Regarding FEniCs, is it possible to handle disconnected domains?

I tried to use your tutorial for the Helmholtz problem.

I replaced [14] by


mesh = dolfin.UnitSquareMesh(10,10)


this is a 2D mesh. However, the exception listed below by the fenics_interface


Traceback (most recent call last):
File "FEniCs_BEMpp_Helmholtz.py", line 17, in <module>
trace_space, trace_matrix = fenics_interface.coupling.fenics_to_bempp_trace_data(fenics_space)
File "/usr/lib/python2.7/dist-packages/bempp/api/fenics_interface/coupling.py", line 25, in fenics_to_bempp_trace_data
return p1_coupling.p1_trace(fenics_space)
File "/usr/lib/python2.7/dist-packages/bempp/api/fenics_interface/p1_coupling.py", line 38, in p1_trace
bempp_boundary_grid = grid_from_element_data(bm_coords.transpose(), bm_cells.transpose())
File "/usr/lib/python2.7/dist-packages/bempp/api/grid/grid.py", line 164, in grid_from_element_data
return Grid(grid_fun(vertices, elements, domain_indices))
File "bempp/core/grid/grid.pyx", line 302, in bempp.core.grid.grid.grid_from_element_data (/bempp_build/bempp/build/cython/bempp/core/grid/cython_grid.cc:5890)
File "bempp/core/grid/grid.pyx", line 298, in bempp.core.grid.grid.grid_from_element_data (/bempp_build/bempp/build/cython/bempp/core/grid/cython_grid.cc:5840)
ValueError: createGridFromConnectivityArrays(): invalid vertex index in element #26


Does the interface only work for 3D FEM meshes?


Best

Sebastian

Matthew Scroggs

unread,
Mar 29, 2016, 10:39:33 AM3/29/16
to bempp
Dear Sebastian,

Currently, BEM++ only works for 3D problems, therefore can only interface with 3D FEM meshes. We don't have any current plans to extend this to 2D problems.

It looks like FEniCS can deal with disconnected domains. See the example code at http://fenicsproject.org/qa/8820/solving-pde-on-disconnected-meshes

seb_...@gmx.de

unread,
Mar 30, 2016, 3:28:05 AM3/30/16
to bempp
Dear Matthew,

does this imply that the whole library is made for 3D problems solely? Or is the coupling with FEniCs only implemented for the 3D case?

I am considering a Poisson problem with non constant coefficients. How can I deal with this coefficient in my boundary integral? I am referring to M_\Gamma in your FEM-BEM tutorial. I tried out GridFunction, but it does not work out yet.

I will have a look at the disconnected domains later.

Best Sebastian

Timo Betcke

unread,
Mar 30, 2016, 3:36:45 AM3/30/16
to bempp
Dear Sebastian,

BEM++ only does 3d problems. We have no 2d implementation of the integrators. Are you interested in a Laplace problem with non-constant coefficients on a bounded domain?
In that you case you should simply use a pure FEM code. BEM is not suitable for it. If you have a problem on an unbounded domain in 2d you can relatively easy implement simple 2d BEM kernels which give you the desired exterior behavior. Alternatively, you can easily just approximate the outgoing boundary conditions in 2d using a FEM code by solving in a sufficiently large circle around your domain with zero boundary conditions on the exterior of the circle. This is often a good approximation.

Best wishes

Timo
Reply all
Reply to author
Forward
0 new messages