
PCG


The Preconditioned ConjugateGradient package is used to solve the finite difference equations in each step of a MODFLOW stress period.


•Harbaugh, A.W., Banta, E.R., Hill, M.C., and McDonald, M.G., 2000, MODFLOW2000, the U.S. Geological Survey modular groundwater model  User guide to modularization concepts and the GroundWater Flow Process: U.S. Geological Survey OpenFile Report 0092, 121 p.
•Harbaugh, A.W., 2005, MODFLOW2005, the U.S. Geological Survey modular groundwater model  the GroundWater Flow Process: U.S. Geological Survey Techniques and Methods 6A16. https://doi.org/10.3133/tm6A16
•release.txt
•ofr0092errata.pdf
•readme_PCG.txt
•RevisedMF2005Input.pdf 

Solvers


•MODFLOW2000
•MODFLOW2005
•MODFLOWLGR
•MODFLOWCFP
•MODFLOWNWT
•MODFLOWOWHM 

If the Lake package is used, more iterations may be required.

Input Instructions
Input to the Preconditioned ConjugateGradient (PCG) Package is read from the file that is type "PCG" in the name file. In MODFLOW2000, all numeric variables are free format if the option “FREE” is specified in the Basic Package input file; otherwise, all the variables have 10character fields. In MODFLOW2005, all numeric variables are always free format.
FOR EACH SIMULATION

Data Set 0

[#Text]
Item 0 is optional—“#” must be in column 1. Item 0 can be repeated multiple times.
Text—is a character variable (199 characters) that starts in column 2. Any characters can be included in Text. The “#” character must be in column 1. Except for the name file, lines beginning with # are restricted to these first lines of the file. Text is printed when the file is read.


Data Set 1


MXITER ITER1 NPCOND


MXITER ITER1 NPCOND [IHCOFADD]

MXITER—is the maximum number of outer iterations—that is, calls to the solution routine. For a linear problem MXITER should be 1, unless more than 50 inner iterations are required, when MXITER could be as large as 10. A larger number (generally less than 100) is required for a nonlinear problem.

ITER1—is the number of inner iterations. For nonlinear problems, ITER1 usually ranges from 10 to 30; a value of 30 will be sufficient for most linear problems.

NPCOND—is the flag used to select the matrix conditioning method:
•1—is for Modified Incomplete Cholesky (for use on scalar computers)
•2—is for Polynomial (for use on vector computers or to conserve computer memory) 
IHCOFADD—is a flag that determines what happens to an active cell that is surrounded by dry cells:
•0—cell converts to dry regardless of HCOF value. This is the default, which is the way PCG2 worked prior to the addition of this option.
•Not 0—cell converts to dry only if HCOF is 0 (no headdependent stresses or storage terms) )
(MODFLOW2005 and MODFLOWNWT only.



Data Set 2


HCLOSE RCLOSE RELAX NBPOL IPRPCG MUTPCG DAMP


HCLOSE RCLOSE RELAX NBPOL IPRPCG MUTPCG DAMPPCG [DAMPPCGT]

HCLOSE—is the head change criterion for convergence, in units of length. When the maximum absolute value of head change from all nodes during an iteration is less than or equal to HCLOSE, and the criterion for RCLOSE is also satisfied (see below), iteration stops.

RCLOSE—is the residual criterion for convergence, in units of cubic length per time. The units for length and time are the same as established for all model data. (See LENUNI and ITMUNI input variables in the DiscretizationsFile.) When the maximum absolute value of the residual at all nodes during an iteration is less than or equal to RCLOSE, and the criterion for HCLOSE is also satisfied (see above), iteration stops.
For nonlinear problems, convergence is achieved when the convergence criteria are satisfied for the first inner iteration.

RELAX—is the relaxation parameter used with NPCOND = 1. Usually, RELAX = 1.0, but for some problems a value of 0.99, 0.98, or 0.97 will reduce the number of iterations required for convergence. RELAX is not used if NPCOND is not 1.

NBPOL—is used when NPCOND = 2 to indicate whether the estimate of the upper bound on the maximum eigenvalue is 2.0, or whether the estimate will be calculated. NBPOL = 2 is used to specify the value is 2.0; for any other value of NBPOL, the estimate is calculated. Convergence is generally insensitive to this parameter. NBPOL is not used if NPCOND is not 2.

IPRPCG—is the printout interval for PCG. If IPRPCG is equal to zero, it is changed to 999. The maximum head change (positive or negative) and residual change are printed for each iteration of a time step whenever the time step is an even multiple of IPRPCG. This printout also occurs at the end of each stress period regardless of the value of IPRPCG.

MUTPCG—is a flag that controls printing of convergence information from the solver:
•0—is for printing tables of maximum head change and residual each iteration
•1—is for printing only the total number of iterations
•2—is for no printing
•3—is for printing only if convergence fails 
DAMP (MODFLOW2000)—is the damping factor. It is typically set equal to one, which indicates no damping. A value less than 1 and greater than 0 causes damping. DAMP does not affect inner iterations; instead, it affects outer iterations.

DAMPPCG (MODFLOW2005, MODFLOWCFP, MODFLOWNWT, and MODFLOWLGR) is the damping factor. It is typically set equal to one, which indicates no damping. A value less than 1 and greater than 0 causes damping.
>0  applies to both steadystate and transient stress periods.
<0  applies only to steadystate stress periods. The absolute value is used as the damping factor.

DAMPPCGT (MODFLOW2005, MODFLOWCFP, MODFLOWNWT, and MODFLOWLGR) is the damping factor for transient stress periods. DAMPPCGT is enclosed in brackets indicating that it is an optional variable that only is read when DAMPPCG is specified as a negative value. If DAMPPCGT is not read, then the single damping factor, DAMPPCG, is used for both transient and steadystate stress periods.


