# [FSI] flexible pipe simulation (boundary condition)

 Register Blogs Members List Search Today's Posts Mark Forums Read

September 25, 2013, 15:26
[FSI] flexible pipe simulation (boundary condition)
#1
Senior Member

Daniel
Join Date: Mar 2013
Posts: 219
Rep Power: 14
Hello guys

I am working on simulation of flexible pipe using icoFsiElasticNonLinULSolidFoam solver.

I have some questions about boundary conditions in this simulation, any help would be appreciated.

1) I want the pipe to be deformed under the load of the flow (Not a prescribed oscillation), what kind of boundary condition should I use for the FSI interface:

this my current selection:

fluid/0/U: fixedValue with uniform (0 0 0)
solid/0/DU: zeroTraction

the main question is about boundary condition of FSI interface in 0/U, should I use movingWallVelocity instead?

2) what kind of boundary condition do you use for the boundary patch which is shown in the attachment and its counterpart on the other side?

regards
Attached Images
 Capture.jpg (65.4 KB, 55 views)

 September 29, 2013, 16:17 #2 Senior Member   Daniel Join Date: Mar 2013 Posts: 219 Rep Power: 14 any help?

 March 16, 2015, 03:00 #3 Senior Member   Join Date: Jan 2015 Posts: 145 Rep Power: 5 The same question

 April 28, 2015, 05:47 icoFsiElasticNonLinULSolidFoam BCs #4 New Member   Join Date: Jan 2013 Posts: 7 Rep Power: 7 i have basically the same setup. Pipe with elastic walls which should deform according to the interaction with the fluid. I used boundary conditions from HronTurek tutorial. But the BC in solid/0/DU for the outer wall of the pipe is causing problems. When i use solidTraction BC for both the FSI interface (inner wall) and outer wall, it would give me: Code: ```--> FOAM Warning : From function eigenValues(const tensor&) in file primitives/Tensor/tensor/tensor.C at line 170``` When i use solidTraction BC for the FSI interface only, it is runnning but not physical, since the outer wall remains fixed. solid/0/DU Code: ``` wall_inside // FSI_interface { type solidTraction; nonLinear updatedLagrangian; traction uniform ( 0 0 0 ); pressure uniform 0; value uniform (0 0 0); } wall_outside // outer wall of the pipe { type fixedValue; value uniform (0 0 0); }``` Any ideas how to set the BC for the outer wall of the pipe?

April 28, 2015, 06:18
#5
Senior Member

Daniel
Join Date: Mar 2013
Posts: 219
Rep Power: 14
Quote:
 Originally Posted by fa123 i have basically the same setup. Pipe with elastic walls which should deform according to the interaction with the fluid. I used boundary conditions from HronTurek tutorial. But the BC in solid/0/DU for the outer wall of the pipe is causing problems. When i use solidTraction BC for both the FSI interface (inner wall) and outer wall, it would give me: Code: ```--> FOAM Warning : From function eigenValues(const tensor&) in file primitives/Tensor/tensor/tensor.C at line 170``` When i use solidTraction BC for the FSI interface only, it is runnning but not physical, since the outer wall remains fixed. solid/0/DU Code: ``` wall_inside // FSI_interface { type solidTraction; nonLinear updatedLagrangian; traction uniform ( 0 0 0 ); pressure uniform 0; value uniform (0 0 0); } wall_outside // outer wall of the pipe { type fixedValue; value uniform (0 0 0); }``` Any ideas how to set the BC for the outer wall of the pipe?
Use the same boundary condition for both inner and outer walls. (solidTraction)

April 28, 2015, 07:44
#6
New Member

Join Date: Jan 2013
Posts: 7
Rep Power: 7
Quote:
 Originally Posted by Daniel_Khazaei Use the same boundary condition for both inner and outer walls. (solidTraction)

But then i get the error as described above:

Code:
```--> FOAM Warning :
From function eigenValues(const tensor&)
in file primitives/Tensor/tensor/tensor.C at line 170```

April 28, 2015, 07:54
#7
Senior Member

