CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions > OpenFOAM CC Toolkits for Fluid-Structure Interaction

[solids4Foam] FSI case does not converge, foam extend 4.0

Register Blogs Community New Posts Updated Threads Search

Like Tree4Likes
  • 1 Post By ilhado
  • 1 Post By MFWilliams
  • 1 Post By MFWilliams
  • 1 Post By ilhado

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 22, 2022, 10:06
Default FSI case does not converge, foam extend 4.0
  #1
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Hello,

I am really struggling to get an FSI simulation to work and I would really appreciate the help of one of you much more experienced foamers with this FSI simulation that breaks within the first FSI loop.

The red mesh in the images is the solid domain representing a brain aneurysm where the blood flows into the largest of the three openings and out of the other two.

I started with the 3dTube tutorial from solids4Foam but have used cfMesh to create the cartesian mesh for my fluid geometry and then extrudeMesh to create the solid domain mesh. The mesh logs for both the solid and fluid domain are linked below.

Fluid checkMesh log
Solid checkMesh log

The discretisation and solution schemes for both solid and fluid are linked below.
Fluid:
fvSchemes
fvSolution
Solid:
fvSchemes
fvSolution

I am using an adjustable time step with a maximum of 1e-05 and using unsLinearGeometry for the solid domain and have not changed the solidProperties dictionary from the 3dTube tutorial case.

The fsiProperties that I am using are linked below but again I have not changed them from the tutorial case.
fsiProperties

When I try run it in parallel I get the output below:
Code:
Selecting fluidModel icoFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: velocityLaplacian
Selecting motion diffusion: quadratic
Selecting motion diffusion: inverseDistance
g field not found in constant directory: initialising to zero
Selecting solidModel unsLinearGeometry
Selecting dynamicFvMesh staticFvMesh
Creating fixedDisplacement boundary condition
Creating solidTraction boundary condition
    limiter coefficient: 1
Creating solidTraction boundary condition
    limiter coefficient: 1
    under-relaxation method: fixed
Creating the mechanicalModel
Selecting mechanical law linearElastic
additionalMeshCorrection: false
Selecting interfaceToInterfaceMapping GGI
Courant Number mean: 0 max: 0 velocity magnitude: 0
deltaT = 1.1999e-06
Time = 1.1999e-06

Setting traction on solid interfaces
Interpolating face values using GGI
Create GGI zone-to-zone interpolator
interface-to-interface face error: 4.46899e-16
calcMasterPointAddressing() const
Extended GGI, master point distance, max: 0, avg: 0, min: 0
interface-to-interface point error: 4.47384e-16
Number of uncovered master faces: 0
Number of uncovered slave faces: 0

Total force on fluid interface 0: (0 0 0)
Total force on solid interface 0: (0 0 0)

Evolving solid solver
Solving the momentum equation for D
setCellDisplacements: reading cellDisplacements
[0] setCellDisplacements: proc 0 has 0 cells with setDisplacements
[3] setCellDisplacements: proc 3 has 0 cells with setDisplacements
[1] setCellDisplacements: proc 1 has 0 cells with setDisplacements
[2] setCellDisplacements: proc 2 has 0 cells with setDisplacements
    Corr, res, relRes, matRes, iters
    Both residuals have converged
    2, 0, 0, 0, 0

Interpolating point values using GGI
Interpolating point values using GGI
FSI relative residual1 norm for interface 0: 0
FSI residual2 norm for interface 0: 0

Time = 1.1999e-06, iteration: 1
Modes before clean-up (fluidInterface): 0, modes after clean-up (fluidInterface): 0
Current fsi under-relaxation factor (fluidInterface): 0.05
Maximal accumulated displacement of interface 0: 0
GAMG:  Solving for cellMotionUx, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG:  Solving for cellMotionUy, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG:  Solving for cellMotionUz, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG:  Solving for cellMotionUx, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG:  Solving for cellMotionUy, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG:  Solving for cellMotionUz, Initial residual = 0, Final residual = 0, No Iterations 1
Evolving fluid model: icoFluid
Courant Number mean: 0 max: 0 velocity magnitude: 0

PISO: Operating solver in PISO mode

