Best approach for coupling domains: acoustic + structure

Hello everyone,

I want to perform a vibroacoustic simulation. Below I describe the general setup, where an acoustic cavity \Omega_a interfaces a structural domain \Omega_s through one or multiple interfaces \partial \Omega_{int}.

The weak forms for such domains should be the following:

\text{Acoustic domain, time harmonic linear acoustics:}\\ \\ \int_{\Omega_a}\nabla p \cdot \nabla v d \Omega_a - \int_{\Omega_a}k_a^2p v d \Omega_a = \int_{\Omega_a} j\omega\rho_a q v d \Omega_a + \int_{\partial\Omega_{int}} \rho_a \omega^2 \left(\mathbf{u \cdot n_a}\right) v d\partial\Omega_{int}

\text{Structural domain, time harmonic linear elastodynamics:}\\ \\ \int_{\Omega_s} \sigma(\mathbf{u}) : \epsilon (\mathbf{w}) d\Omega_s - \int_{\Omega_s} \rho_s\omega^2 \mathbf{u\cdot w} d\Omega_s = \int_{\partial\Omega_{int}} -p\mathbf{n_s \cdot w} d\partial\Omega_{int}

*Note: I am using volumetric sources as acoustic input, so the structure is moving as a result of the fluid-structure interaction. There is no external force or load on the structure.

The equation are coupled through the Neumann BCs (-p\mathbf{n_s} is just the traction vector on the interface due to the acoustic pressure on it, while \frac{\partial p}{\partial n_a} = \rho_a \omega^2 u_n = \rho_a \omega^2 \mathbf{u \cdot n_a} is derived from the euler equation)

Usually this problem is solved with a monolithic approach, solving one algebraic system and getting both p and \mathbf{u} simultaneously.

The problem is that I need the interface to have non matching meshes, so I thought about solving it in with a partitioned approach, but I have not much experience in this.

I thought about something like this:

  1. Solve the acoustic domain for p with natural boundary condition (rigid walls) and get p
  2. Use p for the Neuman BC on the structure (after interpolating it in the structure’s FunctionSpace) and get \mathbf{u}
  3. Use \mathbf{u} for the Neuman BC on the acoustic domain (after interpolating it on the acoustic FunctionSpace) and get p
  4. Iterate 2 and 3 until convergence.

Is this approach correct?
Can you give me some advice on what could be the best approach if this one is not correct?

As always, thank you very much.

Can anyone give me a hint?

Your question forms a research problem. I would expect that you’re the pioneer here and doubt anyone would have a definitive advice. I would start by seeing what others have accomplished in a similar setting in the literature, e.g., Google Scholar.

Consider also GitHub - jorgensd/dolfinx_mpc: Extension for dolfinx to handle multi-point constraints. for coupling problems with nonmatching mesh boundaries.

Alright, thank you. I’ll start looking for material about this topic and I’ll take a look at the link you provided. I’ll keep you updated on developments and any results.