Solver packages (PCG, SOR, SIP, DSP)¶
One of the following solvers must be specified for a model run. All arguments for the solver are non-spatial values.
You can check whether a Modflow run converged or not with
res = mf.converged()
PCG package¶
The preconditioned conjugate-gradient package can be enabled with
mf.setPCG(MXITER, ITERI, NPCOND, HCLOSE, RCLOSE, RELAX, NBPOL, DAMP)
where
- MXITER
is the maximum number of outer iterations;
- ITERI
is the number of inner iterations;
- NPCOND
1 - Modified Incomplete Cholesky, 2 - Polynomial matrix conditioning method;
- HCLOSE
is the head change criterion for convergence;
- RCLOSE
is the residual criterion for convergence;
- RELAX
is the relaxation parameter used with NPCOND = 1;
- NBPOL
indicates whether the estimate of the upper bound on the maximum eigenvalue is 2.0 and
- DAMP
is the damping factor.
SOR package¶
The slice-successive overrelaxation package can be enabled with
mf.setSOR(MXITER, ACCL, HCLOSE)
where
- MXITER
is the maximum number of iterations allowed in a time step;
- ACCL
is the acceleration variable and
- HCLOSE
the head change criterion for convergence.
SIP package¶
The strongly implicit procedure package can be enabled with
mf.setSIP(MXITER, NPARAM, ACCL, HCLOSE, IPCALC, WSEED)
where
- MXITER
is the maximum number of times through the iteration loop in one time step;
- NPARAM
is the number of iteration variables to be used;
- ACCL
is the acceleration variable;
- IPCALC
0 - the seed entered by the user will be used, 1 - the seed will be calculated at the start of the simulation, and
- WSEED
is the seed for calculating iteration variables.
DSP package¶
The direct solver package can be enabled with
mf.setDSP(ITMX, MXUP, MXLOW, MXBW, IFREQ, ACCL, HCLOSE)
where
- ITMX
is the maximum number of iterations each time step;
- MXUP
is the maximum number of equations in the upper part of the equations to be solved;
- MXLOW
is the maximum number of equations in the lower part of equations to be solved;
- MXBW
is the maximum band width plus 1 of the [AL] matrix;
- IFREQ
is flag indicating the frequency at which coefficients in [A] change;
- ACCL
is a multiplier for the computed head change for each iteration and
- HCLOSE
is the head change closure criterion.