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] linear vs nonlinear simulation blow up

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 3, 2023, 13:18
Default linear vs nonlinear simulation blow up
  #1
Member
 
Thangam Natarajan
Join Date: Dec 2010
Location: Perth
Posts: 70
Rep Power: 17
Thangam is on a distinguished road
I am trying to do an fsi of a simplified geometry i.e two perpendicular flaps in a pipe (see image 1). As suggested in several threads here, I initially got only the fluid side working first. Then, I introduced the linear solid model. After a few trial and errors I figured the right combinations for the linear elastic model. Now, I want to get the nonlinear model working but the simulation blows half way (i.e total simulation time is 0.3s, blows up at around 0.125 mark) up with Ux exploding which is perplexing. The fluid mesh with the nonlinear model has not deformed even half of what the linear model deformed (and continued to run). See image 2.

Few things that I tried:

1) Different non-linear material models:

- StVenantKirchhoffElastic and neoHookeanElastisc produce the same blow up at the same time with unsNonLinearGeometryTotalLagrangian

- MooneyRivlinElastic and OgdenElastic enforce material linearity for stability and crash within a few time steps.

2) Switching between Aitken and IQNLS didnt solve the issue although with Aitken it took longer cpu time which is expected I guess.

3) The solid side fvSchemes/fvSolution are similar to most tutorials i.e backward, leastSquares, Gauss linear etc and did not change between linear vs nonlinear.

4) nonLinearGeometryTotalLagrangian and unsNonLinearGeometryTotalLagrangian produced same results i.e crashed at similar time points.


How should I approach the transition from a linear model to a non-linear model? The simulations are with OF9.0/ s4F 2.0 and Ubuntu 22.04.

More importantly, how to approach such simulations where large deformations are expected? In this case, I expect the flaps to completely open due to the fluid pressure.

The error with the nonlinear models:

Code:
Time = 0.1585, iteration: 1
Modes before clean-up (leafletInterface_right): 4, modes after clean-up (leafletInterface_right): 0
Modes before clean-up (leafletInterface_left): 4, modes after clean-up (leafletInterface_left): 0
Current fsi under-relaxation factor (leafletInterface_right): 0.04
Current fsi under-relaxation factor (leafletInterface_left): 0.04
Maximal accumulated displacement of interface 0: 0.00122374
Maximal accumulated displacement of interface 1: 0.000717729
GAMG:  Solving for cellMotionUx, Initial residual = 0.273882, Final residual = 0.000270944, No Iterations 2
GAMG:  Solving for cellMotionUy, Initial residual = 0.85522, Final residual = 0.00069667, No Iterations 2
GAMG:  Solving for cellMotionUz, Initial residual = 0.429167, Final residual = 0.000326026, No Iterations 2
Evolving fluid model: pimpleFluid
smoothSolver:  Solving for Ux, Initial residual = 0.0174593, Final residual = 3.84848e+142, No Iterations 1000
smoothSolver:  Solving for Uy, Initial residual = 0.016358, Final residual = 5.57287e-06, No Iterations 3
smoothSolver:  Solving for Uz, Initial residual = 0.00462265, Final residual = 9.712e-06, No Iterations 2
GAMG:  Solving for p, Initial residual = 1, Final residual = 0.0337324, No Iterations 2
time step continuity errors : sum local = 9.49087e+139, global = -7.41012e+136, cumulative = -7.41012e+136
GAMG:  Solving for p, Initial residual = 0.760907, Final residual = 5.35549e-07, No Iterations 13
time step continuity errors : sum local = 2.47545e+135, global = 6.11507e+134, cumulative = -7.34896e+136
Setting traction on solid interfaces
Mapping face values using directMap
Total force on fluid interface 0: (1.67545e+141 5.24331e+141 6.00937e+142)
Total force on solid interface 0: (-1.67545e+141 -5.24331e+141 -6.00937e+142)

Mapping face values using directMap
Total force on fluid interface 1: (1.06048e+141 -1.36071e+141 4.26914e+141)
Total force on solid interface 1: (-1.06048e+141 1.36071e+141 -4.26914e+141)

