- **OpenFOAM Running, Solving & CFD**
(*https://www.cfd-online.com/Forums/openfoam-solving/*)

- - **Fluid Structure Interaction using icoFsiFoam Problems**
(*https://www.cfd-online.com/Forums/openfoam-solving/58513-fluid-structure-interaction-using-icofsifoam-problems.html*)

Dear all,
Besides the 3D flDear all,
Besides the 3D flapping wing stuff I am also working on some fluid structure interaction problems. In order to test the icoFsiFoam solver which came with the latest development sources (from prof. Jasak, 28 March 2007), I created a test case of a flexible plate attached to a rigid cylinder. At low Reynolds numbers the plate will start oscillating according to the von karman vortex street. This is particular interesting when the density of the structure approaches the density value of the fluid and when the structure equals very low stiffness. Only then significant deformation can be observed, which is what we want. Unfortunately, at similar densities (structure / fluid) and low structural stiffness this problem is very strongly coupled. Together with the partitioned approach which is used by icoFsiFoam, this lead to serious divergence problems when: 1) The density ratio is of the order O(1), 2) The structural stiffness is low, 3) movingWallVelocity BC is chosen on the flexible plate. The divergence of the solution due to this BC is thought to be the result of the alternating correction of the ALE flux which is accounted for in movingWallVelocity BC. Detailed info on this problem can be found on my website: http://www.aero.lr.tudelft.nl/~frank...d/problems/fsi I really hope that someone may provide some usefull hints and / or solutions. Eventually, when anyone would like to try this testcase I could post it here or on my site. Thanks and regards, Frank |

Are there some guidelines whenAre there some guidelines when icoFsiFoam runs stable?
At various mechanical property settings the movingWallVelocity BC. blow the solution up very fast. Is someone running icoFsiFoam with this necessary boundary condition? Could anyone please comment on this. Regards, Frank |

Hi Frank...
Where did you Hi Frank...
Where did you download IcoFsiFoam from...? I am trying to build a multiphysics, moving mesh solver, and think that studying and hacking IcoFsiFoam might be a good start... Alex |

Dear Alex,
icoFsiFoam is noDear Alex,
icoFsiFoam is not available in the official build of openFoam. You have to obtain a development version, maintained by prof. Jasak, which you can download from: http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/release/ Rergards, Frank |

Hi everyone,
I have been usHi everyone,
I have been using icoFsiFoam for several weeks, but there are still several basic points I am not 100% sure: (1) only the pressure of the fluid is transfered to the solid but the shear stress is not. (2) as the solid domain is updated at every step, at each time step, the pressure transfered from fluid is loaded on the boundary of the current configuration of the solid doamin, not on the initial configuration. If I am wrong, please correct me! Thanks in advance! feng |

Hi Mathieu!
Yes. You're rigHi Mathieu!
Yes. You're right. The icoStructFoam requires that the meshes on the boundary zone of fluid and solid are exactly the same. Am not very proud of that, but it was the best I could do at the time Bernhard |

Hi Mathieu,
Thanks for yourHi Mathieu,
Thanks for your help! I really appreciate it. I have tried your code on my case, but I get totally different results, I think the problems may come from: vectorField solidPatchTraction = interpolatorFluidSolid.faceInterpolate ( (sigmaFluid.boundaryField()[fluidPatchID]) & n ); and I replace: (sigmaFluid.boundaryField()[fluidPatchID]) & n with ((-1)*sigmaFluid.boundaryField()[fluidPatchID]) & n then I get results which is close to ones without considering shear stress. So I think at the interface, the traction vector of the solid should be in the opposite direction to the traction vetor of the fluid. If I am wrong, please correct me! Kind regards feng |

Hi Feng,
You are right for Hi Feng,
You are right for the minus sign. However, it depends on the sign implemented in your traction boundary condition. Also, I replaced the code in the setPressure.H file with the following (which is expressed in terms of the surface normal vector of the structural part) and I get better results : ////////////////////////////////////////////// vectorField n = (stressMesh.Sf().boundaryField()[solidPatchID])/(stressMesh.magSf().boundaryFiel d()[solidPatchID]); symmTensorField solidPatchTraction = interpolatorFluidSolid.faceInterpolate ( (sigmaFluid.boundaryField()[fluidPatchID]) ); solidPatchTraction *= rhoFluid.value(); tForce.traction() = solidPatchTraction & n; ////////////////////////////////////////////// Keep me posted if you find some bugs or mismatches. I appreciate your comments. Mathieu |

Hi Mathieu,
Thanks for yourHi Mathieu,
Thanks for your kind help! Your codes are working fine with me. I ave hmade a test case which is to calculate the shear stress on a flat plate due to the laminar flow on it, the result looks reasonable, and I will compare it with the analytical solution for validation. On the other hand, I think I will find a way of how to merge the code of the structural solver using updated configuration in the paper you posted above with icoFsiFoam, so that icoFsiFoam can deal with large deformation for the structure. Kind regards feng |

Hi all,
I'm trying to impleHi all,
I'm trying to implement a strong coupling scheme within the icoFsiFoam-solver. To do that I'd like to use a Quasi-Newton approach, which means, that I'm approximating the product of the jacobian and a vector by a finite difference. And that's the only thing I need for an iterative solver like GMRES. Now my problem: as I'm calculating only on the interface variables, I don't know how to move the solid mesh. For the fluid it's no problem, because here the only thing that I need to move the mesh are the interface variables. But to move the solid mesh I need its internal field. Would it be a good idea to do one more solid solve with the interface positions as a fixed value-bc in order to get the solid internal field? If yes, how can I do that, that means, how can I change my boundary conditions from "tractionDisplacement" to "fixedValue" from within the solver? Can anyone help me? Kind regards, Christoph |

