|
[Sponsors] |
solids4foam solidSolver fixed vs. Aitken relaxation |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
February 28, 2023, 10:40 |
solids4foam solidSolver fixed vs. Aitken relaxation
|
#1 |
New Member
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13 |
Dears
I am running a linearGeometryTotalDisplacement solver with solids4foam using contacts. It is similar to the punch case but here the objects are “embedded” as shown in the picture setup_cube_cone.png I was having difficulties converging so I tried different field relaxation options. I was expecting the Aitken relaxation to be more stable than the fixed relaxation. However, I can't converge using Aitken relaxation. The solution starts blowing up after ~150 corrections . Also, I noticed that changing the relation factor in the fvSolution (D 0.25 or D 0.75) with Aitken relaxation results in a different simulation. Looking at the code, the 1st iteration is initialized with a fixed relaxation (with factor =1 ) and then, it shouldn't care about the user defined value. Right ? In all three cases, I use an equation relaxation of D 0.999. Below, I show the residuals history for the 3 cases: res_aitken_vs_fixed.png relRes_aitken_vs_fixed.png For the Aitken simulations, the residual continues growing and eventually throws warnings --> FOAM Warning : From function newGGIInterpolation<MasterPatch, SlavePatch>::calcAddressing() in file lnInclude/newGGIInterpolationWeights.C at line 463 polygonIntersection is returning a zero surface area between Master face: 195 and Neighbour face: 289 intersection area = 0 Please check the two quick-check algorithms for newGGIInterpolation. Something is missing. Happy to provide more details if it helps !! Many many thanks! We really like this tool and are learning and appreciating its capabilities a lot and definitely want to keep on exploring it ! |
|
March 13, 2023, 17:53 |
|
#2 |
Member
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12 |
Hi Xulia,
I am having a similar problem with a more complex geometry (actually a bolt). My simulation include contacts as well. Mesh is OK but residuals are not falling down, no matter the relaxation factor I use.... I noticed that this new item is included within 2.0 release: https://github.com/solids4foam/solid...edLinGeomSolid Maybe this solver can provide a better performance...Would be nice to know more about this, but I have never used it. Any hints would be really appreciated! Thanks and keep foaming! |
|
March 14, 2023, 10:52 |
|
#3 |
New Member
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13 |
Thanks for the reply!
When you say your residuals are not falling down, do you mean that they are stagnated or actually growing ? In my case, they grow and the simulation blows up if I don't kill it. Actually, if I work on a more complex case, I always get (eventually) the warning "zero surface area" even with fixed relaxation and even setting the relaxation factor for D to 0.1 and lower... I was hoping that I would overcome this with Aitken relaxation but clearly I am misunderstanding how to use it. I have tried the vertexCentred that you mention https://github.com/solids4foam/solid...edLinGeomSolid but it doesn't seem to have the option for contact boundaries (??) so I don't think it is suited for these type of problems. Thank you ! |
|
March 29, 2023, 10:17 |
|
#4 |
New Member
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4 |
Hi Xulia,
can you describe in more detail what the boundary conditions are? At the cone base surface, do you have a prescribed force or displacement? If it is force, try to solve the case with a prescribed displacement. |
|
March 29, 2023, 12:02 |
|
#5 |
New Member
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13 |
Hi iBatistic:
thanks for the reply At the cone base, I have a fixed displacement BC. Actually, these are my 6 boundaries: model_base is what is left from the box minus the bottom patch and the hole model_hole is the hole made by the cone model_support is what you refered (I believe) as base The cone has a similar setup and I apply the load at mode_load (dah :-) ) /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | foam-extend: Open Source CFD | | \\ / O peration | Version: 4.1 | | \\ / A nd | Web: http://www.foam-extend.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; location "0"; object D; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { model_base { type solidTraction; traction uniform ( 0 0 0 ); pressure uniform 0; value uniform (0 0 0); } model_hole { type solidContact; shadowPatch model_insert; master no; value uniform (0 0 0); } model_support { type fixedDisplacement; value uniform (0 0 0); } model_insert { type solidContact; master yes; rigidMaster no; shadowPatch model_hole; normalContactModel standardPenalty; standardPenaltyNormalModelDict { relaxationFactor 0.001; penaltyScale 0.5; } frictionContactModel standardPenalty; standardPenaltyFrictionModelDict { relaxationFactor 0.001; penaltyScale 0.1; frictionLaw coulomb; frictionLawDict { frictionCoeff 0.5; } } value uniform (0 0 0); } model_load { type solidTraction; traction uniform ( 0 0 0 ); pressure uniform 2000; value uniform (0 0 0); } model_tool { type solidTraction; traction uniform ( 0 0 0 ); pressure uniform 0; value uniform (0 0 0); } } // ************************************************** *********************** // Does this boundary field make sense? Also, if it helps, I can tarball the whole case. My concern is that I would have thought (as mentioned) that Aitken should be more stable than fixed, as it is a dynamic relaxation. Any further thoughts ? Many many thanks in advance !!!! |
|
March 29, 2023, 12:35 |
|
#6 |
New Member
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4 |
The setup makes sense; you are solving a force-loading case. Such cases are tricky for the contact procedure, and typically they require more iterations to converge. To get a solution, you need to adjust the field and equation under relaxation.
I would recommend prescribing expected displacement at the model_load boundary. If you get a good solution for that, then you can try to get a solution with applied force and fixed under-relaxation. |
|
March 30, 2023, 05:02 |
|
#7 |
New Member
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13 |
thanks for the heads up.
OK, so replace the load for a displacement. Thanks, will try ! I am not very familiar with contact models. I have a fluids-maths background so all these contact-convergence issues are new to me. I am not so concerned abut the number of iterations but stability. For example, I would expect Aitken relaxation to be slower as it is adaptive, but more stable. Final thought: from what I gather, and since you clearly have more knowledge on the topic, you need to adjust the field & equation relaxation in a "brute force" way. ie, trial and error(?) Or for example, you can be very conservative and put a field relaxation of 0.01 ensuring numerical stability (at the expense of loosing "speed") ? My worry is that a very strict relaxation factor will just take a very long time to get to the unstable regime. Thanks for the discussion |
|
March 30, 2023, 07:43 |
|
#8 | ||
New Member
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4 |
Quote:
Quote:
|
|||
April 3, 2023, 09:42 |
|
#9 |
New Member
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13 |
Yes, that actually makes a lot of sense. And large displacement eventually blows everything up. Although I thought there was an upper bound in the adaptive relaxation factors (Aitken & Quasi-Newton) regarding how large the step can be.
I think I was running on 0.7 relaxation for this example but for more complicated contacts, I had to reduce the value to 0.1, otherwise all simulations blow up (Aitken & fixed). Now I am worried about wheter I have converged to the right value. Thank you for all the info, lots to think about |
|
April 7, 2023, 05:33 |
|
#10 |
New Member
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4 |
I would say that 0.1 is still ok. You can use the resulting displacement of the patch where force is applied to re-run the case as a displacement-loading case. By doing so, you can confirm the result.
Do not forget that you can also play with under-relaxation factors for contact traction in 0/D |
|
April 13, 2023, 07:34 |
|
#11 |
New Member
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13 |
Thanks for the suggestions.
I was playing with the relaxationFactor & penaltyScale in the normal & friction models. Only that at some point, I though that I was tuning way too many parameters Cheers! |
|
Tags |
contact boundary, relaxation, solid-solid, solids4foam |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
solids4Foam & FOAM-FSI | farah.elias | OpenFOAM | 21 | August 28, 2023 16:57 |
[solidMechanics] Support thread for "Solid Mechanics Solvers added to OpenFOAM Extend" | bigphil | OpenFOAM CC Toolkits for Fluid-Structure Interaction | 686 | December 22, 2022 10:10 |
Lets talk about relaxation factor optimization | chriss85 | OpenFOAM Running, Solving & CFD | 35 | June 21, 2019 10:54 |
Long output in terminal. | ssa_cfd | OpenFOAM Running, Solving & CFD | 1 | March 18, 2019 06:25 |
fixed bed reactor | Many | Fluent Multiphase | 2 | February 12, 2018 22:30 |