Strongly Implicit Procedure Package (SIP)
©1995, 1996, Richard B. Winston
Please Register
Last modified on Wednesday, January 31, 1996 - 6:55:30 PM
Skip forward to Input instructions for the Strongly Implicit Procedure Package.
The original instructions for the Strongly Implicit Procedure Package are on page 12-30 of McDonald and Harbaugh (1988).
Introduction: The Strongly Implicit Procedure Package is one of several options for solving the finite difference approximation of the fundamental equations governing groundwater flow in MODFLOW. Other options include the Slice-Successive Overrelaxation Package and the Preconditioned Conjugate Gradient Package. The solutions obtained with any of these solvers should be similar although the time required to find the solution and the amount of memory used may differ. If you wish to use the rewetting capability of BCF2 or BCF3, the Preconditioned Conjugate Gradient Package is usually the best choice. The Slice-Successive Overrelaxation Package is usually inappropriate when the rewetting capability is active. The Strongly Implicit Procedure can be used with rewetting capability although the Preconditioned Conjugate Gradient Package is usually better for that purpose.
There are several parameters that can be varied in the Strongly Implicit Procedure to change how rapidly it converges to a solution. Unfortunately, we don't know ahead of time which values of these parameters will lead to the most rapid solution. These parameters are
- WSEED; On an initial trial run, it is probably best to let MODFLOW calculate WSEED. On subsequent runs, WSEED can be varied to improve convergence speed.
- If head changes between iterations are too large, the model may show frequent oscillations. Make WSEED larger (usually by a factor of 2 to 10) and try again.
- If the head changes between iterations are too small, the model may approach the solution monotonically. Make WSEED smaller (usually by a factor of 2 to 10) and try again.
Usually it is best to adjust WSEED to improve convergence speed rather than ACCL or NPARM.
- ACCL; This must be set > 0 and usually is set at 1. If the model diverges from the solution or shows frequent oscillation, ACCL may be too high. If the model converges monotonically toward the solution, ACCL may be too low. In the latter case, the program may terminate execution prematurely. The program stops when the maximum change in head between successive iterations is lower than some user-defined value. If ACCL is too low, the differences in head between successive iterations will also be low even if the computed heads are far from ideal.
- NPARM; within MODFLOW, one variable must take on a number of values during each iteration. NPARM sets the number of values it takes. 5 is generally enough
Once you have obtained a set of parameters for the Strongly-Implicit Procedure that work well, they will probably also work well with most variations of the model.
Go back to Contents.
All input parameters should be right justified
- Line 1
- Spaces 1-10, MXITER, Integer, Maximum number of iterations per time step. 50 is usually enough.
- Spaces 11-20, NPARM, Integer, Number of "iteration parameters" used. 5 is usually enough
- Line 2
- Spaces 1-10, ACCL, Real Number, The "acceleration parameter" is usually set at 1.
- Spaces 11-20, HCLOSE, Real Number, Head change criterion for convergence
- Spaces 21-30, IPCALC, Integer,
- If IPCALC=0, the user must enter a value for WSEED
- If IPCALC=1, the program calculates WSEED
- Spaces 31-40, WSEED, Real Number, seed for calculating iteration parameters
- Spaces 41-50, IPRSIP, Integer, printout interval
Go back to Contents.
On each time step MODFLOW will go through a series of iterations as it approaches an acceptable solution. Sometimes, however, the program may enter an infinite loop. To prevent this, MXITER forces the program to terminate after a number of iterations. If this happens, MODFLOW has not reached a solution and the results should not be accepted as a good estimate of the groundwater flow. Instead the input needs to be modified to avoid this problem. Often the problem is with the conceptual model. You should go back and check that your conceptual model is reasonable. Drying and rewetting of cells with the BCF2 or BCF3 packages is also a frequent culprit. Usually 50 iterations is enough to reach an acceptable solution.
Go back to Input instructions for the Strongly Implicit Procedure Package.
Number of "iteration parameters" used. 5 is usually enough. Although this parameter can be varied, you should probably try changing WSEED or ACCL first. If NPARM is too small, speed and/or accuracy may be adversely affected.
Go back to Input instructions for the Strongly Implicit Procedure Package.
The "acceleration parameter" is usually set at 1. It governs how fast the model approaches the solution. If too high, the model may overshoot and either diverge or show frequent oscillations. If too low, the program will approach the solution monotonically and may not reach a sufficiently accurate solution before the program stops. You should probably try changing WSEED before you try changing ACCL. As a last resort, you could try changing NPARM.
Go back to Input instructions for the Strongly Implicit Procedure Package.
When the maximum change in head between two iterations is less than HCLOSE, the program will assume that it has obtained a sufficiently accurate solution and stop. Sometimes, this criterion can be incorrect (see ACCL). It is always a good idea to examine the water budget for each time step. A large error in the water budget (>1%) could indicate that the program terminated prior to reaching a solution. It could also be a problem with the General-Head Boundary Package or the Stream Package.
Go back to Input instructions for the Strongly Implicit Procedure Package.
IPCALC is used to indicate whether or not the user will enter a value for WSEED.
- If IPCALC=0, the user must enter a value for WSEED
- If IPCALC=1, the program calculates WSEED
Go back to Input instructions for the Strongly Implicit Procedure Package.
Seed for calculating iteration parameters. This will be ignored unless IPCALC = 1. Usually you should try to adjust convergence speed by adjusting WSEED rather than ACCL or NPARM. On an initial trial run, it is probably best to let MODFLOW calculate WSEED. On subsequent runs, WSEED can be varied to improve convergence speed.
- If head changes between iterations are too large, the model may diverge or show frequent oscillations. Make WSEED larger (usually by a factor of 2 to 10) and try again.
- If the head changes between iterations are too small, the model may approach the solution monotonically. Make WSEED smaller (usually by a factor of 2 to 10) and try again.
Go back to Input instructions for the Strongly Implicit Procedure Package.
Printout interval. At the end of every IPRSIP iterations, the maximum head change between iterations will be printed. Thus, if IPRSIP is 3, the maximum head change between iterations will be printed at the end of the 3'rd, 6'th, 9'th, etc. iterations. If IPRSIP is set to 0 it will be changed to 999. The maximum head change is also printed at the end of each stress period regardless of the value of IPRSIP
Go back to Input instructions for the Strongly Implicit Procedure Package.
Go back to Contents.
©1995, 1996, Richard B. Winston,
rwinsto@lsuvm.sncc.lsu.edu
Dept. of Geology and Geophysics
Louisiana State University
Baton Rouge, La 70803
U.S.A.
504-388-2337
Fax 504-388-2302
http://scribe.geol.lsu.edu/rbwinston.html
ftp://aapg.geol.lsu.edu/pub/winston