FSI with OpenFOAM and in-house solver

Hi all,
I’m currently trying to couple multiphase solver in OpenFOAM (for the fluid domain) and an in-house code (for the solid domain) to do wave-structure interaction. The main requirement in my simulation is the exchange of the plastic deformation (displacement) and wave impact (pressure) on the interface. After watching several videos and reading threads about preCICE, I think preCICE is quite suitable for my problem but there are still several things I want to confirm:

  1. As stated in one thread, by employing ALE method, “the interface is fixed in the beginning of the simulation (location and number of nodes), but each node gets a displacement that is then used in the calculations”.
    Does that mean the values of displacement and pressure exchanged on the interface are obtained from the updated mesh cells? I’m kind of confused as in this video, the slides mention that preCICE maps in reference domain.

  2. As the OpenFOAM adapter has already been developed, I think the main work is to write an adapter for the in-house code. Is there any information for beginners about how to write an adapter? And when using the OpenFOAM adapter, are there any matters needing attention while adopting different slovers in OpenFOAM?

Thanks in advance!

Hi @Stan,

I guess you have already seen this thread from our FAQs. Let me try to explain it a little bit more in detail: In case you use an ALE approach, your solid domain and the respective part in the fluid moves during the simulation. However, the relative positions of the nodes at the interface are the same during the whole simulation so that the mapping problem is from a preCICE perspective the same as well. To answer your question: yes, preCICE maps the values in ‘reference configuration’, i.e. the initial mesh configuration, but that’s exactly what you want in case of an ALE approach. Of course, the exchanged values (at least in case of OpenFOAM) correspond from a solver perspective to the deformed configuration.

Yes, there is information. We have a dedicated section for this topic on our website. Similarly, we have collected all relevant information regarding OpenFOAM in the OpenFOAM adapter section on the website. IIRC there are also some threads about multi-phase flows with OpenFOAM in the forum.


Hi David,
Thanks for your detailed explanation!

Now I confirm that the ‘static’ here refers to the unchanged relative positions of the nodes at the interface. On the contrary, the ‘dynamic’ means the number of nodes and their relative positions change in the simulation (e.g. the adaptive mesh). I used to think that the ‘dynamic’ refers to the mesh movement around the interface and now it seems to be wrong.

Another misunderstanding I made is about ‘preCICE maps in reference domain’. After reading your explanation, I realize that this sentence means the mapping relation between fluid mesh and solid mesh is set based on the initial mesh configuration, instead of exchanging information between two initial meshes when the meshes deform. As the mapping relation has been set from the beginning, even though the meshes at the interface are deformed during the simulation, the information exchange is still based on the correspondence between cells or nodes of two domain.

If there are any errors, please point it out. :grin:


Hi @Stan


Yes. In fact, preCICE doesn’t really care about reference frames (Lagrangian or Eulerian) and it is the responsibility of the adapter developer to ensure consistency between all participants of a coupled simulation. As I said, this doesn’t affect the mapping problem itself.


1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.