### What is the more "fenics-y" approach to this FSI problem?

147

views

0

I am solving a fluid structure interaction problem using ALE, in which a portion of the fluid domain boundary is a hyper-elastic solid (for example, consider a square mesh, where the bottom edge is the solid). I have attempted the two methods below (each of which have caused their own problems). Before I start troubleshooting, I would like to know which approach is more "fenics-y" and why?

1) Extract the BoundaryMesh of the Mesh, and then define a subdomain on the BoundaryMesh using a meshfunction (defined on the bmesh) to mark the desired Mesh facets. Then the FSI problem is solved using a partitioned approach: The solid equations are solved on a function space defined on the subdomain of the bmesh, and then mapped back to the function space of the 2D fluid mesh. I can't find a built-in mapping for this so I adapted the approach from the answer to this post (https://www.allanswered.com/post/wrogg/#gnrlj ). However, it seems like this mapping breaks down for finer meshes, since I am getting non-zero values on my function defined on the mesh (instead of only on the boundary. Perhaps there is a better way to map from bmesh subdomains back to the parent mesh?

2) Define the subdomain on the boundary of the 2D mesh, using a facet function, marking all other boundaries and the interior. Then integrate along the boundary and set the other boundaries and interior dofs == 0 with a DirchletBC. However, I keep getting the "integral of type cell, cannot contain a reference normal" error.

Thanks for your input!
Hi, this recent question https://www.allanswered.com/post/ggjla/coupled-pdes-on-domains-with-different-dimensions/ might have a couple of links (disclaimer: one of them is mine)

1) Extract the BoundaryMesh of the Mesh, and then define a subdomain on the BoundaryMesh using a meshfunction (defined on the bmesh) to mark the desired Mesh facets. Then the FSI problem is solved using a partitioned approach: The solid equations are solved on a function space defined on the subdomain of the bmesh, and then mapped back to the function space of the 2D fluid mesh. I can't find a built-in mapping for this so I adapted the approach from the answer to this post (https://www.allanswered.com/post/wrogg/#gnrlj ). However, it seems like this mapping breaks down for finer meshes, since I am getting non-zero values on my function defined on the mesh (instead of only on the boundary. Perhaps there is a better way to map from bmesh subdomains back to the parent mesh?

2) Define the subdomain on the boundary of the 2D mesh, using a facet function, marking all other boundaries and the interior. Then integrate along the boundary and set the other boundaries and interior dofs == 0 with a DirchletBC. However, I keep getting the "integral of type cell, cannot contain a reference normal" error.

Thanks for your input!

Community: FEniCS Project

written
3 months ago by
Francesco Ballarin

Please login to add an answer/comment or follow this question.