Thangam |
March 3, 2023 12:18 |
linear vs nonlinear simulation blow up
2 Attachment(s)
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"
|