|
[Sponsors] |
July 16, 2010, 13:14 |
GAMG hexa vs. tetrahedron meshes
|
#1 |
Senior Member
Claus Meister
Join Date: Aug 2009
Location: Wiesbaden, Germany
Posts: 241
Rep Power: 18 |
Hello Foamers!
Has anybody experience to set up GAMG for hexa or tetraeder? On tet, Do I have to increase, for instance, smoother iteration or merge levels? Cheers in advance |
|
July 16, 2010, 14:23 |
|
#2 |
Senior Member
Martin
Join Date: Oct 2009
Location: Aachen, Germany
Posts: 255
Rep Power: 22 |
Hi Claus,
in my opinion it doesn't matter for GAMG if you are using hexas or tetras. A good choice of settings for my projects is: Code:
solvers { U // linear equation system solver for U { solver smoothSolver; // solver type smoother GaussSeidel; // smoother type tolerance 1e-06; // solver finishes if either absolute relTol 0.01; // tolerance is reached or the relative // tolerance here nSweeps 1; // setting for smoothSolver maxIter 100; // limitation of iterations number } pd // linear equation system solver for pd { solver GAMG; // very efficient multigrid solver tolerance 1e-07; // solver finishes if either absolute relTol 0.001; // tolerance is reached or the relative // tolerance here minIter 3; // a minimum number of iterations maxIter 100; // limitation of iterions number smoother DIC; // setting for GAMG nPreSweeps 1; // 1 for pd, set to 0 for all other! nPostSweeps 2; // 2 is fine nFinestSweeps 2; // 2 is fine scaleCorrection true; // true is fine directSolveCoarsestLevel false; // false is fine cacheAgglomeration on; // on is fine; set to off, if dynamic // mesh refinement is used! nCellsInCoarsestLevel 500; // 500 is fine, // otherwise sqrt(number of cells) agglomerator faceAreaPair; // faceAreaPair is fine mergeLevels 1; // 1 is fine } } - nPreSweeps must be 0 for other equation systems than pressure - to use the minIter option you must patch GAMG sources in most OpenFOAM versions - cacheAgglomeration must be switched off when using dynamic mesh refinement Playing with the options don't give remarkable speedup for my problems. Martin |
|
July 17, 2010, 06:19 |
|
#3 |
Senior Member
Claus Meister
Join Date: Aug 2009
Location: Wiesbaden, Germany
Posts: 241
Rep Power: 18 |
Thanks MartinB, the informations are valueable for me! However, there is one question concernins the option nCellsInCorseLeve: Why the sqrt of the cells? Have you an paper or something like that?
Cheers |
|
July 17, 2010, 07:03 |
|
#4 |
Senior Member
Martin
Join Date: Oct 2009
Location: Aachen, Germany
Posts: 255
Rep Power: 22 |
Hi Claus,
I found the hint for sqrt(#cells) in the forum some time ago and made a note in my fvSolution template without paying too much attention to it... This might be an interesting thread (especially the links to the PDFs), if you want to use some variants of AMG: http://www.cfd-online.com/Forums/ope...41dev-svn.html However it could be some work to integrate these solvers and preconditioners in the newer OpenFOAM versions. Martin |
|
July 19, 2010, 09:59 |
|
#5 |
Senior Member
Claus Meister
Join Date: Aug 2009
Location: Wiesbaden, Germany
Posts: 241
Rep Power: 18 |
Do you probaly mean: If I have n processors then I have to take (total no. cells)^(1/n)?
|
|
July 19, 2010, 10:30 |
|
#6 |
Senior Member
Martin
Join Date: Oct 2009
Location: Aachen, Germany
Posts: 255
Rep Power: 22 |
I mean: sqrt(1000000) = 1000
But: I never tested it in more detail... my value of 500 was fine, changing it had no big influence on my computation speed. You can test it out: start your simulation, change the value after a few iterations and check the new iteration times. Then make another change and check again... Many other posts in the forum prefer values of 10 to 30 for nCellsInCoarsestLevel... http://www.cfd-online.com/OpenFOAM_D...tml?1162930507 Martin |
|
September 1, 2013, 06:54 |
|
#7 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
FYI: For future reference, the link on the previous post is for the following thread in the new forum format: http://www.cfd-online.com/Forums/ope...rsus-iccg.html
|
|
September 26, 2018, 11:49 |
|
#8 |
New Member
Join Date: Aug 2018
Posts: 9
Rep Power: 8 |
Hi,
Thank you for your assistance. I am wondering: where do these values stem from? Specifically, why does nPreSweeps need to be 1 for pd? -Mimi |
|
September 26, 2018, 18:06 |
|
#9 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Quick answer: I can never remember off-hand which equations have a symmetric A matrix and which ones have an asymmetric A matrix... but the "nPreSweeps" has to be set to 1 probably because the "pd" (pressure) equation is the opposite type of symmetry from the other equations.
__________________
|
|
September 27, 2018, 17:44 |
|
#10 |
New Member
Join Date: Aug 2018
Posts: 9
Rep Power: 8 |
Thanks for responding. I have an easier simpler question. What encompasses one iteration? In the log file, I'll get something like "GAMG: Solving for pd, Initial residual = 3.833447548e-13, Final residual = 3.908110229e-15, No Iterations 2."
What are the two iterations? Is that one V cycle? multiple V cycles? I can't seem to find a good answer anywhere. -Mimi |
|
September 27, 2018, 18:14 |
|
#11 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Quick answer: I don't know what a V-cycle technically is, but the number of iterations is how many iterations it does to try and solve the "A*x=b" equation.
It (usually) does not include how many intermediate passes it does within the matrix solver, e.g. pre/post-sweeps are not accounted by the number of iterations. In foam-extend, you can find:
|
|
September 27, 2018, 18:37 |
|
#12 |
New Member
Join Date: Aug 2018
Posts: 9
Rep Power: 8 |
Thanks for your help! So it looks like one iteration IS one V-cycle. The V Cycle goes from fine to coarse and then fine again.
|
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
pisoFoam floating point error - GAMG | sErik | OpenFOAM Running, Solving & CFD | 8 | January 14, 2010 11:43 |
Hexa Block meshes in ANSYS Meshing? | siw | ANSYS Meshing & Geometry | 3 | July 31, 2009 11:40 |
MRFSimpleFoam amp cyclic patches | david | OpenFOAM Running, Solving & CFD | 36 | October 21, 2008 22:55 |
Differences between serial and parallel runs | carsten | OpenFOAM Bugs | 11 | September 12, 2008 12:16 |
Hexa meshes with ICEM CFD 5.1 | Tim Guo | CFX | 8 | June 29, 2005 10:27 |