BiCGStab:  Solving for Ux, Initial residual = 1, Final residual = 4.3012e-13, No Iterations 1
BiCGStab:  Solving for Uy, Initial residual = 1, Final residual = 4.30114e-13, No Iterations 1
BiCGStab:  Solving for Uz, Initial residual = 1, Final residual = 4.33649e-13, No Iterations 1
GAMG:  Solving for p, Initial residual = 1, Final residual = 4.80246e-07, No Iterations 18
GAMG:  Solving for p, Initial residual = 0.0285953, Final residual = 4.31077e-07, No Iterations 9
GAMG:  Solving for p, Initial residual = 0.00122424, Final residual = 6.86637e-07, No Iterations 6
time step continuity errors : sum local = 9.64223e-10, global = -8.15061e-11, cumulative = -8.15061e-11
GAMG:  Solving for p, Initial residual = 0.000119358, Final residual = 4.93139e-07, No Iterations 5
GAMG:  Solving for p, Initial residual = 2.64897e-05, Final residual = 2.33807e-07, No Iterations 3
GAMG:  Solving for p, Initial residual = 3.23077e-06, Final residual = 4.64423e-08, No Iterations 3
time step continuity errors : sum local = 6.5289e-11, global = -1.60585e-12, cumulative = -8.31119e-11
GAMG:  Solving for p, Initial residual = 6.59658e-07, Final residual = 1.41466e-08, No Iterations 3
GAMG:  Solving for p, Initial residual = 1.48512e-07, Final residual = 3.0776e-09, No Iterations 3
GAMG:  Solving for p, Initial residual = 3.19207e-08, Final residual = 6.85085e-10, No Iterations 3
time step continuity errors : sum local = 9.63098e-13, global = -5.59535e-14, cumulative = -8.31679e-11
Setting traction on solid interfaces
Interpolating face values using GGI
Total force on fluid interface 0: (8.82446 9.21743 15.6261)
Total force on solid interface 0: (-8.82446 -9.21743 -15.6261)

Evolving solid solver
Solving the momentum equation for D
    Corr, res, relRes, matRes, iters
    The solver residual has converged
    82, 9.29405e-08, 6.35728e-06, 0, 1

Interpolating point values using GGI
Interpolating point values using GGI
FSI relative residual1 norm for interface 0: 1
FSI residual2 norm for interface 0: 1

Time = 1.1999e-06, iteration: 2
Current fsi under-relaxation factor (fluidInterface): 0.05
Maximal accumulated displacement of interface 0: 0.0671185
GAMG:  Solving for cellMotionUx, Initial residual = 1, Final residual = 9.55463e-05, No Iterations 2
GAMG:  Solving for cellMotionUy, Initial residual = 1, Final residual = 9.59871e-05, No Iterations 2
GAMG:  Solving for cellMotionUz, Initial residual = 1, Final residual = 0.00010594, No Iterations 2
GAMG:  Solving for cellMotionUx, Initial residual = 0.0222095, Final residual = 1.33099e-05, No Iterations 2
GAMG:  Solving for cellMotionUy, Initial residual = 0.022259, Final residual = 1.30381e-05, No Iterations 2
GAMG:  Solving for cellMotionUz, Initial residual = 0.0236021, Final residual = 1.39814e-05, No Iterations 2
Evolving fluid model: icoFluid
Courant Number mean: 0.00280154 max: 0.0732291 velocity magnitude: 2.5667
BiCGStab:  Solving for Ux, Initial residual = 0.0636034, Final residual = 4.68331e-09, No Iterations 1
BiCGStab:  Solving for Uy, Initial residual = 0.028478, Final residual = 2.81541e-09, No Iterations 1
BiCGStab:  Solving for Uz, Initial residual = 0.0120697, Final residual = 1.4184e-09, No Iterations 1
GAMG:  Solving for p, Initial residual = 0.541276, Final residual = 5.76854e-07, No Iterations 17
GAMG:  Solving for p, Initial residual = 0.0189776, Final residual = 6.978e-07, No Iterations 8
GAMG:  Solving for p, Initial residual = 0.000910908, Final residual = 5.26934e-07, No Iterations 6
time step continuity errors : sum local = 2.08396e-07, global = 2.05307e-08, cumulative = 2.04475e-08
GAMG:  Solving for p, Initial residual = 0.000287259, Final residual = 6.14174e-07, No Iterations 6
GAMG:  Solving for p, Initial residual = 0.000128291, Final residual = 6.02805e-07, No Iterations 3
GAMG:  Solving for p, Initial residual = 7.22296e-06, Final residual = 1.14241e-07, No Iterations 3
time step continuity errors : sum local = 4.50076e-08, global = 3.59242e-10, cumulative = 2.08068e-08
GAMG:  Solving for p, Initial residual = 2.74295e-06, Final residual = 3.60555e-08, No Iterations 3
GAMG:  Solving for p, Initial residual = 3.07078e-07, Final residual = 5.93607e-09, No Iterations 3
GAMG:  Solving for p, Initial residual = 4.82608e-08, Final residual = 1.06846e-09, No Iterations 3
time step continuity errors : sum local = 4.20944e-10, global = 2.71456e-11, cumulative = 2.08339e-08
Setting traction on solid interfaces
Interpolating face values using GGI
Total force on fluid interface 0: (-1770.29 -2975.23 -5063.24)
Total force on solid interface 0: (1770.29 2975.23 5063.24)