Daniel
Join Date: Mar 2013
Posts: 219
Rep Power: 14
Quote:
 Originally Posted by fa123 But then i get the error as described above: Code: ```--> FOAM Warning : From function eigenValues(const tensor&) in file primitives/Tensor/tensor/tensor.C at line 170```
Then I guess something else is wrong with your case.

If you are using OpenFOAM extend-3.1 and the new fluid-structure interaction solver which is included in extend-bazaar, you can see a 3dTube FSI test case there!

April 29, 2015, 08:30
#8
New Member

Join Date: Jan 2013
Posts: 7
Rep Power: 7
Thanks for the hint.
Unfortunately, there are some problems with compilation of the FSI package from extend-bazaar. I am using foam-extend-3.1.

Typing wmake libso fluidStructureInteraction gives:

Code:
```...
stressModels/constitutiveModel/constitutiveModel.C: In constructor 'Foam::constitutiveModel::constitutiveModel(const volSymmTensorField&, const volVectorField&)':
stressModels/constitutiveModel/constitutiveModel.C:116:13: error: no matching function for call to 'Foam::IOReferencer<Foam::solidInterface>::IOReferencer(Foam::IOobject, Foam::solidInterface&)'
stressModels/constitutiveModel/constitutiveModel.C:116:13: note: candidates are:
In file included from /home/user/foam/foam-extend-3.1/src/foam/lnInclude/IOReferencer.H:139:0,
from stressModels/constitutiveModel/constitutiveModel.H:53,
from stressModels/constitutiveModel/constitutiveModel.C:27:
/home/user/foam/foam-extend-3.1/src/foam/lnInclude/IOReferencer.C:53:1: note: Foam::IOReferencer<Type>::IOReferencer(const Foam::IOobject&, Type*) [with Type = Foam::solidInterface; Foam::IOobject = Foam::IOobject]
/home/user/foam/foam-extend-3.1/src/foam/lnInclude/IOReferencer.C:53:1: note:   no known conversion for argument 2 from 'Foam::solidInterface' to 'Foam::solidInterface*'
/home/user/foam/foam-extend-3.1/src/foam/lnInclude/IOReferencer.C:31:1: note: Foam::IOReferencer<Type>::IOReferencer(const Foam::IOobject&) [with Type = Foam::solidInterface; Foam::IOobject = Foam::IOobject]
/home/user/foam/foam-extend-3.1/src/foam/lnInclude/IOReferencer.C:31:1: note:   candidate expects 1 argument, 2 provided
In file included from stressModels/constitutiveModel/constitutiveModel.H:53:0,
from stressModels/constitutiveModel/constitutiveModel.C:27:
/home/user/foam/foam-extend-3.1/src/foam/lnInclude/IOReferencer.H:85:7: note: Foam::IOReferencer<Foam::solidInterface>::IOReferencer(const Foam::IOReferencer<Foam::solidInterface>&)
/home/user/foam/foam-extend-3.1/src/foam/lnInclude/IOReferencer.H:85:7: note:   candidate expects 1 argument, 2 provided
make: *** [Make/linux64GccDPOpt/constitutiveModel.o] Error 1
make: *** Waiting for unfinished jobs...```
Anyone else facing this problem?

Edit:
Work-around is to use the constitutiveModel.* files from the actual foam-extend installation.
Attached Files
 IOReferencer.C (3.4 KB, 4 views) IOReferencer.H (3.9 KB, 3 views) constitutiveModel.C (14.6 KB, 3 views) constitutiveModel.H (7.4 KB, 4 views)

Last edited by fa123; April 30, 2015 at 06:56.

 April 30, 2015, 16:30 #9 Senior Member   Daniel Join Date: Mar 2013 Posts: 219 Rep Power: 14 yes, you need to revert back to the older version of IOReferencer!

September 5, 2015, 19:03
#10
Super Moderator

Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,123
Blog Entries: 39
Rep Power: 110
For future reference:
Quote:
 Originally Posted by wyldckat Greetings to all! Instructions for properly building the Fluid-Structure Interaction toolkit with foam-extend 3.1 is now available here: http://openfoamwiki.net/index.php/Ex...oam-extend_3.1 I've also git'ified the source code: https://github.com/wyldckat/FluidStructureInteraction Best regards, Bruno

 September 8, 2015, 11:37 #11 Senior Member   Join Date: Jan 2015 Posts: 145 Rep Power: 5 Could anyone post a working example with an elastic FSI pipe ?? Please..

 January 26, 2016, 02:51 #12 Senior Member   Join Date: Jan 2015 Posts: 145 Rep Power: 5 Can anyone post a working example with an elastic FSI pipe ?

