CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Fluid Structure interaction (

guus_kupers March 1, 2007 08:53

Hello all, For my graduatio
Hello all,

For my graduation thesis I 'm going to use a fluid structure interaction solver. So far I'm using icoStructFoam. First I want to validate this solver. To do this I have a 2D test case where water flows through a small channel in which a rigid cylinder is placed which in turn is connected to a deformable "flag". Therefore I would like to know whether some one else has run this or a similar case before as well.

Because the results I obtained differ quite a lot compared to a benchmark test executed by others. Thus did anyone else run this problem as well? And did you encounter some problems?

I'm not sure but can it be a problem that the fluid which is used is water which has a 1000 times higher density? And that because of this the communication between the fluid and the structure is not correct?

Thanks in advance!!


gschaider March 6, 2007 16:49

Hi Guus! Can it be possible
Hi Guus!

Can it be possible, that you ran into the "viscosity and pressure have to be divide by rho when using an incompressible solver"? Everone's been there at least once

But if it's not that there still might be a problem: If I remember it correctly (and we're refering to the same version of icoStructFoam - the one on the Wiki) the fluid pressure just gets transfered to the solid - without taking into account the density of the fluid.

Replacing the line


with something like


might give the correct results (the fluidRho you can hardcode or read from a dictionary).

Sorry for the mixup. But as it says on the Wiki: that thing should only be considered a demo.

guus_kupers March 14, 2007 09:46

I've tried this, but now my so
I've tried this, but now my solution blows up almost immediately after the movement of the mesh starts.

Do you have any idea why this happens??

guus_kupers March 19, 2007 08:41

It looks like my problem is st
It looks like my problem is stable now. However I would like to run either icoFsiFoam or icoStructFoam in parallel, has anyone tried this before?

Because I run into problems when the 2 seperate regions need to be coupled. Has anyone done this before or does anyone know how a multiple region problem can be run in parallel on 2 or more nodes??

This is the error message I get:

[0] --> FOAM FATAL ERROR : Sizes do not match
[0] From function
[0] Coupled Solver
[0] in file readCoupling.H at line 47.
FOAM parallel run exiting
[1] --> FOAM FATAL ERROR : Sizes do not match
[1] From function
[1] Coupled Solver
[1] in file readCoupling.H at line 47.
FOAM parallel run exiting

Thanks in advance!!

gschaider March 19, 2007 14:34

Another disclaimer I should pu
Another disclaimer I should put on the icoStructFoam-Wiki-page (in fact, I just did). It is not parallelized. It is possible, I think, to parallelize it, but at first you should think about decomposing the case: if both regions are decomposed in such a way that fluid-zone on processor 42 has EXACTLY the same fluid-solid interface as the solid-zone on processor 42, it should be relatively(!) easy to parallelize the solver. On the other hand, I don't think that decomposing the case in such a way is generally applicable.

BTW: How did you decompose your case for the parallel run? I was not aware that decompesPar supports multiple mesh regions.

guus_kupers March 20, 2007 04:24

I don't know either whether de
I don't know either whether decomposePar supports multiple mesh regions but I did it by hand. Thus I decomposed the seperate regions with a "dummy" case and after that I combined them again into one parallel case.

My case does not have a complicated mesh, so it would be possible to put the structure mesh completely inside one of the fluid meshes. In this way my meshes have the exact same interface. However it means that I don't have any mesh for my other processors. Is it possible to leave them empty in some way??


gschaider March 20, 2007 13:15

Hi Guus! Yes it would be po
Hi Guus!

Yes it would be possible (I think, I haven't tried, and I won't for reasons given below): You can decompose your fluid mesh. Put all stuff in processorX/constant/polyMesh into a processorX/region1/constant/polyMesh (or is it the other way round?). If you want to calculate the solid phase on only one processor put the mesh you have from constant/region2/polymesh into processor42/region2/constant/polyMesh and for all processors x!=42 create an "empty" (cell lists etc have length 0, but must be present) mesh in processorX/region2/constant/polymesh. Still I would be pleasantly surprised if that works.

Still the problem remains (as discussed elsewhere on this board) that if the solid phase is calculated on only one processor, you're bound to get very inefficient parallelization.


hjasak March 20, 2007 13:46

Hi Berhard, In fact, the de
Hi Berhard,

In fact, the decomposition is only a part of the problem. For proper you still need parallelism, you still need to make sure that the bits of interpolation get properly reduced to the right processors + you need to take into account the cases where the processor boundary goes right across the sluid-structure interface.

There's an easy way around the problem, but I'm toofussy to do it that way. What you do is to make a single mesh out of both fluid and structure domain and using fvMeshSubset make a separate fluid and structure domain out of it. (I did something similar for complex cases where you've got lots of bits of over-lapping and non-overlapping physics: a fuel cell). You then decompose the underlying mesh into parallel domains and use the global mesh for data mapping - this will parallelise naturally.

On the negative side, I don't feel like doing this right now. Maybe we can talk about it on the FSI session on the Workshop in Zagreb (if there's sufficient interest)...


gschaider March 21, 2007 08:39

Hi Hrv! My solution was ref
Hi Hrv!

My solution was refering to the very special topology Guus was refering to: only one processor has the complete fluid-struct interface. And for that case icoStructFoam MIGHT work (although more by accident than by design)

But that fvMeshSubset looks interesting. So there is always a collateral benefit with that kind of discussions

guus_kupers March 21, 2007 09:30

I've tried to do what you expl
I've tried to do what you explained. I emptied out all the existing mesh files and also I created an empty cells file for region2. However when icoStructFoam tries to create the "empty" mesh for region2, the solid region, I get the following error message:

--> FOAM FATAL ERROR : points deallocated

From function
const pointField& polyMesh::allPoints() const
in file meshes/polyMesh/polyMesh.C at line 642.
FOAM parallel run aborting

I think this has to do with the fact that the mesh is empty. Is there a way to avoid this or have I done something wrong??


hjasak March 21, 2007 09:32

Beware: the original version o
Beware: the original version of fvMeshSubset I wrote a while ago really annoyed me because of the class hierarchy it implies (I could not run off the subset)... so I've changed it. As an additional benefit, you get all the mapping done for free, but there are issues with multiple boundaries I am still thinking about.

Give me a shout if you want to take it for a spin.


rasoulgharaei June 17, 2011 11:53

my solver
1 Attachment(s)
Hi everyone,
I made new solver (interStructFoam) by combining the interFoam and solidDisplacementFaom According to the icoStructFoam Instruction, but I could not compile my solver in OP-1.7.0.
Can anyone help me?
I Attach my solver with this message.

rasoul gharaei

All times are GMT -4. The time now is 01:39.