Evolving solid solver
Solving the momentum equation for D
    Corr, res, relRes, matRes, iters
    The solver residual has converged
    79, 9.57603e-08, 8.7284e-06, 0, 1

Interpolating point values using GGI
Interpolating point values using GGI
FSI relative residual1 norm for interface 0: 1
FSI residual2 norm for interface 0: 1.00018

Time = 1.1999e-06, iteration: 3
Current fsi under-relaxation factor (fluidInterface): 0.05
Maximal accumulated displacement of interface 0: 12.4804
GAMG:  Solving for cellMotionUx, Initial residual = 0.999994, Final residual = 9.10733e-05, No Iterations 2
GAMG:  Solving for cellMotionUy, Initial residual = 0.999991, Final residual = 9.26176e-05, No Iterations 2
GAMG:  Solving for cellMotionUz, Initial residual = 0.999989, Final residual = 0.000103209, No Iterations 2
GAMG:  Solving for cellMotionUx, Initial residual = 0.0222669, Final residual = 1.31184e-05, No Iterations 2
GAMG:  Solving for cellMotionUy, Initial residual = 0.0224597, Final residual = 1.3082e-05, No Iterations 2
GAMG:  Solving for cellMotionUz, Initial residual = 0.0236314, Final residual = 1.38275e-05, No Iterations 2
Evolving fluid model: icoFluid
Courant Number mean: 1.18759 max: 296.218 velocity magnitude: 1087.98
BiCGStab:  Solving for Ux, Initial residual = 0.937457, Final residual = 1.7485e-09, No Iterations 8
BiCGStab:  Solving for Uy, Initial residual = 0.823488, Final residual = 6.60663e-10, No Iterations 8
BiCGStab:  Solving for Uz, Initial residual = 0.906332, Final residual = 2.5676e-09, No Iterations 7
[DESKTOP-9RCDV18:15373] *** Process received signal ***
[DESKTOP-9RCDV18:15373] Signal: Floating point exception (8)
[DESKTOP-9RCDV18:15373] Signal code:  (-6)
[DESKTOP-9RCDV18:15373] Failing at address: 0x3e800003c0d
[DESKTOP-9RCDV18:15373] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f0c712c3210]
[DESKTOP-9RCDV18:15373] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f0c712c318b]
[DESKTOP-9RCDV18:15373] [ 2] /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f0c712c3210]
[DESKTOP-9RCDV18:15373] [ 3] /home/mfwilliams/foam/foam-extend-4.0/lib/linux64GccDPOpt/libfoam.so(_ZNK4Foam10GAMGSolver13scalingFactorERNS_5FieldIdEERKS2_S5_S5_+0x65)[0x7f0c71ce8295]
[DESKTOP-9RCDV18:15373] [ 4] /home/mfwilliams/foam/foam-extend-4.0/lib/linux64GccDPOpt/libfoam.so(_ZNK4Foam10GAMGSolver6VcycleERKNS_7PtrListINS_9lduMatrix8smootherEEERNS_5FieldIdEERKS8_S9_S9_S9_RNS1_IS8_EESD_j+0x7c0)[0x7f0c71cea900]
[DESKTOP-9RCDV18:15373] [ 5] /home/mfwilliams/foam/foam-extend-4.0/lib/linux64GccDPOpt/libfoam.so(_ZNK4Foam10GAMGSolver5solveERNS_5FieldIdEERKS2_j+0x75a)[0x7f0c71cec41a]
[DESKTOP-9RCDV18:15373] [ 6] /home/mfwilliams/foam/foam-extend-4.0/lib/linux64GccDPOpt/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE5solveERKNS_10dictionaryE+0x1f2)[0x7f0c73a2b172]
[DESKTOP-9RCDV18:15373] [ 7] /home/mfwilliams/foam/mfwilliams-4.0/lib/linux64GccDPOpt/libsolids4FoamModels.so(_ZN4Foam11fluidModels8icoFluid6evolveEv+0x1377)[0x7f0c7492ba47]
[DESKTOP-9RCDV18:15373] [ 8] /home/mfwilliams/foam/mfwilliams-4.0/lib/linux64GccDPOpt/libsolids4FoamModels.so(_ZN4Foam20fluidSolidInterfaces23IQNILSCouplingInterface6evolveEv+0x63)[0x7f0c749b0233]
[DESKTOP-9RCDV18:15373] [ 9] solids4Foam(+0x274f)[0x561d7ae5b74f]
[DESKTOP-9RCDV18:15373] [10] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f0c712a40b3]
[DESKTOP-9RCDV18:15373] [11] solids4Foam(+0x2b6e)[0x561d7ae5bb6e]
[DESKTOP-9RCDV18:15373] *** End of error message ***
To me it seems to go wrong after the first iteration of solving the fluid parameters where the calculated forces transferred to the solid domain are around 10N which seems too much. Because then in the next iteration of the fluid solver the max velocity of 2.57 is about 1m/s higher than I got as the max for a purely CFD simulation.