January 26, 2016, 18:39
#13
Senior Member

Daniel
Join Date: Mar 2013
Posts: 219
Rep Power: 14
Quote:
 Originally Posted by Svensen Can anyone post a working example with an elastic FSI pipe ?
OpenFOAM-3.1ext and later come with FSI library including 3 tutorials!
One of them is exactly what you need mate...

 January 27, 2016, 02:15 #14 Senior Member   Join Date: Jan 2015 Posts: 145 Rep Power: 5 Not so easy ) Yes, you are right, there are some working tutorials in foam-extend-3.1, but the problem is when you change some parameters, like density or geometry, the solution explodes. For short, these examples are "working" if you change nothing, if you make some adjustments then they crash. The example of this thing is here: http://www.cfd-online.com/Forums/ope...onditions.html Your first post in this topic was about simulation of an elastic pipe using OpenFOAM. Do you get a working example of it ?

January 27, 2016, 06:50
#15
Senior Member

Daniel
Join Date: Mar 2013
Posts: 219
Rep Power: 14
Quote:
 Originally Posted by Svensen Not so easy ) Yes, you are right, there are some working tutorials in foam-extend-3.1, but the problem is when you change some parameters, like density or geometry, the solution explodes. For short, these examples are "working" if you change nothing, if you make some adjustments then they crash. The example of this thing is here: http://www.cfd-online.com/Forums/ope...onditions.html Your first post in this topic was about simulation of an elastic pipe using OpenFOAM. Do you get a working example of it ?
Yes, the problem was due to the wrong selection of boundary conditions!

regarding the instability:
That is completely normal with FSI simulation when the coupling is strong between fluid and solid. When you change the material properties and make the coupling stronger, you need to tweak the case setting to get a stable simulation!

You can try:
- Lowering the starting relaxation factor on the interface
- Tightening the coupling by reducing the FSI interface residual
- reducing convergence criterion for pressure, velocity,....

January 29, 2016, 16:56
#16
Senior Member

Join Date: Jan 2015
Posts: 145
Rep Power: 5
Quote:
 Originally Posted by Daniel_Khazaei Yes, the problem was due to the wrong selection of boundary conditions!
can you post a correct boundary condition parameters. I have a back-reflection from my outlet boundary...

 May 5, 2016, 07:08 #17 New Member   Join Date: Mar 2014 Posts: 9 Rep Power: 5 I'm having very similar problems ... much help is apparently not being offered on these issues, so I'm just posting this to hopefully add information so somebody might figure it out at some point. What I find striking is that divergence occurs even when nothing is happening at all, when everything should just be at rest. I want to simulate the interaction between a fluid and an elastic structure when the fluid is set in motion by a submerged deforming body. My simulation is just fine when I have only the fluid and use an adapted pimpleDyMFoam solver. For some reason it doesn't work in the fsi setting even when no coupling is present between fluid and solid (e.g. by commenting out the corresponding bits from the fsiFoam solver or by adjusting th fsiProperties dictionary). The solution diverges even when I set the motion of my body to zero, so nothing should move. Spurious and growing fluid velocities nevertheless occur at walls with the "movingWallVelocity" boundary condition, an effect I have not observed when simulating the fluid only. The cause of this appears to be in the fsi.moveFluidMesh() step, although I haven't yet figured out where. I furthermore don't understand why it happens for my geometry but not for example for the "3dTube" case ... the only difference I can see is in the geometry, not the BC etc..

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post HMR CFX 5 October 10, 2016 05:57 hinca CFX 15 January 26, 2014 18:11 CGramlich SU2 3 April 22, 2013 08:25 Lacerlacer CFX 11 March 12, 2012 10:32 Destry FLUENT 0 July 27, 2010 00:55

All times are GMT -4. The time now is 22:18.