I am currently working for my masters thesis trying to use step-46 in the deal.ii tutorials to develop an FSI code. I am actually working on the Turek Benchmark (The Flag).
I encountered a series of difficulties with respect to the application of boundary conditions. My code is a monolithic one, as in step 46 I am using FENothing to use different sets of finite elements in the solid and in the fluid.
On the fluid the variables are (vf(dim),uf(dim),pf) with finite elements (Q2,Q1,Q1), on the solid the variables are (vs(dim),us(dim)) with finite elements(Q2 or Q1,Q1).
The boundary conditions at the interface should be vf = vs and uf = us & solid_stress * solid_normal_vector = fluid_stress * fluid_normal_vector. This clearly wont work since to impose vf = vs would mean that at the interface the degrees of freedom on vf would be zeroed out thus causing the term "fluid_stress * fluid_normal_vector" to be zero.
Another problem is that vf = vs does not allow for any transmission of information from the fluid towards the solid. Since the inital conditions of the problem assume only a parabolic inflow for the fluid, if the movement of the fluid does not get transmitted to the solid then this cannot start moving as it is supposed to.
I have tried a lot of different approaches, one of them was to impose the conditions vf = vs & uf = us weakly via terms like (vf - vs, phi_vs)_interface (vf - vs, phi_vf)_interface and
(uf - us, phi_uf)_interface, but none of them works.
I looked up for literature on this benchmark but everybody seems to overcome the problem of transmitting information (via the velocity) from fluid to solid by defining a global variable for the velocity that automatically satisfies the condition vf = vs at the interface.
I would really much appreciate if someone has any Ideas about how to solve my issue, I've been working on this boundary conditions problem for quite a while now and I need to get results.
Thank you very much for the attention.