By the way, I have already managed to get a working CFD simulation using this geometry and all the same fluid case settings.


The fluid part of the problem seems to work with this FSI case as when I set coupling to start at some later time the fluid part does not have any problems until it starts coupling.


Here is a link to the whole case file if anybody is interested in trying it themselves.
Case file


I would hugely appreciate any time that anybody has to have a look over this and see if you can find out what is going wrong.
Thank you very much in advance
Attached Images
File Type: jpg view 1.jpg (93.8 KB, 19 views)
File Type: jpg view 2.jpg (68.8 KB, 18 views)
File Type: jpg view 3.jpg (186.1 KB, 31 views)
MFWilliams is offline   Reply With Quote

Old   February 22, 2022, 11:23
Default
  #2
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi Merlin,

Does the solid domain work on its own? e.g. if you specify a constant or time-varying pressure on the inside of the solid, will it converge?

Yep, based on the residuals, it seems that the force on the solid is very large, which causes a large deformation of the solid and then finally the fluid breaks.

Also, have you tried run this case with much stiffer solid properties? It might give some insights, e.g. set Young's modulus (E) to the properties of steel (200e9 Pa).

Another idea, maybe the problems are related to start-up instability effects. You could try enable the coupling after the flow has developed (using couplingStartTime in fsiProperties).

Philip
bigphil is offline   Reply With Quote

Old   February 22, 2022, 12:44
Default
  #3
New Member
 
ilhado's Avatar
 
Iago Lessa de Oliveira
Join Date: May 2015
Posts: 23
Rep Power: 11
ilhado is on a distinguished road
Hey Merlin,

Apart from what Philip said, some other tips that may help:

1) use an initial condition for the solid part (maybe based on a solid-only simulation);

2) decrease the relaxation factor in the fsiProperties (yes smaller than 0.05, I already used as low as 0.005. It helps in the initial iterations of the first time-step);

3) The reuse parameter of fsiProperties also helps to accelerate the convergence of the IQN-ILS for later time steps. I found an optimun value of around 4 for aneurysms geometries

4) The force on the BC is really high, I suggest you check the BCs of the flow part. Ate you using the correct pressure levels?

Best
Iago
Aero_Smail likes this.
ilhado is offline   Reply With Quote

Old   February 22, 2022, 14:17
Default
  #4
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Hi Merlin,

Does the solid domain work on its own? e.g. if you specify a constant or time-varying pressure on the inside of the solid, will it converge?

Yep, based on the residuals, it seems that the force on the solid is very large, which causes a large deformation of the solid and then finally the fluid breaks.

Also, have you tried run this case with much stiffer solid properties? It might give some insights, e.g. set Young's modulus (E) to the properties of steel (200e9 Pa).

