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

solids4foam solidSolver fixed vs. Aitken relaxation

Register Blogs Community New Posts Updated Threads Search

Like Tree2Likes
  • 1 Post By CRI_CFD
  • 1 Post By iBatistic

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 28, 2023, 10:40
Question solids4foam solidSolver fixed vs. Aitken relaxation
  #1
New Member
 
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13
Xulia is on a distinguished road
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 !
Xulia is offline   Reply With Quote

Old   March 13, 2023, 17:53
Default
  #2
Member
 
Richardpluff
Join Date: May 2014
Posts: 95
Rep Power: 12
CRI_CFD is on a distinguished road
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!
Xulia likes this.
CRI_CFD is offline   Reply With Quote

Old   March 14, 2023, 10:52
Default
  #3
New Member
 
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13
Xulia is on a distinguished road
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 !
Xulia is offline   Reply With Quote

Old   March 29, 2023, 10:17
Default
  #4
New Member
 
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4
iBatistic is on a distinguished road
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.
Xulia likes this.
iBatistic is offline   Reply With Quote

Old   March 29, 2023, 12:02
Default
  #5
New Member
 
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13
Xulia is on a distinguished road
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 !!!!
Xulia is offline   Reply With Quote

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

Old   March 30, 2023, 05:02
Default
  #7
New Member
 
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13
Xulia is on a distinguished road
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
Xulia is offline   Reply With Quote

Old   March 30, 2023, 07:43
Default
  #8
New Member
 
Ivan Batistić
Join Date: Sep 2022
Location: Zagreb, Croatia
Posts: 14
Rep Power: 4
iBatistic is on a distinguished road
Quote:
Originally Posted by Xulia View Post
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.
Here you can expect convergence issues because one body in contact has prescribed traction on all boundaries, and if traction is imbalanced the result is large body displacement. This is the case during convergence because contact traction is not equal to the prescribed load. Because of this, Aitken relaxation is not helping, and you need to play with under-relaxations to get convergence.

Quote:
Originally Posted by Xulia View Post
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.
A very small under-relaxation factor can easily produce false convergence and wrong results. Typically, we use 0.99-0.9999 for the equation and 0.7-1 for field under-relaxation. For example, in the s4f punch tutorial case, the equation under-relaxation is set to 0.999.
iBatistic is offline   Reply With Quote

Old   April 3, 2023, 09:42
Default
  #9
New Member
 
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13
Xulia is on a distinguished road
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
Xulia is offline   Reply With Quote

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

Old   April 13, 2023, 07:34
Default
  #11
New Member
 
Julia Docampo
Join Date: Jun 2013
Location: Barcelona, Spain
Posts: 14
Rep Power: 13
Xulia is on a distinguished road
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!
Xulia is offline   Reply With Quote

Reply

Tags
contact boundary, relaxation, solid-solid, solids4foam


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


All times are GMT -4. The time now is 13:02.