Navigation:  Numerical Modeling Workflow - Finite Difference Grids > Translation Settings > MODFLOW > Solvers >


The PCG solver (PCG2, in MODFLOW-SURFACT) uses the preconditioned conjugate-gradient method to solve the simultaneous equations produced by the model. Linear and non-linear flow conditions may be simulated. PCG includes two preconditioning options: modified incomplete Cholesky preconditioning, which is efficient on scalar computers; and polynomial preconditioning, which requires less computer storage and, with computer specific modifications, is most efficient on vector computers. Convergence of the solver is determined using both the head-change and residual criteria. Non-linear problems are solved using the Picard iterations. The PCG Package is described in USGS Water-Resources Investigations Report 90-4048 (Hill, 1997).


The PCG solver works on a two-tier approach to a solution at one time step, inner and the outer iterations. Outer iterations are used to vary the pre-conditioned parameter matrix in an approach toward the solution. An outer iteration is where the hydrogeologic parameters of the flow system are updated (i.e., transmissivity, saturated thickness, storativity) in the preconditioned set of matrices. The inner iterations continue until the user-defined maximum number of inner iterations are executed, or the final convergence criteria are met. The outer iterations continue until the final convergence criteria are met on the first inner iteration after an update.


The following is a description of the solver parameters for the PCG method:


Maximum Number of Outer Iterations: [Default = 25] This parameter provides an upper limit on the number of outer iterations to be performed. The maximum number of iterations will only be used if a convergent solution is not reached beforehand. Twenty-five iterations should be adequate for most problems. However, if the maximum number of outer iterations is reached and an appropriate mass balance error is not achieved, this value should be increased.

Maximum Number of Inner Iterations: [Default = 10] This parameter provides an upper limit on the number of inner iterations to be performed. 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. Ten inner iterations should be adequate for most problems. More than ten iterations will not usually improve the solution, as the solution is updated again when it returns to the outer iterations.

Head Change Criterion for Convergence: [Default = 0.01] After each outer iteration has 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 feet or meters) then the solution has converged and the solver stops, otherwise a new outer iteration starts.

A solution accurate to 0.01 [ft. or m] will normally be sufficient for most problems, unless the maximum head difference across the modeled domain is less than one foot or meter. If an appropriate mass balance is not achieved and the number of inner and outer iterations are within the maximums declared above, this value can be decreased by an order of magnitude, e.g. 0.001.

Residual Criterion for Convergence: [Default = 0.01] While the head change criterion is used to judge the overall solver convergence, the residual criterion is used to judge the convergence of the inner iterations of the solver. If the maximum absolute value of the residual at all nodes is less than the tolerance specified here (units of L3/T) then the solver will proceed to the next outer iteration.


If you notice that only a few inner iterations are being performed for all outer iterations, and an appropriate mass balance is not achieved, the Residual Criterion value can be decreased by one or more orders of magnitude.


Note: The residual criterion is unit-dependent. The default value of 0.01 is sufficient if your length units are feet or metres and your time units are seconds. If your time units are not seconds, you should multiply the default value by the number of seconds in your time unit (e.g. use a residual criterion of 0.01 * 86400, if your time unit is days).


Damping Factor: [Default = 1] 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 damping 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 the "acceleration parameters" used in other solvers.

Printout Interval: [Default =10] The printout interval is the number of iterations after which the maximum head change (and residual) of the solution is written to the listing (.LST) file.

If the Preconditioning Method is set to Cholesky, the Relaxation parameter can be set. Although the default is 1, in some cases a value of 0.97-0.99 may reduce the number of iterations required for convergence.






Page url: