NiHu
2.0
|
This application implements the BEM matrix assembly for 3D Helmholtz problems. The main features of the application are the following:
The assembled surface and field BEM matrices are utilized for solving the BEM system of equations and computing the scattered field at the field points.
Note: this application does not implement any techniques for mitigating fictitious eigenfrequencies.
The application can be called from Matlab as
[Ls, Ms, Lf, Mf] = helmholtz_3d_coll_bem(s_nodes, s_elems, f_nodes, f_elems, k);
Input parameters:
s_nodes
– Real matrix of type \( N \times 3 \) containing surface node locations ( \( N \) denoting the number of surface nodes)s_elems
– Real matrix of type \( E \times 9 \) containing surface element connectivity ( \( E \) denoting the number of elements on the surface). The first column contains the type identifier of each element.f_nodes
– Real matrix of type \( M \times 3 \) containing Field mesh node locations, similar to s_nodes
f_elems
– Real matrix of type \( F \times 9 \) containing field mesh element connectivity, similar to s_elems
k
– Real scalar wave numberOutput:
Ls
– Single layer potential surface matrix ( \( E \times E \) full complex valued matrix)Ms
– Double layer potential surface matrix ( \( E \times E \) full complex valued matrix)Lf
– Single layer potential field matrix ( \( F \times F \) full complex valued matrix)Mf
– Double layer potential field matrix ( \( F \times F \) full complex valued matrix)For solving the Neumann problem on the surface one can use
ps = Ms \ (Ls * qs);
Similarly, the Dirichlet problem is solved as
qs = Ls \ (Ms * ps);
with ps
and qs
denoting the \( E \times 1 \) complex valued column vectors containing the field and its normal derivative in the surface collocation points, respectively.
Finally, using the vectors ps
and qs
the scattered field at the collocation points of the field mesh is found as
pf = Mf * ps - Lf * qs;
The complex valued, \( F \times 1 \) type vector contains the scattered field at the collocation points of the field mesh.