
[Sponsors] 
January 26, 2012, 04: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 OpenFOAM1.6ext 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 1e6; // evident relTol 1e1; //evident cycle Vcycle; //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, 04:51 

#2  
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 899
Rep Power: 24 
Quote:


January 27, 2012, 05: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.5dev 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 1e6; // evident relTol 1e1; //evident cycle Vcycle; //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 KrylovMethods? 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 presweeps (but what is meant by sweep?) nPostSweeps 2; //number of postsweeps 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, 02:05 

#4  
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 899
Rep Power: 24 
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 1E5 levels using V cycle. And this problem is supposed to be very difficult to converge. Last edited by arjun; January 28, 2012 at 06:03. 

Tags 
fpeamg, gamg, mpeamg, multigrid, rreamg 
Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Creating New Solver: For particleladen compressible jets  sankarv  OpenFOAM Running, Solving & CFD  17  December 3, 2014 19:41 
Creating New Solver: For particleladen compressible jets  sankarv  OpenFOAM  0  April 4, 2010 18:06 
exper parameters on solver  laura  CFX  1  January 9, 2009 07:50 
why the solver reject it? Anyone with experience?  bearcat  CFX  6  April 28, 2008 14:08 
Relaxation and Solver Parameters  norbinou  Siemens  3  September 25, 2007 01:38 