Table of Contents
Fetching ...

NumCalc: An open source BEM code for solving acoustic scattering problems

Wolfgang Kreuzer, Katharina Pollack, Fabian Brinkmann, Piotr Majdak

Abstract

The calculation of the acoustic field in or around objects is an important task in acoustic engineering. To numerically solve this task, the boundary element method (BEM) is a commonly used method especially for infinite domains. The open source tool Mesh2HRTF and its BEM core NumCalc provide users with a collection of free software for acoustic simulations without the need of having an in-depth knowledge into numerical methods. However, we feel that users should have a basic understanding with respect to the methods behind the software they are using. We are convinced that this basic understanding helps in avoiding common mistakes and also helps to understand the requirements to use the software. To provide this background is the first motivation for this paper. A second motivation for this paper is to demonstrate the accuracy of NumCalc when solving benchmark problems. Thus, users can get an idea about the accuracy they can expect when using NumCalc as well as the memory and CPU requirements of NumCalc. A third motivation for this paper is to give users detailed information about some parts of the actual implementation that are usually not mentioned in literature, e.g., the specific version of the fast multipole method and its clustering process or how to use frequency-dependent admittance boundary conditions.

NumCalc: An open source BEM code for solving acoustic scattering problems

Abstract

The calculation of the acoustic field in or around objects is an important task in acoustic engineering. To numerically solve this task, the boundary element method (BEM) is a commonly used method especially for infinite domains. The open source tool Mesh2HRTF and its BEM core NumCalc provide users with a collection of free software for acoustic simulations without the need of having an in-depth knowledge into numerical methods. However, we feel that users should have a basic understanding with respect to the methods behind the software they are using. We are convinced that this basic understanding helps in avoiding common mistakes and also helps to understand the requirements to use the software. To provide this background is the first motivation for this paper. A second motivation for this paper is to demonstrate the accuracy of NumCalc when solving benchmark problems. Thus, users can get an idea about the accuracy they can expect when using NumCalc as well as the memory and CPU requirements of NumCalc. A third motivation for this paper is to give users detailed information about some parts of the actual implementation that are usually not mentioned in literature, e.g., the specific version of the fast multipole method and its clustering process or how to use frequency-dependent admittance boundary conditions.
Paper Structure (47 sections, 43 equations, 20 figures, 6 tables)

This paper contains 47 sections, 43 equations, 20 figures, 6 tables.

Figures (20)

  • Figure 1: Scheme of an exterior problem with scatterer $\Omega$ with boundary $\Gamma = \Gamma_D \cup \Gamma_N \cup \Gamma_R$, a point-source at ${\bf x}_{\text{inc}}$, interior point ${\bf x}_i$, exterior point ${\bf x}_o$ and a node on the boundary ${\bf x}_{\Gamma}$.
  • Figure 2: Example of two levels of element subdivisions in the quasi-singular quadrature and a quadrilateral element. The dashed (red) lines indicate that the distance between the two nodes is too small compared to the average edge length. In this case, the element needs to be divided. The dashed-dotted (green) line indicates that the distance is sufficiently large such that no further division is necessary.
  • Figure 3: Scheme of a FMM interaction between two clusters. The interactions (gray lines) between elements (black dots) located in two distant clusters (shaded areas) are reduced to fewer within and between cluster interactions (black lines).
  • Figure 4: Example of a cluster (blue) and the bounding (sub)box (grey) around it.
  • Figure 5: Block structure of the FMM matrices in the SLFMM. Each matrix block ${\bf S}_i$ has size $N\times N_C$, where $N$ is the number of elements and $N_C$ is the number of clusters. Each block ${\bf D}_i$ has size $N_C\times N_C$ and each block ${\bf T}_i$ has size $N_C \times N$.
  • ...and 15 more figures