This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Coupling two different fields at the interface of two domains

0 votes

I am trying to solver some simplified fluid-structure coupling, considering the displacement field $u$ in the (linearly elastic) solid domain $\Omega_s$, and the displacement potential $\varphi$ Euler equation in the fluid domain $\Omega_f$. These quatities are coupled at the interface $\Gamma$ of the two (non-overlapping) domains, accounting for the continuity of the normal displacement ($u\cdot n=\nabla\varphi\cdot n$) and normal stress ($\sigma(u)\cdot(n) = \rho_f \omega^2 \phi n$).

Basically, the eigenproblem writes as :
Find $u$ and $\varphi$ in the respective function spaces such as
$$ k_s(u, v) = \lambda (m_s(u, v) + c(\varphi, v) \,\forall v,$$
and
$$ m_f(\varphi, \psi) = c(\psi, u)\,\forall\psi$$

with

  • $m_s(u,v)=\int_{\Omega_s} \rho_s u\cdot v$ the solid mass operator
  • $k_s(u, v)=\int_{\Omega_s} \sigma(u):\varepsilon(v)$ the solid stiffness operator
  • $m_f(\varphi,\psi)=\int_{\Omega_f } \rho_f \nabla \varphi\cdot\nabla\psi$ the fluid mass operator
  • $c(\psi, u)=\int_\Gamma \rho_f \psi (u\cdot n)$ the coupling operator

I am struggling with this last operator as it involves two different fields on two different domains and meshes. By now I am wondering what would be the best approach to that problem ? I have been considering the Multimesh approach, without success...

asked Apr 27, 2017 by fabricios FEniCS Novice (120 points)
edited Apr 27, 2017 by fabricios

Hi, is the last equation correct, more concretely, shouldn't it be $u$ instead of $v$? Also, supposing that the problem is assembled how does one solve this constrained eigenvalue problem? Anyways, to assemble the system in FEniCS takes a bit of hacking - it is unfortunately not something you can do on UFL level but it is possible by putting the system together in terms of block matrices.

Indeed, it is the trial function u in the coupling operator (corrected)

This is known as an added-mass proble: the coupling acts as an inertial loading on the solid. For a given solid displacement, the normal displacement of the interface can be seen as a Dirichlet boundary condition for the fluid problem. Solving the latter provides the effort that the fluid applies to the solid on the interface.

I am able to deal with this problem using Freefem (see https://hal.archives-ouvertes.fr/hal-01361859 for details and some numerical results), but I wanted to check those results and learn some fenics by the way.

Freefem is not puzzled by bilinear forms mixing fields from differents finite element space (implicit interpolation is performed under the hood), but I did not succeed to assemble the system using Fenics...

Thanks for sharing the reference. As I said, implementing the problem in FEniCS requires more or less manual assembly of the coupling terms. This might serve as a decent starting point.

Thank you for sharing the assembly script.
As a matter of fact, I do not need to perform the assembly, as, in the added-mass problem, the fluid potential is eliminated (by a Schur complement procedure). See Eq. (11) in page 5 of the paper.
The resulting matrix would be dense (on the interface dofs), and is thus not assembled. The eigenproblem is solved using the functional interface of arpack, i.e., looking for the generalized eigen solutions of two linear operators. The stiffness operator is trivial, but the mass operator is as follows :

def mass_operator(vector u):
  phi = solve(Mf, dot(C, u))
  added_load = dot(C.T, phi)
  return dot(Ms, u) + added_load

Dear MiroK,
as far as I understand it, your answer only gives clues for an eventual assembly step (that I do not care about as explained in the previous comment).
At the moment, I am still puzzled about waht would be the correct approach to compute the coupling operator $c$ that applies on two fields defined on different meshes which are supposed to be adjacent (non overlapping fluid and solid domains).
Is it necessary to define the two fields on a common domain that would span the solid and fluid regions ?
It seems to be overkill in terms of number of dofs, and would require a proper elimination of the unneeded dofs for the fluid variable in order for the added mass operator to be correctly defined. In the previous comment, we are to solve
$$M_f \cdot \varphi = C\cdot u$$
for a given $u$ which is usually possible as $M_f$ is invertible (as long as a DirichletBC applies on some part of the fluid boundary)...

...