Author: Antonio Baiano Svizzero
The study of computational acoustics is fundamental in fields such as noise, vibration, and harshness (NVH), noise control, and acoustic design. In this chapter, we focus on the theoretical foundations of the Helmholtz equation - valid for noise problems with harmonic time dependency - and its implementation in FEniCSx to compute the sound pressure for any acoustic system.
The acoustic Helmholtz equation in its general form reads
where
This equation is coupled with the following boundary conditions:
-
Dirichlet BC:
$$ \begin{align} p = \bar{p} \qquad \text{on } \partial\Omega_p, \end{align} $$
-
Neumann BC:
$$ \begin{align} \frac{\partial p}{\partial n} = - j \omega \rho_0 \bar{v}_n\qquad \text{on } \partial\Omega_v, \end{align} $$
-
Robin BC:
$$ \begin{align} \frac{\partial p}{\partial n} = - \frac{j \omega \rho_0 }{\bar{Z}} p \qquad \text{on } \partial\Omega_Z, \end{align} $$
where we prescribe, respectively, an acoustic pressure
Now we have to turn the equation in its weak formulation.
The first step is to multiplicate the equation by a test function
Here, the unknown function
In order to keep the order of derivatives as low as possible, we use integration by parts on the Laplacian term:
$$ \begin{align} \int_{\Omega}(\nabla^2 p) \bar v ~\mathrm{d}x = -\int_{\Omega} \nabla p \cdot \nabla \bar v ~\mathrm{d}x
- \int_{\partial \Omega} \frac{\partial p}{\partial n} \bar v ~\mathrm{d}s. \end{align} $$
Substituting in the original version and rearranging we get:
$$ \begin{align} \int_{\Omega} \nabla p \cdot \nabla \bar v ~\mathrm{d}x
- k^2 \int_{\Omega} p \bar v ~\mathrm{d} x = \int_{\Omega} j \omega \rho_0 q \bar v ~\mathrm{d}x
- \int_{\partial \Omega} \frac{\partial p}{\partial n} \bar v ~\mathrm{d}s. \end{align} $$
Since we are dealing with complex values, the inner product in the first equation is sesquilinear, meaning it is linear in one argument and conjugate-linear in the other, as explained in The Poisson problem with complex numbers.
The last term can be written using the Neumann and Robin BCs, that is:
$$ \begin{align} \int_{\partial \Omega} \frac{\partial p}{\partial n} \bar v ~\mathrm{d}s = -\int_{\partial \Omega_v} j \omega \rho_0 \bar v ~\mathrm{d}s
- \int_{\partial \Omega_Z} \frac{j \omega \rho_0 \bar{v}_n}{\bar{Z}} p \bar v ~\mathrm{d}s. \end{align} $$
Substituting, rearranging and taking out of integrals the terms with
$$ \begin{align} \int_{\Omega} \nabla p \cdot \nabla \bar v ~\mathrm{d}x
- \frac{j \omega }{\bar{Z}} \int_{\partial \Omega_Z} \rho_0 p \bar v ~\mathrm{d}s
- k^2 \int_{\Omega} p \bar v ~\mathrm{d}x = j \omega \int_{\Omega} \rho_0 q \bar v ~\mathrm{d}x -j \omega\int_{\partial \Omega_v} \rho_0 \bar{v}_n \bar v ~\mathrm{d}s \qquad \forall v \in \hat{V}. \end{align} $$
We define the sesquilinear form
$$ \begin{align} a(p,v) = \int_{\Omega} \nabla p \cdot \nabla \bar v ~\mathrm{d}x
- \frac{j \omega }{\bar{Z}} \int_{\partial \Omega_Z} \rho_0 p \bar v ~\mathrm{d}s,
- k^2 \int_{\Omega} p \bar v ~\mathrm{d}x \end{align} $$
and the linear form