Evolving solid solver
[1] #0  [5] #0  Foam::error::printStack(Foam::Ostream&)[0] #0  [2] #0  Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)[7] Foam::error::printStack(Foam::Ostream&)[9] #0  [6] #0  Foam::error::printStack(Foam::Ostream&)#0  [3] [8] Foam::error::printStack(Foam::Ostream&)[4] Foam::error::printStack(Foam::Ostream&)#0  #0  #0  Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&) at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
[9] #1  [4] #1  Foam::sigFpe::sigHandler(int)Foam::sigFpe::sigHandler(int) at ??:?
[0] #1  [2] #1  Foam::sigFpe::sigHandler(int)Foam::sigFpe::sigHandler(int)[6] #1  Foam::sigFpe::sigHandler(int)[7] #1  Foam::sigFpe::sigHandler(int)[3] #1  Foam::sigFpe::sigHandler(int) at ??:?
 at ??:?
 at ??:?
[1] #1  Foam::sigFpe::sigHandler(int)[5] #1  [8] #1  Foam::sigFpe::sigHandler(int)Foam::sigFpe::sigHandler(int) at ??:?
[8] #2  ? at ??:?
[0] #2  ? at ??:?
[9] #2  ? at ??:?
[5] #2  ? at ??:?
[2] #2  ? at ??:?
[7] #2   at ??:?
?[4] #2  ? at ??:?
[3] #2  ? at ??:?
[6] #2  ? at ??:?
[1] #2  ? in "/lib/x86_64-linux-gnu/libc.so.6"
 in "/lib/x86_64-linux-gnu/libc.so.6"
 in "/lib/x86_64-linux-gnu/libc.so.6"
 in "/lib/x86_64-linux-gnu/libc.so.6[0] #"
3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&) in "/lib/x86_64-linux-gnu/libc.so.6"
[8] #3  [2] #3  [5] #Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&)Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&)3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&)[9] #3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&) in "/lib/x86_64-linux-gnu/libc.so.6"
 in "/lib/x86_64-linux-gnu/libc.so.6"
[3] #3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&) in "/lib/x86_64-linux-gnu/libc.so.6"
[4] #3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&)[7] #3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&) in "/lib/x86_64-linux-gnu/libc.so.6"
[6] #3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&) in "/lib/x86_64-linux-gnu/libc.so.6"
[1] #3  Foam::inv(Foam::Field<Foam::Tensor<double> >&, Foam::UList<Foam::Tensor<double> > const&) at ??:?
[0] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
 at ??:?
[2] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
[8] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&)[9] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
[4] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
[3] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
[5] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
[6] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
[7] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
[1] #4  Foam::tmp<Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> > Foam::inv<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<Foam::Tensor<double>, Foam::fvsPatchField, Foam::surfaceMesh> const&) at ??:?
 at ??:?
[2] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve()[9] #5   at ??:?
Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve()[4] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve() at ??:?
 at ??:?
[3] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve()[8] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve() at ??:?
[6] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve() at ??:?
 at ??:?
[5] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve()[0] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve() at ??:?
[7] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve() at ??:?
[1] #5  Foam::solidModels::unsNonLinGeomTotalLagSolid::evolve() at ??:?
[9] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve() at ??:?
[3] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve() at ??:?
 at ??:?
[2] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve()[4] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve() at ??:?
 at ??:?
[8] #6  [6] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve()Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve() at ??:?
 at ??:?
[0] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve()[5] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve() at ??:?
[7] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve() at ??:?
[3] #7   at ??:?
 at ??:?
[2] #7  [1] #6  Foam::fluidSolidInterfaces::IQNILSCouplingInterface::evolve() at ??:?
[6] #7   at ??:?
[8] #7   at ??:?
[0] #7   at ??:?
[9] #7   at ??:?
[4] #7   at ??:?
[5] #7  ?? at ??:?
[7] #7  ??????? in "/nethome/tnatarajan6/OpenFOAM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/solids4Foam"
[3] #8  ? in "/nethome/tnatarajan6/OpenFOAM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/solids4Foam"
 in "/nethome/tnatarajan6/Open[8] #8  ?FOAM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/solids4Foam"
