The Geometric Multigrid (GMG) package is sometimes preferable to the PCG solver for large, steady state model because it can be faster and in some cases it can reach a satisfactory solution when other solvers do not. It requires more memory than the PCG package. The pane for this package is on the MODFLOW Packages and Programs dialog box under Solvers. The pane has two tabs: Control and Print and Damping and Relax.
The following items are set on the Control and Print tab of the GMG: Geometric Multigrid Package pane.
Residual convergence criterion (RCLOSE) is the residual convergence criterion for the inner iteration. The PCG algorithm computes the l2norm 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.
Maximum number of inner iterations (IITER) is 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. If the Lake package is used, more iterations may be required.
Head change convergence criterion (HCLOSE) is the head change convergence criterion for nonlinear problems. After each linear solve (inner iteration), the maxnorm of the head change is compared against HCLOSE. HCLOSE can be set to a large number for linear problems; HCLOSE is ignored if MXITER=1.
Maximum number of outer iterations (MXITER) is 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.
Multigrid preconditioner smoother (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 GaussSeidel (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.
GMG Output (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 l2norm of the residual, and the maxnorm 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 l2norm 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.
Print maximum head change values (IUNITMHC) controls output of maximum head change values:
•If IUNITMHC = 0, maximum head change values are not written to an output file.
•If IUNITMHC > 0, maximum head change values are written to an output file.
The following variables are on the Damping and Relax tab of the GMG: Geometric Multigrid Package pane.
Damping parameter (DAMP) is the value of the damping parameter. For linear problems, a value of 1.0 should be used. For nonlinear problems, a value less than 1.0 but greater than 0.0 may be necessary to achieve convergence. A typical value for nonlinear problems is 0.5. Damping also helps control the convergence criterion of the linear solve to alleviate excessive PCG iterations.
Adaptive damping method (IADAMP) is a flag that controls adaptive damping. The possible values of IADAMP and their meanings are as follows:
•If IADAMP = 0, then the value assigned to DAMP is used as a constant damping parameter.
•If IADAMP = 1, 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 as described in Mehl and Hill (2001), for subsequent iterations.
•If IADAMP = 2, the relative reduced residual damping method documented in Mehl and Hill (2001) and modified by Banta (2006) is used.
When IADAMP is specified as 2 and the value specified for DAMP is less than 0.5, the closure criterion for the inner iterations (DRCLOSE) is assigned simply as RCLOSE. When DAMP is between 0.5 and 1.0, inclusive, or when IADAMP is specified as 0 or 1, DRCLOSE is calculated according to equation 20 on p. 9 of Wilson and Naff (2004).
Maximum damping value (DUP) is the maximum damping value that should be applied at any iteration when the solver is not oscillating; it is dimensionless. An appropriate value for DUP will be problem-dependent. For moderately nonlinear problems, reasonable values for DUP would be in the range 0.5 to 1.0. For a highly nonlinear problem, a reasonable value for DUP could be as small as 0.1. When the solver is oscillating, a damping value as large as 2.0*DUP may be applied.
Minimum damping value (DLOW) is the minimum damping value to be generated by the adaptive-damping procedure; it is dimensionless. An appropriate value for DLOW will be problem-dependent and will be smaller than the value specified for DUP. For a highly nonlinear problem, an appropriate value for DLOW might be as small as 0.001. Note that the value specified for the next variable, CHGLIMIT, could result in application of a damping value smaller than DLOW.
Maximum allowed head change (CHGLIMIT) is the maximum allowed head change at any cell between outer iterations; it has units of length. The effect of CHGLIMIT is to determine a damping value that, when applied to all elements of the head-change vector, will produce an absolute maximum head change equal to CHGLIMIT.
Semicoarsening control (ISC) is 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 (see Remark 9 in “CoarseGrid Correction” section of Wilson and Naff (2004)). 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.
Relaxation parameter (RELAX) is a relaxation parameter for the ILU preconditioned conjugate gradient method. 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.