Dear deal.II community
I have attempted to implement a Galerkin BEM method by adapting the
collocation method in Step-34
<https://dealii.org/current/doxygen/deal.II/step_34.html>. This first
implementation is quite crude. I compute the singular integrals over
identical elements i.e.
int_T1 psi(x) int_T1 phi(y) G(x,y) dy dx
by wrapping the existing QGaussOneOverR
<https://dealii.org/current/doxygen/deal.II/classQGaussOneOverR.html> in an
outer loop over a QGauss
<https://dealii.org/current/doxygen/deal.II/classQGauss.html> quadrature.
In all other cases I use a tensor QGauss quadrature. Although slow, the
method does converges. However, I do not observe higher-order convergence
when increasing the order of the basis functions. I assume this is due to
the poor handling of the singular and near singular integrals.
I now want to improve this method focusing on the 3D problem with
quadrilateral elements. The plan is to use one quadrature for the double
integral itself through a series of coordinate transforms as proposed in
[2, Sec 5.2]. Note that this is also the approach taken in BEM++ [1]. This
method provides four different integration schemes (x_i,y_i,w_i),
corresponding to the different cases
- T1 and T2 are identical.
- T1 and T2 share an edge, i.e. T1(s,0) = T2(s,0).
- T1 and T2 share a vertex, i.e. T1(0,0) = T2(0,0).
- T1 and T2 do not overlap.
In each case, the quadrature can be evaluated as
sum_i w_i tilde(psi)(x_i) tilde(phi)(y_i) tilde(G)(x_i,y_i).
While reading the documentation, I came across FECouplingValues
<https://dealii.org/current/doxygen/deal.II/classFECouplingValues.html>,
which seems intended to support this type of element pair integration.
However, I am struggling to understand how to practically handle the
different geometric cases (identity, shared edge, shared vertex) and the
required rotations within this framework.
Concretely, I would appreciate pointers on the following:
1. Is FECouplingValues the right tool for implementing these four
quadrature cases for Galerkin BEM?
2. If so, is the intended workflow to explicitly construct paired
(x_i,sqrt(w_i)) and (y_i,sqrt(w_i)) for each case (and possibly for each
rotation), and then instantiate FECouplingValues separately for each
configuration? This seems rather heavy, and I am wondering if there is a
cleaner approach.
3. Do you know of any examples or code fragments in deal.II (or user
projects) that implement Galerkin BEM?
References:
[1] BEM++ Documentation, http://www.bempp.org/quadrature.html
[2] Sauter and Schwab, Boundary Element Methods, 2011
Best regards,
Jakob
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/dealii/a96009fc-7f70-4cba-adc6-dfbfe7168593n%40googlegroups.com.