Immersed Boundary Method

Dear all preCICE users,
Is it feasible to write any adapter which can coupled fluid and solid throughout immersed boundary method?
For solid, currently CalculiX is ready to use. For fluid solver, we have to use fluid solver based on finite difference method probably. Considering this point, If I prepared a finite difference fluid solver, Is it feasible to couple CalculiX and a finite difference fluid solver?
Thank you for your kind attention,

Good morning,

in principle this is possible. I have half worked on an adapter for a lattice boltzmann code Palabos. This uses an immersed boundary method. The only thing necessary is that there is a set interface in the IB solver where displacements can be applied and surface forces can be calculated. This interface must not change when moving through the domain (i.e. add or delete vertices on the interface).

Using Palabos as an example, the interface is determined by reading in an STL file. This defines all of the vertices and faces of the interface that preCICE will use. Displacements from preCICE can be applied at the vertices of this mesh. Importantly, this mesh does not change when moving through a fixed background mesh. Palabos also has a function that can determine the force on the faces, depending on which cells in the mesh it cuts. This calculation is not possible in preCICE, so it is required that the solver must do it. It should be possible for any solver (finite difference, finite volume, finite element) that has an immersed boundary method that has the features mentioned above.

1 Like

Hello again,
I am highly thankful, my final goal would be immersed boundary for FSI application. In fact, I have an immersed boundary code which can be applied for immersed bodies with prescribed motion. What I want to do is develop the code that can be applied for elastic bodies with large deformation. The code is written with finite difference scheme. What I want to do is to couple the current immersed boundary code to CalculiX through preCICE.
I would be thankful if you have any suggestion,
Thank you for your kind attention,


creating the adapter would be the same as the process described in here, but you can also look at slide 6 in an explanation of the IB method in foam-extend here.

In slide 6, you will see how a solid body cuts across a background mesh. If we use this picture as an example, the mesh points you will define for preCICE (and then the mesh you apply displacement on and read forces off of), will be the white IB points in the firgure. Where those points are and what the forces are ( not how they are calculated), preCICE needs to know. preCICE cannot interpolate the forces on those points from the surrounding mesh, that the solver has to do. preCICE will also be able to send the displacements of the white IB points, how those displacements are used is up to the solver.

In the end, preCICE does not actually know if the solver is a regular body fitted mesh or an IB mesh. As your finite difference code can already handle prescribed motion, with some modification it could handle deformation. You would need to see if it can determine the forces on the surface of the IB mesh. If so, then it is possible to couple it with preCICE.

Iā€™m not familiar with but interested in IBM. It seems promising to handle large deformation in FSI. @KyleDavisSAā€™s posts are very helpful to understand how IBM can be used with preCICE. Can anyone help me clarify my understanding further?

  1. usual preCICE usage is that fluid solver sends force to and gets displacement from solid solver.

  2. for IBM, it seems to be the opposite. Fluid solver gets displacement from solid solver to calculate the force density, and then updates the velocity, finally sends displacement back to solid solver.

This is the case for all preCICE tutorials, yes.

There are various different variants. What you describe seems like a possible variant. For preCICE itself, such schemes should not be a problem, but you have to do the right things in the adapter.

In Immersed boundary method, for a rigid body, I can define a set of fixed points in Fluid for coupling as they do not change. But for a flexible structure, the points exchanging data with solid mesh are changing. How can I handle this problem? Any ideas?