|
[Sponsors] |
January 26, 2012, 05:40 |
Parameters for multigrid solver
|
#1 |
New Member
Join Date: Jan 2012
Location: Germay - Stuttgart
Posts: 21
Rep Power: 0 |
Hello!
I'm working with OpenFOAM-1.6-ext since last October. My task is to study the numerical methods like the ode solvers and matrix solvers. I've already finished to learn the theory about all methods and now I have to test them. For the tests I'm solving a steady state flame with reactingFoam. Now I tried to solve the matrices with the xxAMG solvers and I'm wondering what all the parameters are saying. I got them with some debugging voodoo and I'm also wondering if there are any more parameters which are not necessary, but maybe useful. For the GAMG solver I already got the parameters from this thread. And of course I read the linked two papers. On that basis I tried to get the MPEAMG, RREAMG and FPEAMG solvers running. I managed them to get started, but I don't know what most parameters are doing. Can anybody explain the following parameters where a question or no comment is posted. And maybe give some rule of thumb for their values? The not indented parameters are from GAMG, the fist block of indented parameters is from MPEAMG and the second indented block is additional necessary for FPEAMG. Code:
U xxEAMG { minIter 0; //tells you how many solver sweeps will be forced without checking the convergence tolerance: usually zero maxIter 500; // is this the max number of V-/W-/F- cylces in one time step? tolerance 1e-6; // evident relTol 1e-1; //evident cycle V-cycle; //evident, possible: V/W/F nMaxLevels 5; // scale 5; // policy AAMG; //possible: AAMG PAMG SAMG, but what do they do? groupSize 2; // minCoarseEqns 5; // kDimension 5; // nSmoothingSteps 2; // mFactor 2; // smoother GaussSeidel; //evident nPreSweeps 0; // nPostSweeps 2; // nFinestSweeps 2; // scaleCorrection true; // directSolveCoarsest false; //evident cacheAgglomeration true; // nCellsInCoarsestLevel 10; // agglomerator faceAreaPair; // mergeLevels 1; //evident }; HaZe |
|
January 26, 2012, 05:51 |
|
#2 | |
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,285
Rep Power: 34 |
Quote:
|
||
January 27, 2012, 06:56 |
|
#3 |
New Member
Join Date: Jan 2012
Location: Germay - Stuttgart
Posts: 21
Rep Power: 0 |
I found some comments in older source code (blue) from OF1.5-dev on the net, but there are still some questions left (green).
Any suggestions for the numeric values, especially in view of their dependencies? Code:
U xxEAMG { minIter 0; //tells you how many solver sweeps will be forced without checking the convergence tolerance: usually zero maxIter 500; // is this the max number of V-/W-/F- cylces in one time step? tolerance 1e-6; // evident relTol 1e-1; //evident cycle V-cycle; //evident, possible: V/W/F nMaxLevels 5; // Maximum coarse levels to be produced. Sounds too small for group size of 2 . scale 5; //what is scaled? policy AAMG; //possible: AAMG PAMG SAMG, but what do they do? AAMG = Agglomoration based additive corrective. Should be default. PAMG = I am not sure, I never used openFOAM. SAMG = selective AMG like classical AMG or AMG based on Stuben's work. Look for Stuben and AMG for it. groupSize 2; // Two equations will be merged minCoarseEqns 5; // When coarse level equations are less than this direct solver will be used. Minimum number of coarse level equations. kDimension 5; //Krylov space dimension (are the equations on the coarsest level solved by Krylov-Methods? Is it possible to choose the method?) nSmoothingSteps 2; //number of smoothing steps before projection mFactor 2; //magnification factor (what's that?) smoother GaussSeidel; //evident nPreSweeps 0; //number of pre-sweeps (but what is meant by sweep?) nPostSweeps 2; //number of post-sweeps nFinestSweeps 2; // scaleCorrection true; // Corrections are sometimes scaled to increase convergence. phi_new = phi_old + alpha * corr directSolveCoarsest false; //evident cacheAgglomeration true; // save the aggomoration information nCellsInCoarsestLevel 10; // should be same as minCoarseEqns ??? agglomerator faceAreaPair; // Apply aggomoration based of face area rather than matrix coefficients. If done this way one can save the agglomoration and weights. mergeLevels 1; //(evident) (what's the difference to groupeSize?) }; |
|
January 28, 2012, 03:05 |
|
#4 | |
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,285
Rep Power: 34 |
Quote:
I am thinking that since various multigrids are implemented by various people there might be overlap of some parameters. About this: maxIter 500; // is this the max number of V-/W-/F- cylces in one time step? This value look to be ridiculously high. Fluent's default value is 30 and perhaps straccm+ default is 50 or also 30. It does not take this many cycles to reach there. Today i finished implementing coupled multigrid for pressure based coupled solver. It normally takes around 10 cycles to drop error to 1E-5 levels using V cycle. And this problem is supposed to be very difficult to converge. Last edited by arjun; January 28, 2012 at 07:03. |
||
Tags |
fpeamg, gamg, mpeamg, multigrid, rreamg |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Creating New Solver: For particle-laden compressible jets | sankarv | OpenFOAM Running, Solving & CFD | 17 | December 3, 2014 20:41 |
Creating New Solver: For particle-laden compressible jets | sankarv | OpenFOAM | 0 | April 4, 2010 19:06 |
exper parameters on solver | laura | CFX | 1 | January 9, 2009 08:50 |
why the solver reject it? Anyone with experience? | bearcat | CFX | 6 | April 28, 2008 15:08 |
Relaxation and Solver Parameters | norbinou | Siemens | 3 | September 25, 2007 02:38 |