Another idea, maybe the problems are related to start-up instability effects. You could try enable the coupling after the flow has developed (using couplingStartTime in fsiProperties).

Philip

Thank you for getting back to me so promptly!


I have managed to get a simulation of the solid domain working using a much stiffer material (E = 1.6e+12) and changing the relaxation factor for the solid domain with the help of Iago Lessa de Oliveira on this thread from post #653.


Using these values from the solid simulation with the FSI simualiton does improve and it runs for longer but for each iteration I get the error 'max iterations reached within the momentum loop'. And currently nOuterCorrectors is set to 100 in fsiProperties.

I have also already tried setting the coupling time to start later once the flow has developed (I tried at 0.2s). The fluid solver worked fine up until the coupling kicked in and after a couple of iterations it crashed again. However that was before I had managed to get the solid simulation to converge by itself.

I will try the edits to the solid simulation from the posts #649-655 from this thread and see if implementing those can help it and then reply with the problems that will inevitable arise.


Thank you very much for your help
Merlin

Last edited by MFWilliams; February 26, 2022 at 07:20.
MFWilliams is offline   Reply With Quote

Old   February 22, 2022, 14:25
Default
  #5
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Quote:
Originally Posted by ilhado View Post
Hey Merlin,

Apart from what Philip said, some other tips that may help:

1) use an initial condition for the solid part (maybe based on a solid-only simulation);

2) decrease the relaxation factor in the fsiProperties (yes smaller than 0.05, I already used as low as 0.005. It helps in the initial iterations of the first time-step);

3) The reuse parameter of fsiProperties also helps to accelerate the convergence of the IQN-ILS for later time steps. I found an optimun value of around 4 for aneurysms geometries

4) The force on the BC is really high, I suggest you check the BCs of the flow part. Ate you using the correct pressure levels?

Best
Iago

These are all very useful suggestions and I will give them all a go.


In response to 1), what kind of initial condition for the solid domain do you mean? Some sort of pre described displacement? I have not really come across these.


In response to 4), I am using a time varying inlet velocity specified by sum of Sines polynomial for the BC of the fluid and checking the results from the fluid only simulation the maximum pressure that is recorded is 17. Which then multiplied by my density is roughly 18000 Pa so not extortionatly high right?

Also when I used the modified values that you suggested for the solid simulation (increasing E and using a relaxation factor of 0.7) on a new FSI simulation the forces I got were pretty much the same.

Thank you for your help!
Chanikya_Valeti likes this.
MFWilliams is offline   Reply With Quote

Old   February 24, 2022, 10:17
Default
  #6
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Dear bigphil and ilhado,


I have now had a chance to implement most of the suggestions that you kindly gave me. And I think it has helped, thank you!

I have checked the BC's on the fluid domain and I think that they are working properly. I have a time varying inlet velocity and at the outlet I have a perscribed pressure. Together they create a maximum pressure in the fluid domain of 14840 Pa which I think seems correct. Do I need any more BC's to properly describe the problem?

I have also added an initial condition to the solid domain as suggested in the form of an externally applied pressure, in order to simulate intracranial pressure. Is this the kind of thing you were thinking of Iago, or was there something else?

Also, in your experience what range of forces should I expect from a problem like this?

Finally, reducing the FSI relaxation factor seems to have improved things. Setting it to 0.01 reduced the large forces that are experienced (now are about 0.02N) and it managed to properly converge for the first FSI iteraiton. However then the second didn't and after that it oscillates and breaks again after the 4th FSI iteration

Also, when I used the stiffer material with the 0.01 factor then it goes back to saying:
Code:
Corr, res, relRes, matRes, iters
    100, 0.0046755, 0.00867085, 0, 1
--> FOAM Warning : Max iterations reached within momentum loop
and not converging properly, is this to be expected when using a stiffer material??

By the way this is all whilst still using the Hex solid domain not the trinangular prism one suggested here in post #653.


EDIT:
For the most part I have reduced the oscillations and now have a simulation that converges every time step by changing the BC for pressure on the fluidInterface patch from zeroGradient to extrapolatedPressure

Last edited by MFWilliams; February 28, 2022 at 08:01.
MFWilliams is offline   Reply With Quote

Old   February 24, 2022, 11:03
Default
  #7
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Hi Iago,

