The GMG solver, based on the preconditioned conjugate gradient algorithm, has been developed by the USGS for solving finite-difference based flow models. As opposed to AMG, the preconditioning in GMG is based on a solver method known as geometric multigrid. The GMG solver has been demonstrated to greatly reduce model run times relative to other solvers using a comparable amount of memory. Detailed information about the GMG solver, including comparisons with the AMG solver, can be found in the GMG Linear Equation Solver Package PDF documentation (located in the Manual folder of your VMOD Flex installation media).
The solver parameters for the Geometric Multigrid Solver are described below using excerpts from the GMG Linear Equation Solver Package PDF documentation (located in the Manual folder of your VMOD Flex installation media):
•Max. outer iterations (MXITER): The maximum number of outer iterations. For linear problems, MXITER can be set to 1. For nonlinear problems, MXITER needs to be larger, but rarely more than 100. The maximum number of iterations will only be used if a convergent solution is not reached beforehand.
•Max. inner iterations (IITER): The maximum number of PCG iterations for each linear solution. A value of 100 is typically sufficient. It is frequently useful to specify a smaller number for nonlinear problems so as to prevent an excessive number of inner iterations. This number of iterations will only be used if a convergent solution for the current set of matrices in the "outer" iteration is not reached beforehand.
•Adaptive Damping Control (IADAMP): IADAMP is a flag that controls adaptive damping. If IADAMP = 0, then the value assigned to DAMP is used as a constant damping parameter. If IADAMP ≠ 0, then the value of DAMP is used for the first nonlinear iteration. The damping parameter is adaptively varied on the basis of the head change, using Cooley’s method for subsequent iterations.
•Head change criterion (HCLOSE): After every outer iteration is completed, the solver checks for the maximum change in the solution at every cell. If the maximum change in the solution is below a set convergence tolerance (set here in the working units of feet or metres) then the solution has converged and the solver stops, otherwise a new outer iteration is started. A solution accurate to 0.01 [ft. or m] will normally be sufficient for most problems unless the maximum head change throughout the modeled domain is less than 1 foot or metre. If an appropriate mass balance is not achieved and the number of inner and outer iterations is within the maximums, this value can be decreased by an order of magnitude.
•Residual criterion (RCLOSE): RCLOSE is the residual convergence criterion for the inner iteration. The PCG algorithm computes the l2-norm of the residual and compares it against RCLOSE Typically, RCLOSE is set to the same value as HCLOSE (see below). If RCLOSE is set too high, then additional outer iterations may be required due to the linear equation not being solved with sufficient accuracy. On the other hand, a too restrictive setting for RCLOSE for nonlinear problems may force an unnecessarily accurate linear solution. This may be alleviated with the IITER parameter or with damping.
•Relaxation parameter (RELAX): The RELAX parameter can be used to improve the spectral condition number of the ILU preconditioned system. The value of RELAX should be approximately one. However, the relaxation parameter can cause the factorization to break down. If this happens, then the GMG solver will report an assembly error and a value smaller than one for RELAX should be tried. This item is read only if ISC = 4.
•Upper bound of estimate (NPBOL): IOUTGMG is a flag that controls the output of the GMG solver. The possible values of IOUTGMG and their meanings are as follows: If IOUTGMG = 0, then only the solver inputs are printed. If IOUTGMG = 1, then for each linear solve, the number of PCG iterations, the value of the damping parameter, the l2-norm of the residual, and the max-norm of the head change and its location (column, row, layer) are printed. At the end of a time/stress period, the total number of GMG calls, PCG iterations, and a running total of PCG iterations for all time/stress periods are printed. If IOUTGMG = 2, then the convergence history of the PCG iteration is printed, showing the l2-norm of the residual and the convergence factor for each iteration. IOUTGMG = 3 is the same as IOUTGMG = 1 except output is sent to the terminal instead of the MF2K LIST output file. IOUTGMG = 4 is the same as IOUTGMG = 2 except output is sent to the terminal instead of the MF2K LIST output file.
•Multigrid Preconditioner (ISM): ISM is a flag that controls the type of smoother used in the multigrid preconditioner. The possible values for ISM and their meanings are as follows: If ISM = 0, then ILU(0) smoothing is implemented in the multigrid preconditioner. This smoothing requires an additional vector on each multigrid level to store the pivots in the ILU factorization. If ISM = 1, then Symmetric Gauss Seidel (SGS) smoothing is implemented in the multigrid preconditioner. No additional storage is required for this smoother; users may want to use this option if available memory is exceeded or nearly exceeded when using ISM = 0. Using SGS smoothing is not as robust as ILU smoothing; additional iterations are likely to be required in reducing the residuals. In extreme cases, the solver may fail to converge as the residuals cannot be reduced sufficiently.
•Semicoarsening Control in the Multigrid Preconditioner (ISC): A flag that controls semicoarsening in the multigrid preconditioner. The possible values of ISC and their meanings are given as follows: If ISC = 0, then the rows, columns and layers are all coarsened. If ISC = 1, then the rows and columns are coarsened, but the layers are not. If ISC = 2, then the columns and layers are coarsened, but the rows are not. If ISC = 3, then the rows and layers are coarsened, but the columns are not. If ISC = 4, then there is no coarsening. Typically, the value of ISC should be 0 or 1. In the case that there are large vertical variations in the hydraulic conductivities, then a value of 1 should be used. If no coarsening is implemented (ISC = 4), then the GMG solver is comparable to the PCG2 ILU(0) solver described in Hill (1990) and uses the least amount of memory.
•Damping factor (DAMP): This factor allows the user to reduce (dampen) the head change calculated during each successive outer iteration. For most "well posed" and physically realistic groundwater flow problems, the dampening factor of one will be appropriate. This parameter can be used to make a non-convergent (oscillating or divergent) solution process more stable such that a solution will be achieved. This is done by decreasing the damping factor to a value between 0 and 1 (only rarely < 0.6). This parameter is similar to "acceleration parameters" used in other solvers