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

LinkBack  Thread Tools  Search this Thread  Display Modes 
February 22, 2022, 09:06 
FSI case does not converge, foam extend 4.0

#1 
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
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 1e05 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 underrelaxation 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.1999e06 Time = 1.1999e06 Setting traction on solid interfaces Interpolating face values using GGI Create GGI zonetozone interpolator interfacetointerface face error: 4.46899e16 calcMasterPointAddressing() const Extended GGI, master point distance, max: 0, avg: 0, min: 0 interfacetointerface point error: 4.47384e16 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.1999e06, iteration: 1 Modes before cleanup (fluidInterface): 0, modes after cleanup (fluidInterface): 0 Current fsi underrelaxation 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.3012e13, No Iterations 1 BiCGStab: Solving for Uy, Initial residual = 1, Final residual = 4.30114e13, No Iterations 1 BiCGStab: Solving for Uz, Initial residual = 1, Final residual = 4.33649e13, No Iterations 1 GAMG: Solving for p, Initial residual = 1, Final residual = 4.80246e07, No Iterations 18 GAMG: Solving for p, Initial residual = 0.0285953, Final residual = 4.31077e07, No Iterations 9 GAMG: Solving for p, Initial residual = 0.00122424, Final residual = 6.86637e07, No Iterations 6 time step continuity errors : sum local = 9.64223e10, global = 8.15061e11, cumulative = 8.15061e11 GAMG: Solving for p, Initial residual = 0.000119358, Final residual = 4.93139e07, No Iterations 5 GAMG: Solving for p, Initial residual = 2.64897e05, Final residual = 2.33807e07, No Iterations 3 GAMG: Solving for p, Initial residual = 3.23077e06, Final residual = 4.64423e08, No Iterations 3 time step continuity errors : sum local = 6.5289e11, global = 1.60585e12, cumulative = 8.31119e11 GAMG: Solving for p, Initial residual = 6.59658e07, Final residual = 1.41466e08, No Iterations 3 GAMG: Solving for p, Initial residual = 1.48512e07, Final residual = 3.0776e09, No Iterations 3 GAMG: Solving for p, Initial residual = 3.19207e08, Final residual = 6.85085e10, No Iterations 3 time step continuity errors : sum local = 9.63098e13, global = 5.59535e14, cumulative = 8.31679e11 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.29405e08, 6.35728e06, 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.1999e06, iteration: 2 Current fsi underrelaxation factor (fluidInterface): 0.05 Maximal accumulated displacement of interface 0: 0.0671185 GAMG: Solving for cellMotionUx, Initial residual = 1, Final residual = 9.55463e05, No Iterations 2 GAMG: Solving for cellMotionUy, Initial residual = 1, Final residual = 9.59871e05, 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.33099e05, No Iterations 2 GAMG: Solving for cellMotionUy, Initial residual = 0.022259, Final residual = 1.30381e05, No Iterations 2 GAMG: Solving for cellMotionUz, Initial residual = 0.0236021, Final residual = 1.39814e05, 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.68331e09, No Iterations 1 BiCGStab: Solving for Uy, Initial residual = 0.028478, Final residual = 2.81541e09, No Iterations 1 BiCGStab: Solving for Uz, Initial residual = 0.0120697, Final residual = 1.4184e09, No Iterations 1 GAMG: Solving for p, Initial residual = 0.541276, Final residual = 5.76854e07, No Iterations 17 GAMG: Solving for p, Initial residual = 0.0189776, Final residual = 6.978e07, No Iterations 8 GAMG: Solving for p, Initial residual = 0.000910908, Final residual = 5.26934e07, No Iterations 6 time step continuity errors : sum local = 2.08396e07, global = 2.05307e08, cumulative = 2.04475e08 GAMG: Solving for p, Initial residual = 0.000287259, Final residual = 6.14174e07, No Iterations 6 GAMG: Solving for p, Initial residual = 0.000128291, Final residual = 6.02805e07, No Iterations 3 GAMG: Solving for p, Initial residual = 7.22296e06, Final residual = 1.14241e07, No Iterations 3 time step continuity errors : sum local = 4.50076e08, global = 3.59242e10, cumulative = 2.08068e08 GAMG: Solving for p, Initial residual = 2.74295e06, Final residual = 3.60555e08, No Iterations 3 GAMG: Solving for p, Initial residual = 3.07078e07, Final residual = 5.93607e09, No Iterations 3 GAMG: Solving for p, Initial residual = 4.82608e08, Final residual = 1.06846e09, No Iterations 3 time step continuity errors : sum local = 4.20944e10, global = 2.71456e11, cumulative = 2.08339e08 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.57603e08, 8.7284e06, 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.1999e06, iteration: 3 Current fsi underrelaxation factor (fluidInterface): 0.05 Maximal accumulated displacement of interface 0: 12.4804 GAMG: Solving for cellMotionUx, Initial residual = 0.999994, Final residual = 9.10733e05, No Iterations 2 GAMG: Solving for cellMotionUy, Initial residual = 0.999991, Final residual = 9.26176e05, 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.31184e05, No Iterations 2 GAMG: Solving for cellMotionUy, Initial residual = 0.0224597, Final residual = 1.3082e05, No Iterations 2 GAMG: Solving for cellMotionUz, Initial residual = 0.0236314, Final residual = 1.38275e05, 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.7485e09, No Iterations 8 BiCGStab: Solving for Uy, Initial residual = 0.823488, Final residual = 6.60663e10, No Iterations 8 BiCGStab: Solving for Uz, Initial residual = 0.906332, Final residual = 2.5676e09, No Iterations 7 [DESKTOP9RCDV18:15373] *** Process received signal *** [DESKTOP9RCDV18:15373] Signal: Floating point exception (8) [DESKTOP9RCDV18:15373] Signal code: (6) [DESKTOP9RCDV18:15373] Failing at address: 0x3e800003c0d [DESKTOP9RCDV18:15373] [ 0] /lib/x86_64linuxgnu/libc.so.6(+0x46210)[0x7f0c712c3210] [DESKTOP9RCDV18:15373] [ 1] /lib/x86_64linuxgnu/libc.so.6(gsignal+0xcb)[0x7f0c712c318b] [DESKTOP9RCDV18:15373] [ 2] /lib/x86_64linuxgnu/libc.so.6(+0x46210)[0x7f0c712c3210] [DESKTOP9RCDV18:15373] [ 3] /home/mfwilliams/foam/foamextend4.0/lib/linux64GccDPOpt/libfoam.so(_ZNK4Foam10GAMGSolver13scalingFactorERNS_5FieldIdEERKS2_S5_S5_+0x65)[0x7f0c71ce8295] [DESKTOP9RCDV18:15373] [ 4] /home/mfwilliams/foam/foamextend4.0/lib/linux64GccDPOpt/libfoam.so(_ZNK4Foam10GAMGSolver6VcycleERKNS_7PtrListINS_9lduMatrix8smootherEEERNS_5FieldIdEERKS8_S9_S9_S9_RNS1_IS8_EESD_j+0x7c0)[0x7f0c71cea900] [DESKTOP9RCDV18:15373] [ 5] /home/mfwilliams/foam/foamextend4.0/lib/linux64GccDPOpt/libfoam.so(_ZNK4Foam10GAMGSolver5solveERNS_5FieldIdEERKS2_j+0x75a)[0x7f0c71cec41a] [DESKTOP9RCDV18:15373] [ 6] /home/mfwilliams/foam/foamextend4.0/lib/linux64GccDPOpt/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE5solveERKNS_10dictionaryE+0x1f2)[0x7f0c73a2b172] [DESKTOP9RCDV18:15373] [ 7] /home/mfwilliams/foam/mfwilliams4.0/lib/linux64GccDPOpt/libsolids4FoamModels.so(_ZN4Foam11fluidModels8icoFluid6evolveEv+0x1377)[0x7f0c7492ba47] [DESKTOP9RCDV18:15373] [ 8] /home/mfwilliams/foam/mfwilliams4.0/lib/linux64GccDPOpt/libsolids4FoamModels.so(_ZN4Foam20fluidSolidInterfaces23IQNILSCouplingInterface6evolveEv+0x63)[0x7f0c749b0233] [DESKTOP9RCDV18:15373] [ 9] solids4Foam(+0x274f)[0x561d7ae5b74f] [DESKTOP9RCDV18:15373] [10] /lib/x86_64linuxgnu/libc.so.6(__libc_start_main+0xf3)[0x7f0c712a40b3] [DESKTOP9RCDV18:15373] [11] solids4Foam(+0x2b6e)[0x561d7ae5bb6e] [DESKTOP9RCDV18:15373] *** End of error message *** 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 