One quick question, when testing out the reuse parameter, I have found that it actually reduces the speed of convergence and sometimes making the FSI iteration not converge when compared to not using this. This is the case only for the first couple of FSI iterations though and I have not seen the effect in later time steps. Have you found this to be the case as well?
Chanikya_Valeti likes this.

Last edited by MFWilliams; February 26, 2022 at 07:23.
MFWilliams is offline   Reply With Quote

Old   February 28, 2022, 08:22
Default
  #8
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Hi,


I now have the simulation running and managing to converge on every time step.


However given the nature of FSI simulations, it is pretty slow...


And so does anyone have any advice on how to possibly speed up an FSI simulation?


I realise using reuse can help. But I have found that it increases oscillations at the initial iterations so I will add it once the flow is developed.


I am using an adjustable time step and I have tried to increase deltaT in controlDict from 1e-06 to 5e-06 which does not hugely affect the results. However, with deltaT = 1e-06 the momentum equation for D takes around 100 iterations but for deltaT = 5e-06 it takes around 220 iterations. This is problematic as the solving the momentum equaiton is currently the slowest process of each iteration.


Is there anything else that you might advise to speed up my simulation?
MFWilliams is offline   Reply With Quote

Old   March 1, 2022, 09:25
Default
  #9
New Member
 
ilhado's Avatar
 
Iago Lessa de Oliveira
Join Date: May 2015
Posts: 23
Rep Power: 11
ilhado is on a distinguished road
Hi Merlin,


Quote:
I have also added an initial condition to the solid domain as suggested in the form of an externally applied pressure, in order to simulate intracranial pressure. Is this the kind of thing you were thinking of Iago, or was there something else?
No, although the externally applied pressure is perfectly fine. What I meant was to use an initial displacement as initial condition, but not any displacement. What I us to do is to simulate first the solid only (similarly to what I think you already accomplished), with a inner pressure as BC (steady-state or not), and use this solution as the initial displacement of the FSI simulation. This helps numerically to converge the initial iterations (the IQN-ILS is a Newton-based method, so initial conditions may help its convergence, as far as I know).

Quote:
One quick question, when testing out the reuse parameter, I have found that it actually reduces the speed of convergence and sometimes making the FSI iteration not converge when compared to not using this. This is the case only for the first couple of FSI iterations though and I have not seen the effect in later time steps. Have you found this to be the case as well?
The reuse parameter effectively helps the *FSI* convergence at later time steps because the actual "reuse" means reusing information from previously-computed time-steps. So it is unlikely that it may have some influence at the initial time-steps of the computations. It is related to the IQN-ILS coupling technique and I suggest you to take a look at the publication of the original technique developed by Dr. Degroote and others (Degroote et al. Performance of partitioned procedures in fluid-structure interaction. Computers and Structures. 2010;88(7–8):446–57). As they mention in their paper, the optimal value of it is a problem-dependent and, in the case of IAs geometries, I found this optimum to be around 4.

Quote:
Also, when I used the stiffer material with the 0.01 factor then it goes back to saying:
Code:
Corr, res, relRes, matRes, iters
100, 0.0046755, 0.00867085, 0, 1
--> FOAM Warning : Max iterations reached within momentum loop
and not converging properly, is this to be expected when using a stiffer material??
This is related to the solid-problem convergence, which is set in the constant/solid/solidProperties file. You probably need to increase the nIterations in the sub-dict of the solid model you are using.

Quote:
Finally, reducing the FSI relaxation factor seems to have improved things. Setting it to 0.01 reduced the large forces that are experienced (now are about 0.02N) and it managed to properly converge for the first FSI iteraiton. However then the second didn't and after that it oscillates and breaks again after the 4th FSI iteration
The FSI relaxation does helps but it is only applied at the initial FSI iterations of the first time-step. For later time-steps, when the reuse, say, may not be "effective" yet, what I found to help was the initial condition that I mentioned above. Nevertheless, even with the initial condition, the initial time-steps are contaminated with numerical oscillations that tend to dissipate later on.

Regarding your BCs, they seems to be fine, but I found that the velocity outlets BCs are important. If your case suddenly diverges, check whether the velocity levels increase a lot. I found in some cases that this was related to propagation phenomena that occurs when you numerically simulate flexible tubes with the traditional specified-pressure at the outlets, which reflect pressure and velocity waves. If this is also occurring in your cases, I suggest checking the 'advective' BC in foam-extend to be used for the velocity outlets, which is based on convective-BCs that "allow" waves propagation out of the domain.

