|
[Sponsors] |
February 24, 2023, 13:58 |
foam extend solid contact simulation blow up
|
#1 |
Member
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12 |
Dear specialists in foam extend and FVM,
I have been trying to set-up a case in foam extend, including contact boundaries. The geometry is a screw placed in a block. I have tried to use elasticSolidFoam. Please find case attached (without mesh, let me know if it is needed) The thing is that simulation provides the following output in runtime (using friction model): Create time Create mesh for time = 0 Reading g Reading field U Patch bone_base Traction boundary field: U --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Creating solidContact patch --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Creating solidContact patch Normal contact model: standardPenalty Friction contact model: standardPenalty Friction law: coulomb Interpolation of traction from slave to master: ggi Patch bone_load Traction boundary field: U --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Patch bone_tool Traction boundary field: U --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Selecting rheology model multiMaterial Selecting rheology model linearElastic Selecting rheology model linearElastic Creating constitutive model Selecting solidInterface procedure none Force-displacement for patch bone_hole will be written to forceDisp.dat Selecting divSigmaExp calculation method surface Starting time loop Time = 1 Predicting U, gradU and snGradU based on V,gradV and snGradV Slave contact patch bone_hole grabbing normalContactModel pointer from master Slave contact patch bone_hole grabbing frictionContactModel pointer from master --> FOAM FATAL ERROR: request for volVectorField U_0 from objectRegistry region0 failed available objects of type volVectorField are 6 ( U (rho*g) UPrevIter aitkenDelta divSigmaExp V ) From function objectRegistry::lookupObject<Type>(const word&) const in file /home/foam/foam-extend-4.1/src/foam/lnInclude/objectRegistryTemplates.C at line 198. FOAM aborting Aborted (core dumped) (No idea about the meaning or what U_0 is (maybe displacmeent a t time 0, displacement inicialization field?...) If I swithc to frictionless, then the output is (no convergence but at least it iterations are there...): Create time Create mesh for time = 0 Reading g Reading field U Patch bone_base Traction boundary field: U --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Creating solidContact patch --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Creating solidContact patch Normal contact model: standardPenalty Friction contact model: frictionless Interpolation of traction from slave to master: ggi Patch bone_load Traction boundary field: U --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Patch bone_tool Traction boundary field: U --> FOAM Warning : The gradScheme for U should be "extendedLeastSquares 0" for the boundary non-orthogonal correction to be right Selecting rheology model multiMaterial Selecting rheology model linearElastic Selecting rheology model linearElastic Creating constitutive model Selecting solidInterface procedure none Force-displacement for patch bone_hole will be written to forceDisp.dat Selecting divSigmaExp calculation method surface Starting time loop Time = 1 Predicting U, gradU and snGradU based on V,gradV and snGradV Slave contact patch bone_hole grabbing normalContactModel pointer from master Slave contact patch bone_hole grabbing frictionContactModel pointer from master DICPCG: Solving for Ux, Initial residual = 1, Final residual = 3.61753e+08, No Iterations 1000 DICPCG: Solving for Uy, Initial residual = 1, Final residual = 5.02776e+10, No Iterations 1000 DICPCG: Solving for Uz, Initial residual = 1, Final residual = 1.7901e+09, No Iterations 1000 Time 1, Corrector 0, Solving for U using fvMatrix<Type>::solve, res = 1, rel res = 2.42105e+26, aitken = 0.1, inner iters = 0 DICPCG: Solving for Ux, Initial residual = 0.876635, Final residual = 0.0848051, No Iterations 3 DICPCG: Solving for Uy, Initial residual = 0.299212, Final residual = 0.0290654, No Iterations 10 DICPCG: Solving for Uz, Initial residual = 0.4825, Final residual = 0.0461951, No Iterations 2 DICPCG: Solving for Ux, Initial residual = 0.607657, Final residual = 0.0589189, No Iterations 2 DICPCG: Solving for Uy, Initial residual = 0.270008, Final residual = 0.0239256, No Iterations 6 DICPCG: Solving for Uz, Initial residual = 0.360479, Final residual = 0.0331524, No Iterations 2 DICPCG: Solving for Ux, Initial residual = 0.443993, Final residual = 0.0433599, No Iterations 3 DICPCG: Solving for Uy, Initial residual = 0.111511, Final residual = 1.20076e+09, No Iterations 1000 DICPCG: Solving for Uz, Initial residual = 0.16647, Final residual = 0.0161819, No Iterations 3 DICPCG: Solving for Ux, Initial residual = 1, Final residual = 0.094447, No Iterations 23 PCG: Solving for Uy, Initial residual = 2.77737e-08, Final residual = 2.77737e-08, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 1, Final residual = 0.0992306, No Iterations 32 DICPCG: Solving for Ux, Initial residual = 0.173211, Final residual = 1.86799e+08, No Iterations 1000 PCG: Solving for Uy, Initial residual = 2.69076e-08, Final residual = 2.69076e-08, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.169386, Final residual = 2.56504, No Iterations 1000 DICPCG: Solving for Ux, Initial residual = 1.40267e-07, Final residual = 3.27791e-08, No Iterations 1 DICPCG: Solving for Uy, Initial residual = 0.190138, Final residual = 0.0173529, No Iterations 4 DICPCG: Solving for Uz, Initial residual = 7.17477e-07, Final residual = 9.19536e-08, No Iterations 3 PCG: Solving for Ux, Initial residual = 4.38861e-08, Final residual = 4.38861e-08, No Iterations 0 DICPCG: Solving for Uy, Initial residual = 0.0887185, Final residual = 0.0088352, No Iterations 15 DICPCG: Solving for Uz, Initial residual = 3.59442e-07, Final residual = 9.26594e-08, No Iterations 1 PCG: Solving for Ux, Initial residual = 4.44503e-08, Final residual = 4.44503e-08, No Iterations 0 DICPCG: Solving for Uy, Initial residual = 0.0226851, Final residual = 0.00209076, No Iterations 22 DICPCG: Solving for Uz, Initial residual = 1.1366e-07, Final residual = 6.04114e-08, No Iterations 1 PCG: Solving for Ux, Initial residual = 4.45281e-08, Final residual = 4.45281e-08, No Iterations 0 DICPCG: Solving for Uy, Initial residual = 0.00960792, Final residual = 0.000922922, No Iterations 45 PCG: Solving for Uz, Initial residual = 6.57238e-08, Final residual = 6.57238e-08, No Iterations 0 PCG: Solving for Ux, Initial residual = 4.44974e-08, Final residual = 4.44974e-08, No Iterations 0 DICPCG: Solving for Uy, Initial residual = 0.0166244, Final residual = 0.00163726, No Iterations 29 DICPCG: Solving for Uz, Initial residual = 1.07642e-07, Final residual = 8.04424e-08, No Iterations 1 PCG: Solving for Ux, Initial residual = 4.41927e-08, Final residual = 4.41927e-08, No Iterations 0 DICPCG: Solving for Uy, Initial residual = 0.013808, Final residual = 0.00133424, No Iterations 26 PCG: Solving for Uz, Initial residual = 8.37379e-08, Final residual = 8.37379e-08, No Iterations 0 PCG: Solving for Ux, Initial residual = 4.41941e-08, Final residual = 4.41941e-08, No Iterations 0 DICPCG: Solving for Uy, Initial residual = 0.00709998, Final residual = 0.000703028, No Iterations 88 PCG: Solving for Uz, Initial residual = 8.12004e-08, Final residual = 8.12004e-08, No Iterations 0 PCG: Solving for Ux, Initial residual = 4.41928e-08, Final residual = 4.41928e-08, No Iterations 0 DICPCG: Solving for Uy, Initial residual = 0.00434431, Final residual = 2.76158e+07, No Iterations 1000 PCG: Solving for Uz, Initial residual = 8.12366e-08, Final residual = 8.12366e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 0.405225, Final residual = 0.0390805, No Iterations 70 PCG: Solving for Uy, Initial residual = 9.86853e-09, Final residual = 9.86853e-09, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.966436, Final residual = 1.73792e+10, No Iterations 1000 DICPCG: Solving for Ux, Initial residual = 1, Final residual = 9.22297e+06, No Iterations 1000 DICPCG: Solving for Uy, Initial residual = 0.904547, Final residual = 5.69664e+09, No Iterations 1000 PCG: Solving for Uz, Initial residual = 2.60885e-08, Final residual = 2.60885e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 7.51811e-07, Final residual = 9.90487e-08, No Iterations 21 PCG: Solving for Uy, Initial residual = 6.91458e-08, Final residual = 6.91458e-08, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.793483, Final residual = 0.0766145, No Iterations 33 DICPCG: Solving for Ux, Initial residual = 2.95178e-07, Final residual = 9.0516e-08, No Iterations 6 PCG: Solving for Uy, Initial residual = 6.7738e-08, Final residual = 6.7738e-08, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.148668, Final residual = 336798, No Iterations 1000 DICPCG: Solving for Ux, Initial residual = 0.13304, Final residual = 0.0132187, No Iterations 80 DICPCG: Solving for Uy, Initial residual = 0.00200897, Final residual = 0.000195259, No Iterations 62 PCG: Solving for Uz, Initial residual = 1.61389e-08, Final residual = 1.61389e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 0.0629639, Final residual = 0.00624435, No Iterations 83 DICPCG: Solving for Uy, Initial residual = 0.00102627, Final residual = 9.92614e-05, No Iterations 69 PCG: Solving for Uz, Initial residual = 1.52998e-08, Final residual = 1.52998e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 0.0368081, Final residual = 0.0036455, No Iterations 104 DICPCG: Solving for Uy, Initial residual = 0.000592559, Final residual = 5.89365e-05, No Iterations 141 PCG: Solving for Uz, Initial residual = 1.52366e-08, Final residual = 1.52366e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 0.0231274, Final residual = 1.1319e+07, No Iterations 1000 DICPCG: Solving for Uy, Initial residual = 0.00034939, Final residual = 9868.93, No Iterations 1000 PCG: Solving for Uz, Initial residual = 1.51007e-08, Final residual = 1.51007e-08, No Iterations 0 PCG: Solving for Ux, Initial residual = 4.68785e-08, Final residual = 4.68785e-08, No Iterations 0 PCG: Solving for Uy, Initial residual = 5.71394e-08, Final residual = 5.71394e-08, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.0610994, Final residual = 0.00601214, No Iterations 55 PCG: Solving for Ux, Initial residual = 4.59582e-08, Final residual = 4.59582e-08, No Iterations 0 PCG: Solving for Uy, Initial residual = 5.16774e-08, Final residual = 5.16774e-08, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.0267607, Final residual = 0.00266813, No Iterations 62 PCG: Solving for Ux, Initial residual = 4.57402e-08, Final residual = 4.57402e-08, No Iterations 0 PCG: Solving for Uy, Initial residual = 5.06292e-08, Final residual = 5.06292e-08, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.0134697, Final residual = 1.96297e+07, No Iterations 1000 DICPCG: Solving for Ux, Initial residual = 0.353336, Final residual = 0.0348936, No Iterations 84 DICPCG: Solving for Uy, Initial residual = 0.748644, Final residual = 0.0748514, No Iterations 60 PCG: Solving for Uz, Initial residual = 3.71745e-08, Final residual = 3.71745e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 0.113209, Final residual = 0.0111967, No Iterations 68 DICPCG: Solving for Uy, Initial residual = 0.15271, Final residual = 0.0151149, No Iterations 69 PCG: Solving for Uz, Initial residual = 3.61335e-08, Final residual = 3.61335e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 0.0502661, Final residual = 0.00488697, No Iterations 108 DICPCG: Solving for Uy, Initial residual = 0.0763759, Final residual = 129849, No Iterations 1000 PCG: Solving for Uz, Initial residual = 3.59922e-08, Final residual = 3.59922e-08, No Iterations 0 DICPCG: Solving for Ux, Initial residual = 0.999976, Final residual = 0.0982551, No Iterations 264 PCG: Solving for Uy, Initial residual = 5.72148e-09, Final residual = 5.72148e-09, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.000629743, Final residual = 6.24665e-05, No Iterations 120 DICPCG: Solving for Ux, Initial residual = 0.0183442, Final residual = 0.00181903, No Iterations 262 PCG: Solving for Uy, Initial residual = 5.46565e-09, Final residual = 5.46565e-09, No Iterations 0 DICPCG: Solving for Uz, Initial residual = 0.000399636, Final residual = 3.98244e-05, No Iterations 107 Floating point exception (core dumped) Have anyone experienced such a behaviour? My geometry is good, interface is well defined and checkMesh and surfaceCheck are OK...Also mesh size is high enough I would say (around 6.6 million cells) Many thanks in advance, I have no idea about the error...no idea what U_0 is... BTW the frictionless case doesn't work in parallel (at least I cannot see iterations) |
|
February 27, 2023, 03:54 |
|
#2 |
New Member
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4 |
U_0 is the displacement field from the previous time step. Since you are at the first time step you do not have it. This file is written later on for each time step by the solver.
I would strongly recommend you use the solid4foam/ library for any solid mechanics simulations. It is developed by the same people, and it has more recent solvers and boundary conditions as well as penalty-based contact treatment which is more robust than the procedure you find in foam-extend. |
|
February 27, 2023, 10:41 |
|
#3 |
Member
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12 |
Hi iBatistic and many thanks for your reply.
I am paying a lot of attention to your answer, but still feeling confused: "U_0 is the displacement field from the previous time step. Since you are at the first time step you do not have it. This file is written later on for each time step by the solver" I am running a steady state analysis so...no previous time step is computed. Does this mean that elasticSolidFoam can only be used for transient analysis? If not, I do not understand how the solver asks for U_0 (unless U_0 is the initialization of U in 0/U file). On top of that...I have the same U_0 (actually none) in both friction/frictionless models...and frictionless runs for a few iterations without requesting the U_0 field...why the contact model is managing the need for U_0 in the computations? I am also testing solids4foam, but it seems that foam extend allows for more control (by means of more parameters included within the 0/U file, master contact) than solids4foma in contact problems. Thanks in advance for further clarifications, but so far still don't understand how a steady state asks for previous time steps and even worse...how the contact model changes the behaviour of the solver (throw an error while requesting U_0 if friction model activated, no request if frictionless is activated) Have a nice day |
|
February 27, 2023, 14:20 |
|
#4 |
New Member
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4 |
I would recommend you stick solely to the solids4Foam implementation because it is more recent and more tested. Also, these additional controls you mentioned are not so important to have for standard usage.
Back to your problem, if you open the following file: Code:
src/solidModels/frictionContactModels/standardPenaltyFrictio/standardPenaltyFriction.C Since you do not have previous values of the displacement field at the beginning, the simplest solution is to add a file 0/U_0 and set values to zero. Displacement increment is not required for normal contact traction, and that is the reason the frictionless case is working. Hope that things are clear now, let me know if you need an additional explanation… Edit: U_0 is not in objectRegistry so adding this file to 0/ will not solve the problem. It is necessary to tweak the code by adding one if statement to avoid searching for U_0 for the first time step. Last edited by iBatistic; February 27, 2023 at 14:24. Reason: mistake in statement |
|
February 28, 2023, 05:54 |
|
#5 |
Member
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12 |
Hi again iBatistic,
Clearer than water now! Thanks for taking the time to provide such a detailed explanation. I will check the code then. Have a nice day and many thanks for the valuable support. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Other] refineWallLayer Error | Yuby | OpenFOAM Meshing & Mesh Conversion | 2 | November 11, 2021 12:04 |
Convective term in heat equation for solid region in conjugateHeatFoam- Foam Extend | sadsid | OpenFOAM | 0 | June 26, 2020 11:17 |
Non physical force coefficients obtained in simulation using foam extend 4.0 (IBM) | Suya_94 | OpenFOAM Running, Solving & CFD | 0 | March 4, 2019 18:52 |
[blockMesh] non-orthogonal faces and incorrect orientation? | nennbs | OpenFOAM Meshing & Mesh Conversion | 7 | April 17, 2013 06:42 |
is internalField(U) equivalent to zeroGradient? | immortality | OpenFOAM Running, Solving & CFD | 7 | March 29, 2013 02:27 |