What is it?
The outer (nonlinear or Picard) loop is where nonlinear (head-dependent) terms are solved prior to entering the inner loop to solve the linear matrix of equations for groundwater head. This tab gives the user control over parameters that determine the speed to reach an outer solution and the apparent accuracy of that solution. The categories of parameters (detailed below) include:- Outer Solution Closure Criteria
- Damping
- Under-Relaxation
- Backtracking
- Nonlinear Acceleration
- Additional SIP Solver Parameters
Outer Solution Closure Criteria
These parameters control when the solver exits the Outer loop and include the following:- Max Iteration [integer]: The maximum number of times through the outer loop in one time step. For linear problems only one outer iteration should be needed. [default 100, range 1-1000]
- Head Tolerance [decimal, meters]: The maximum head change criterion for convergence of outer iterations. When the maximum absolute value of the head change at all nodes during an iteration is less than or equal to the head tolerance, iteration stops [default 0.001; range 1e-5 to 1e-1].
- Flux Tolerance [decimal, cubic meter per day]: The maximum allowable residual between successive outer iterations for convergence [default 0.1; range 0.1-1000] Note: when using the GMG solver, if enhanced damping is used with a damping factor less than 0.5, then the flux tolerance is used for inner closure. Otherwise the closure criteria is calculated based on the given flux tolerance, the previous residuals, and the damping factor (see equation 20 on p. 9 of Wilson and Naff (2004)).
Damping
Control of the problem damping applied when updating a nonlinear problem. In general, damping determines how much of the head changes vector Δj shall be applied to the hydraulic head vector hj in Picard iteration j: hj = hj-1 +θΔj, where θ is the damping parameter.- Damping Factor [decimal; expandable]: The value (or upper limit) for the damping parameter θ (γ for IMS6) of the nonlinear solution [default 1 (no damping); range 0.0001-1]
- Damping Type: This determines the damping scheme used in the PCGN or GMG solvers. 'Constant' [default] employs ordinary damping and a constant value of damping parameter θ = damping factor will be used throughout the Picard iteration.
For the PCGN solver, 'Adaptive' damping (ADAMP = 1) changes the damping parameter θ in response to the difficulty the nonlinear solver encounters in solving a given problem (increasing θ should the convergence of the Picard iteration proceed satisfactorily, and otherwise decreasing θ). 'Enhanced' damping (ADAMP = 2) increases θ at a specified rate, provided that the Picard iteration is proceeding satisfactorily.
For the GMG solver, 'Adaptive' damping (IADAMP = 1) uses the damping factor for θ in the first nonlinear iteration, and adaptively vary the value for subsequent iterations based on the head change, using Cooley’s method as described in Mehl and Hill (2001). 'Enhanced' damping (IADAMP = 2) applies the relative reduced residual damping method as modified by Banta (2006).
- Lower Limit [decimal]: This is the lower limit for adaptive damping or, for the PCGN enhanced damping, the starting value [default 0.01; range 0.0001 to 0.5]
- Adaptive Rate Change [decimal]: In the PCGN solver this rate (RATE_D) sets the adaptive damping parameter recovery rate. Under enhanced damping, it is the rate of damping parameter increase [default 0.1; 0.01-0.1].
- Head Change Limit [checkbox, decimal]: This variable is used under PCGN adaptive damping or GMG enhanced damping to limit the maximum head change applicable to the updated hydraulic heads in a Picard iteration. It is implemented by resetting the damping parameter to the ratio of the head change limit to the maximum head change.
Under-Relaxation
Under-relax. Method: The nonlinear under-relaxation scheme to be used.Delta-bar-delta under-relaxation: These parameters control under-relaxation when the delta-bar-delta scheme is used.
- theta [decimal]: The reduction factor for the learning rate (under-relaxation term) of the delta- bar-delta algorithm [default 0.8; range 0.3-0.9].
- kappa [decimal]: The increment for the learning rate (under-relaxation term) of the delta-bar-delta algorithm [default 1e-5; range 0-0.3].
- momentum [decimal]: The fraction of past history changes that is added as a momentum term to the step change for a nonlinear iteration. A large momentum term should only be used when small learning rates are expected [default 0.001; range 1e-4 to 1e-1]
- gamma [decimal]: The history or memory term factor of the delta-bar-delta algorithm [default 0; range 0-0.3]. Or the weight of the previous term for the exponential average of past changes used in the Cooley damping scheme.
Backtracking
Backtracking [expandable]: Is the iteration control for nonlinear backtracking.- Number [integer; switch]: The maximum number of backtracking iterations allowed for residual reduction computations. Set the number to 0 to omit backtracking iterations [default 10; range 2-50].
- Tolerance [decimal]: The tolerance for residual change that is allowed for residual reduction computations [default 1.1; range 1.1 to 1e6].
- Reduction Factor [decimal]: The reduction in step size used for residual reduction computations [default 0.1; range 0.1-0.3].
- Residual Limit [decimal]: The limit to which the residual is reduced with backtracking [default 100; range 0.2 to 500].
Nonlinear Acceleration
- Acceleration Factor: The over-relaxation/acceleration parameter that is multiplied by the head change to get the final head changes for the current iteration [default 1; range 1-2].Additional SIP Solver Parameters
- Number of SIP Iteration Parameters [integer]: The number of iteration variables to be used [default 5; range 4-10].- Input SIP Seed [checkbox, decimal]: The seed for calculating iteration variables [by default the seed will be calculated at the start of the simulation from problem variables].