Best,
Iago
Chanikya_Valeti likes this.
ilhado is offline   Reply With Quote

Old   March 1, 2022, 10:55
Default
  #10
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Thank you very much for such thorough responses.


Yes I have managed to obtain a working simulation with just the solid domain subjected to a time varying pressure. I have thought about this but I am not sure how to make the results of the solid only simulation the input conditions of the FSI sim. How do you achieve this? Do you do it by replacing the 'D' file from 0/fluid/D of the FSI with the 'D' file from the final time step of the solid only simulation?


I also have considered doing the same for the fluid domain and using the results of a CFD simulation as the input condition for the fluid domain but again I am not sure how to achieve this?


I think the advective BC's might help as I get the sudden divergence you mention where at the outlets I get a large spike in velocities relatively close to the start of the simulation.


Thank you so much for your assistance.


Merlin
MFWilliams is offline   Reply With Quote

Old   March 1, 2022, 11:07
Default
  #11
New Member
 
ilhado's Avatar
 
Iago Lessa de Oliveira
Join Date: May 2015
Posts: 23
Rep Power: 11
ilhado is on a distinguished road
Quote:
Yes I have managed to obtain a working simulation with just the solid domain subjected to a time varying pressure. I have thought about this but I am not sure how to make the results of the solid only simulation the input conditions of the FSI sim. How do you achieve this? Do you do it by replacing the 'D' file from 0/fluid/D of the FSI with the 'D' file from the final time step of the solid only simulation?
If the meshes are EXACTLY the same, then I believe you can try this copy-paste alternative (in any case, check in ParaView before if the fields are correct). The one alternative I use (and I believe it is safer) is to use the mapFields utility of OpenFOAM to map the fields between the two simulations.
ilhado is offline   Reply With Quote

Old   March 1, 2022, 13:02
Default
  #12
Member
 
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 5
MFWilliams is on a distinguished road
Ok I think I will initially try map fields then.


Thanks
MFWilliams is offline   Reply With Quote

Old   May 13, 2022, 09:35
Default
  #13
Neb
Member
 
Join Date: Mar 2020
Posts: 66
Rep Power: 6
Neb is on a distinguished road
Quote:
Originally Posted by MFWilliams View Post
Thank you for getting back to me so promptly!


I have managed to get a simulation of the solid domain working using a much stiffer material (E = 1.6e+12) and changing the relaxation factor for the solid domain with the help of Iago Lessa de Oliveira on this thread from post #653.


Using these values from the solid simulation with the FSI simualiton does improve and it runs for longer but for each iteration I get the error 'max iterations reached within the momentum loop'. And currently nOuterCorrectors is set to 100 in fsiProperties.

I have also already tried setting the coupling time to start later once the flow has developed (I tried at 0.2s). The fluid solver worked fine up until the coupling kicked in and after a couple of iterations it crashed again. However that was before I had managed to get the solid simulation to converge by itself.

I will try the edits to the solid simulation from the posts #649-655 from this thread and see if implementing those can help it and then reply with the problems that will inevitable arise.


Thank you very much for your help
Merlin
Hi ,
have you solved your problem? I am also working on aneurysms and am experiencing the same convergence problems. I have tried the suggestions, but don't work and only by increasing the stiffness of the wall the simulation is convergent but I get too small displacements.

Last edited by Neb; May 25, 2022 at 07:06.
Neb is offline   Reply With Quote

Reply

Tags
blood flow, convergance, fsi problem, solids4foam


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 Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Moving mesh (dynamic motion) with immersed boundary - foam extend 4.0 abavo OpenFOAM Running, Solving & CFD 0 August 2, 2018 10:25
[mesh manipulation] RefineMesh Error and Foam warning jiahui_93 OpenFOAM Meshing & Mesh Conversion 4 March 3, 2018 12:32
how to extend FSI 2D codes to 3D, need advises abouziar Main CFD Forum 1 May 30, 2008 05:08
Problem with rhoSimpleFoam matteo_gautero OpenFOAM Running, Solving & CFD 0 February 28, 2008 07:51
Free surface boudary conditions with SOLA-VOF Fan Main CFD Forum 10 September 9, 2006 13:24


All times are GMT -4. The time now is 19:38.