February 22, 2022, 10:23 

#2 
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 
Hi Merlin,
Does the solid domain work on its own? e.g. if you specify a constant or timevarying 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 startup instability effects. You could try enable the coupling after the flow has developed (using couplingStartTime in fsiProperties). Philip 

February 22, 2022, 11:44 

#3 
New Member
Iago Lessa de Oliveira
Join Date: May 2015
Posts: 23
Rep Power: 11 
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 solidonly 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 timestep); 3) The reuse parameter of fsiProperties also helps to accelerate the convergence of the IQNILS 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 

February 22, 2022, 13:17 

#4  
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
Quote:
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 #649655 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 06:20. 

February 22, 2022, 13:25 

#5  
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
Quote:
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! 

February 24, 2022, 09:17 

#6 
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
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 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 07:01. 

February 24, 2022, 10:03 

#7 
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
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? Last edited by MFWilliams; February 26, 2022 at 06:23. 

February 28, 2022, 07:22 

#8 
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
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 1e06 to 5e06 which does not hugely affect the results. However, with deltaT = 1e06 the momentum equation for D takes around 100 iterations but for deltaT = 5e06 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? 

March 1, 2022, 08:25 

#9  
New Member
Iago Lessa de Oliveira
Join Date: May 2015
Posts: 23
Rep Power: 11 
Hi Merlin,
Quote:
Quote:
Quote:
Quote:
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 specifiedpressure at the outlets, which reflect pressure and velocity waves. If this is also occurring in your cases, I suggest checking the 'advective' BC in foamextend to be used for the velocity outlets, which is based on convectiveBCs that "allow" waves propagation out of the domain. Best, Iago 

March 1, 2022, 09:55 

#10 
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
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 

March 1, 2022, 10:07 

#11  
New Member
Iago Lessa de Oliveira
Join Date: May 2015
Posts: 23
Rep Power: 11 
Quote:


March 1, 2022, 12:02 

#12 
Member
Merlin Williams
Join Date: Nov 2021
Posts: 71
Rep Power: 4 
Ok I think I will initially try map fields then.
Thanks 

May 13, 2022, 08:35 

#13  
Member
Join Date: Mar 2020
Posts: 66
Rep Power: 6 
Quote:
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 06:06. 

Tags 
blood flow, convergance, fsi problem, solids4foam 
Thread Tools  Search this Thread 
Display Modes  


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 09:25 
[mesh manipulation] RefineMesh Error and Foam warning  jiahui_93  OpenFOAM Meshing & Mesh Conversion  4  March 3, 2018 11:32 
how to extend FSI 2D codes to 3D, need advises  abouziar  Main CFD Forum  1  May 30, 2008 04:08 
Problem with rhoSimpleFoam  matteo_gautero  OpenFOAM Running, Solving & CFD  0  February 28, 2008 06:51 
Free surface boudary conditions with SOLAVOF  Fan  Main CFD Forum  10  September 9, 2006 12:24 