Hi Christoph,
I am not famiHi Christoph,
I am not familiar with the method you are using. Is it a monolithic coupling procedure or an iterative partitioned coupling procedure. Could you give more details so that I can see if I can help you. Regarding your idea to change the interface boundary condition from "tractionDisplacement" to "fixedValue", I don't think it's a good idea since it would not reproduce the physics. Can't you solve the solid field using the "tractionDisplacement" BC ? Regards, Mathieu |

Hi Mathieu,
thank you for yHi Mathieu,
thank you for your answer. I'm using an iterative partitioned coupling procedure as it is described in section 4.3 of ftp://ftp.inria.fr/INRIA/publication...RR/RR-4691.pdf Here I have 3 iteration levels. One time level, one "strong-coupling"-level and one GMRES-level. In every level I'm only calculating on interface values. And in every "strong-coupling"- and GMRES-level I need to compute one full FSI-cycle. Before I can do that I need to move the fluid and the solid meshin the desired position. If I want to move the solid mesh like in icoFsiFoam I need to know the internal field of the solid. But as I'm computing on interface values I don't know the internal field and this is my problem. Is this explanation helpful? Regards, Christoph |

Hi Christoph,
The structuraHi Christoph,
The structural solver in icoFsiFoam is a linear elasticity solver (small deformation only). The mesh motion of the "solid" mesh is a trick to take large deformation into account. The structural problem in the paper you sent is set in the initial reference frame. In this case, you don't need to move the "solid" mesh. So I guess you should modify the structural solver of icoFsiFoam to make it work in the initial reference frame with the appropriate constitutive law. I think that would make things easier for you. Mathieu |

Thanks a lot Mathieu,
but nowThanks a lot Mathieu,
but now I have some new questions, I hope you can help me: 1. Could the structural solver in icoFsiFoam be seen as some kind of Updated-Lagrange-Solver? 2. What would be the difference in the results if I just commented out the solid mesh motion in icoFsiFoam? 3. The structural solver contained in icoFsiFoam is using the 2nd Piola-Kirchhoff stress tensor (right?) and therefore isn't it already the right consitutive law? Or could you give me any hint how to change the structural solver? Kind regards, Christoph |

Hi Christoph,
1. I would saHi Christoph,
1. I would say yes but take a look to this paper for the right formulation of an Updated-Lagrange-Solver: http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/papers/TukovicJasak_NonLinElastodynam ics_FAMENA_18-06-2007.pdf 2. The solid geometry would be distorted for large deformation (but it is a good idea to try it...). 3. See the paper for the right constitutive law. I modify the structural solver in icoFsiFoam so that it can take large deformation into account. The solver "works" in the initial (not updated though) reference frame. Contact me by email and I will send you some stuff... looks like I can't write code in my messages anymore... Regards, Mathieu |

Hi Mathieu and all the others,Hi Mathieu and all the others,
some new problems... I'm trying to implement a strong coupling scheme based on a fixed point iteration and Aitken relaxation. I was surprised by the results and I located the error in the following problem: while(runTime.run()) { ....... runTime++; #include "solveFluid.H" #include "setPressure.H" #include "solveSolid.H" #include "solveFluid.H" #include "setPressure.H" #include "solveSolid.H" ........ } I expected to get the same pressure in both FSI-cycles, because the geometry and the mesh remains the same. But actually I get a different (higher) pressure in the second case. Why? And how can I fix it? I would be very happy if someone could help me! Regards, Christoph |

Hi Christoph,
Suggestion : Hi Christoph,
Suggestion : try with a large value of nCorrector in the PISO dictionary so that you can be sure the solution is converged at each call of the fluid solver. In fact (correct me if I'm wrong), the fluid solver in icoFsiFoam uses a SIMPLE loop but the PISO dictionary is used to provide the number of iteration via the nCorrector parameter. Good luck, Mathieu |

Thank you Mathieu, but that doThank you Mathieu, but that doesn't helphttp://www.cfd-online.com/OpenFOAM_D...lipart/sad.gif
When I use a coarse mesh, this effect is very small. But with a finer mesh I get a significant higher pressure at the interface and as a consequence wrong displacements. But I need to solve fluid and solid several times per timestep when I want to use a strong coupling scheme like fixed point iteration with Aitken relaxation. This is an essential part of my Master's thesis, which I have to hand in soon. So I'm running out of timehttp://www.cfd-online.com/OpenFOAM_D...lipart/sad.gif Could anyone help me or could you, Prof. Jasak, please give me a hint of what is going wrong? I would be so happy... HELP!!! Christoph |

Hi Christoph,
Is your setPrHi Christoph,
Is your setPressure.H file independent of the solid solution (the displacement) ? In the case of large deformation, it should. If it is your case, then it might be what causes the difference in the pressure force. But if you were talking about the pressure field itself, then I don't know what to say. I ran a similar case and both FSI cycles gave me the same results after I modified my setPressure.H file to make it independent of Usolid (no iteration occurred in the second cycle since the solution is already converged). Keep me posted and again, good luck ! Mathieu |

Hi,
I see that you are workHi,
I see that you are working quite a lot on this FSI features of OpenFOAM . We are interesting to simulate the fluid structure interaction between a flow and a flexible panel . Can these cases below be simulated with openFOAM ?: - FSI with a thin flexible panel (with and without large displacement) ? - FSI with a thin flexible porous panel (with and without large displacement) ?. Do these cases require a huge amount of implementation and development?. For example these cases can be more or less be solved with FLUENT/MpCCI/Abaqus , is it possible with OpenFOAM ? Thank for your help Pascal |

All times are GMT -4. The time now is 05:16. |