|
[Sponsors] |
[solids4Foam] linear vs nonlinear simulation blow up |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 3, 2023, 13:18 |
linear vs nonlinear simulation blow up
|
#1 |
Member
Thangam Natarajan
Join Date: Dec 2010
Location: Perth
Posts: 70
Rep Power: 17 |
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" |
|
March 6, 2023, 20:44 |
|
#2 |
New Member
Iago Lessa de Oliveira
Join Date: May 2015
Posts: 23
Rep Power: 11 |
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 |
|
March 8, 2023, 10:47 |
|
#3 | |
Member
Thangam Natarajan
Join Date: Dec 2010
Location: Perth
Posts: 70
Rep Power: 17 |
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:
|
||
Tags |
fsi, solids4foam |
|
|
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 |