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

foam extend solid contact simulation blow up

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 24, 2023, 13:58
Default foam extend solid contact simulation blow up
  #1
Member
 
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12
CRI_CFD is on a distinguished road
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)
Attached Files
File Type: zip case.zip (32.6 KB, 3 views)
CRI_CFD is offline   Reply With Quote

Old   February 27, 2023, 03:54
Default
  #2
New Member
 
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4
iBatistic is on a distinguished road
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.
iBatistic is offline   Reply With Quote

Old   February 27, 2023, 10:41
Default
  #3
Member
 
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12
CRI_CFD is on a distinguished road
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
CRI_CFD is offline   Reply With Quote

Old   February 27, 2023, 14:20
Default
  #4
New Member
 
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4
iBatistic is on a distinguished road
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
on line 168 you will see that it is searching for old values of the displacement field U_0 in order to calculate displacement increment ΔU=U-U_0 on lines 172 and 173.
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
iBatistic is offline   Reply With Quote

Old   February 28, 2023, 05:54
Default
  #5
Member
 
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12
CRI_CFD is on a distinguished road
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.
CRI_CFD is offline   Reply With Quote

Reply


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
[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


All times are GMT -4. The time now is 14:55.