[6] #8  ? in "/nethome/tnatarajan6/OpenFOAM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/soli in "ds4Foam"
/nethome/tnatarajan6/OpenFOAM/tnatarajan6-9/platforms/linux64GccDPI[2] #8  ?nt32Opt/bin/solids4Foam"
[9] #8  ? in "/nethome/tnatarajan6/Op at ??:?
enFOAM/tnatarajan6-9/platforms/linux in "/nethome/tnatarajan6/OpenFO[1] #7  64GccDPInt32Opt/bin/solids4Foam"
AM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/sol[0] #8  ids4Foam"
?[4] #8  ? in "/nethome/tnatarajan6/OpenFOAM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/solids4Foam"
[5] #8  ? in "/nethome/tnatarajan6/OpenFOAM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/solids4Foam"
[7] #8  ? in "/lib/x86_64-linux-gnu/libc.so.6"
[3] #9   in "/lib/x86_64-linux-gnu/libc.so.6"
__libc_start_main[8] #9  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
[9] #9  __libc_start_main? in "/lib/x86_64-linux-gnu/libc.so.6"
[6] #9  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
 in "/lib/x86_64-linux-gnu/libc.so.6"
[0] #9  __libc_start_main[4] #9  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
[2] #9  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
[5] #9  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
[7] #9  __libc_start_main in "/nethome/tnatarajan6/OpenFOAM/tnatarajan6-9/platforms/linux64GccDPInt32Opt/bin/solids4Foam"
[1] #8 in "/lib  ?/x86_64-linux-gnu/libc.so.6"
[8] #10   in "/lib/x86_64-linux-gnu/libc.so.6"
[3] #10   in "/lib/x86_64-linux-gnu/libc.so.6"
[0] #10   in "/lib/x86_64-linux-gnu/libc.so.6"
[6] #10   in "/lib/x86_64-linux-gnu/libc.so.6"
[5] #10   in "/lib/x86_64-linux-gnu/libc.so.6"
[2] #10   in "/lib/x86_64-linux-gnu/libc.so.6"
[9] #10   in "/lib/x86_64-linux-gnu/libc.so.6"
[4] #10  ? in "/lib/x86_64-linux-gnu/libc.so.6"
[7] #10  ? in "/lib/x86_64-linux-gnu/libc.so.6"
Attached Images
File Type: jpg gorm.jpg (23.4 KB, 10 views)
File Type: jpg deformations.jpg (202.6 KB, 10 views)
Thangam is offline   Reply With Quote

Old   March 6, 2023, 20:44
Default
  #2
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 Thangam,



By the piece of your log, note that the divergence is occurring on the continuity equation solution step. This may point to boundary conditions, for example, but since you tested with the linear model for the solid, they are probably right. My second guess is related to the mesh motion. But it is hard to be sure with the data you provided. Could you share the case setup or more of the log file?


Best,
Iago
ilhado is offline   Reply With Quote

Old   March 8, 2023, 10:47
Default
  #3
Member
 
Thangam Natarajan
Join Date: Dec 2010
Location: Perth
Posts: 70
Rep Power: 17
Thangam is on a distinguished road
Hi Iago,

Thanks for taking a look. I have attached the zip file that contains the fluid and solid side settings. I have removed the polyMesh due to file size limits. I dont have the log file but I am sure everything was perfect until that point as shown in my earlier post. It blows up suddenly at a certain time step. I believe the route of making things work with fliud alone, then solid alone and then moving to a linear model with fsi with stiffer properties works to a certain extent, however, the resulting dynamics arent the same and looks like it still needs some tweaking.

I'm guessing its got to do with the mesh motion as well but not sure. Because with the linear model, I was able to achieve a higher deformation. Again, to re-iterate, I expect/want the flaps to completely open due to the fluid pressure - so how to ensure mesh quality or rather accomodate such large deformations?

Thanks.



Quote:
Originally Posted by ilhado View Post
Hi Thangam,



By the piece of your log, note that the divergence is occurring on the continuity equation solution step. This may point to boundary conditions, for example, but since you tested with the linear model for the solid, they are probably right. My second guess is related to the mesh motion. But it is hard to be sure with the data you provided. Could you share the case setup or more of the log file?


Best,
Iago
Attached Files
File Type: zip Iago_cfdOnline.zip (28.4 KB, 0 views)
Thangam is offline   Reply With Quote

Reply

Tags
fsi, 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
Mapping Field Data for Mesh Regions from Another Simulation veterator OpenFOAM Pre-Processing 1 July 10, 2018 06:28
Linear degenerate and genenuiely nonlinear??? Paul Main CFD Forum 3 March 22, 2016 02:32
error on turbulence scheme immortality OpenFOAM Pre-Processing 11 August 21, 2013 09:45
Use "bounded" in scheme or not to use? immortality OpenFOAM Pre-Processing 0 June 11, 2013 17:20
Blow Tank Simulation ... Need Help! treyevans CFX 1 February 20, 2010 01:42


All times are GMT -4. The time now is 12:02.