From 2eb05697c00b8081e1573f9066155fbd1121ebf7 Mon Sep 17 00:00:00 2001 From: w-bonelli Date: Fri, 5 Jan 2024 13:39:01 -0500 Subject: [PATCH] include sln*.dfn (accidentally omitted) --- doc/mf6io/mf6ivar/md/mf6ivar.md | 37 +++++++++++++++++++++++++++++ doc/mf6io/mf6ivar/mf6ivar.py | 1 + doc/mf6io/mf6ivar/tex/appendixA.tex | 4 ++++ 3 files changed, 42 insertions(+) diff --git a/doc/mf6io/mf6ivar/md/mf6ivar.md b/doc/mf6io/mf6ivar/md/mf6ivar.md index 99c228e44c5..b80fc972c8a 100644 --- a/doc/mf6io/mf6ivar/md/mf6ivar.md +++ b/doc/mf6io/mf6ivar/md/mf6ivar.md @@ -1122,6 +1122,43 @@ | SIM | TDIS | PERIODDATA | PERLEN | DOUBLE PRECISION | is the length of a stress period. | | SIM | TDIS | PERIODDATA | NSTP | INTEGER | is the number of time steps in a stress period. | | SIM | TDIS | PERIODDATA | TSMULT | DOUBLE PRECISION | is the multiplier for the length of successive time steps. The length of a time step is calculated by multiplying the length of the previous time step by TSMULT. The length of the first time step, $\Delta t_1$, is related to PERLEN, NSTP, and TSMULT by the relation $\Delta t_1= perlen \frac{tsmult - 1}{tsmult^{nstp}-1}$. | +| SLN | IMS | OPTIONS | PRINT_OPTION | STRING | is a flag that controls printing of convergence information from the solver. NONE means print nothing. SUMMARY means print only the total number of iterations and nonlinear residual reduction summaries. ALL means print linear matrix solver convergence information to the solution listing file and model specific linear matrix solver convergence information to each model listing file in addition to SUMMARY information. NONE is default if PRINT\_OPTION is not specified. | +| SLN | IMS | OPTIONS | COMPLEXITY | STRING | is an optional keyword that defines default non-linear and linear solver parameters. SIMPLE - indicates that default solver input values will be defined that work well for nearly linear models. This would be used for models that do not include nonlinear stress packages and models that are either confined or consist of a single unconfined layer that is thick enough to contain the water table within a single layer. MODERATE - indicates that default solver input values will be defined that work well for moderately nonlinear models. This would be used for models that include nonlinear stress packages and models that consist of one or more unconfined layers. The MODERATE option should be used when the SIMPLE option does not result in successful convergence. COMPLEX - indicates that default solver input values will be defined that work well for highly nonlinear models. This would be used for models that include nonlinear stress packages and models that consist of one or more unconfined layers representing complex geology and surface-water/groundwater interaction. The COMPLEX option should be used when the MODERATE option does not result in successful convergence. Non-linear and linear solver parameters assigned using a specified complexity can be modified in the NONLINEAR and LINEAR blocks. If the COMPLEXITY option is not specified, NONLINEAR and LINEAR variables will be assigned the simple complexity values. | +| SLN | IMS | OPTIONS | CSV_OUTPUT | KEYWORD | keyword to specify that the record corresponds to the comma separated values solver convergence output. The CSV\_OUTPUT option has been deprecated and split into the CSV_OUTER_OUTPUT and CSV_INNER_OUTPUT options. Starting with MODFLOW 6 version 6.1.1 if the CSV_OUTPUT option is specified, then it is treated as the CSV_OUTER_OUTPUT option. | +| SLN | IMS | OPTIONS | CSVFILE | STRING | name of the ascii comma separated values output file to write solver convergence information. If PRINT\_OPTION is NONE or SUMMARY, comma separated values output includes maximum head change convergence information at the end of each outer iteration for each time step. If PRINT\_OPTION is ALL, comma separated values output includes maximum head change and maximum residual convergence information for the solution and each model (if the solution includes more than one model) and linear acceleration information for each inner iteration. | +| SLN | IMS | OPTIONS | CSV_OUTER_OUTPUT | KEYWORD | keyword to specify that the record corresponds to the comma separated values outer iteration convergence output. | +| SLN | IMS | OPTIONS | FILEOUT | KEYWORD | keyword to specify that an output filename is expected next. | +| SLN | IMS | OPTIONS | OUTER_CSVFILE | STRING | name of the ascii comma separated values output file to write maximum dependent-variable (for example, head) change convergence information at the end of each outer iteration for each time step. | +| SLN | IMS | OPTIONS | CSV_INNER_OUTPUT | KEYWORD | keyword to specify that the record corresponds to the comma separated values solver convergence output. | +| SLN | IMS | OPTIONS | INNER_CSVFILE | STRING | name of the ascii comma separated values output file to write solver convergence information. Comma separated values output includes maximum dependent-variable (for example, head) change and maximum residual convergence information for the solution and each model (if the solution includes more than one model) and linear acceleration information for each inner iteration. | +| SLN | IMS | OPTIONS | NO_PTC | KEYWORD | is a flag that is used to disable pseudo-transient continuation (PTC). Option only applies to steady-state stress periods for models using the Newton-Raphson formulation. For many problems, PTC can significantly improve convergence behavior for steady-state simulations, and for this reason it is active by default. In some cases, however, PTC can worsen the convergence behavior, especially when the initial conditions are similar to the solution. When the initial conditions are similar to, or exactly the same as, the solution and convergence is slow, then the NO\_PTC FIRST option should be used to deactivate PTC for the first stress period. The NO\_PTC ALL option should also be used in order to compare convergence behavior with other MODFLOW versions, as PTC is only available in MODFLOW 6. | +| SLN | IMS | OPTIONS | NO_PTC_OPTION | STRING | is an optional keyword that is used to define options for disabling pseudo-transient continuation (PTC). FIRST is an optional keyword to disable PTC for the first stress period, if steady-state and one or more model is using the Newton-Raphson formulation. ALL is an optional keyword to disable PTC for all steady-state stress periods for models using the Newton-Raphson formulation. If NO\_PTC\_OPTION is not specified, the NO\_PTC ALL option is used. | +| SLN | IMS | OPTIONS | ATS_OUTER_MAXIMUM_FRACTION | DOUBLE PRECISION | real value defining the fraction of the maximum allowable outer iterations used with the Adaptive Time Step (ATS) capability if it is active. If this value is set to zero by the user, then this solution will have no effect on ATS behavior. This value must be greater than or equal to zero and less than or equal to 0.5 or the program will terminate with an error. If it is not specified by the user, then it is assigned a default value of one third. When the number of outer iterations for this solution is less than the product of this value and the maximum allowable outer iterations, then ATS will increase the time step length by a factor of DTADJ in the ATS input file. When the number of outer iterations for this solution is greater than the maximum allowable outer iterations minus the product of this value and the maximum allowable outer iterations, then the ATS (if active) will decrease the time step length by a factor of 1 / DTADJ. | +| SLN | IMS | NONLINEAR | OUTER_HCLOSE | DOUBLE PRECISION | real value defining the head change criterion for convergence of the outer (nonlinear) iterations, in units of length. When the maximum absolute value of the head change at all nodes during an iteration is less than or equal to OUTER\_HCLOSE, iteration stops. Commonly, OUTER\_HCLOSE equals 0.01. The OUTER\_HCLOSE option has been deprecated in favor of the more general OUTER\_DVCLOSE (for dependent variable), however either one can be specified in order to maintain backward compatibility. | +| SLN | IMS | NONLINEAR | OUTER_DVCLOSE | DOUBLE PRECISION | real value defining the dependent-variable (for example, head) change criterion for convergence of the outer (nonlinear) iterations, in units of the dependent-variable (for example, length for head). When the maximum absolute value of the dependent-variable change at all nodes during an iteration is less than or equal to OUTER\_DVCLOSE, iteration stops. Commonly, OUTER\_DVCLOSE equals 0.01. The keyword, OUTER\_HCLOSE can be still be specified instead of OUTER\_DVCLOSE for backward compatibility with previous versions of MODFLOW 6 but eventually OUTER\_HCLOSE will be deprecated and specification of OUTER\_HCLOSE will cause MODFLOW 6 to terminate with an error. | +| SLN | IMS | NONLINEAR | OUTER_RCLOSEBND | DOUBLE PRECISION | real value defining the residual tolerance for convergence of model packages that solve a separate equation not solved by the IMS linear solver. This value represents the maximum allowable residual between successive outer iterations at any single model package element. An example of a model package that would use OUTER\_RCLOSEBND to evaluate convergence is the SFR package which solves a continuity equation for each reach. The OUTER\_RCLOSEBND option is deprecated and has no effect on simulation results as of version 6.1.1. The keyword, OUTER\_RCLOSEBND can be still be specified for backward compatibility with previous versions of MODFLOW 6 but eventually specificiation of OUTER\_RCLOSEBND will cause MODFLOW 6 to terminate with an error. | +| SLN | IMS | NONLINEAR | OUTER_MAXIMUM | INTEGER | integer value defining the maximum number of outer (nonlinear) iterations -- that is, calls to the solution routine. For a linear problem OUTER\_MAXIMUM should be 1. | +| SLN | IMS | NONLINEAR | UNDER_RELAXATION | STRING | is an optional keyword that defines the nonlinear under-relaxation schemes used. Under-relaxation is also known as dampening, and is used to reduce the size of the calculated dependent variable before proceeding to the next outer iteration. Under-relaxation can be an effective tool for highly nonlinear models when there are large and often counteracting changes in the calculated dependent variable between successive outer iterations. By default under-relaxation is not used. NONE - under-relaxation is not used (default). SIMPLE - Simple under-relaxation scheme with a fixed relaxation factor (UNDER\_RELAXATION\_GAMMA) is used. COOLEY - Cooley under-relaxation scheme is used. DBD - delta-bar-delta under-relaxation is used. Note that the under-relaxation schemes are often used in conjunction with problems that use the Newton-Raphson formulation, however, experience has indicated that they also work well for non-Newton problems, such as those with the wet/dry options of MODFLOW 6. | +| SLN | IMS | NONLINEAR | UNDER_RELAXATION_GAMMA | DOUBLE PRECISION | real value defining either the relaxation factor for the SIMPLE scheme or the history or memory term factor of the Cooley and delta-bar-delta algorithms. For the SIMPLE scheme, a value of one indicates that there is no under-relaxation and the full head change is applied. This value can be gradually reduced from one as a way to improve convergence; for well behaved problems, using a value less than one can increase the number of outer iterations required for convergence and needlessly increase run times. UNDER\_RELAXATION\_GAMMA must be greater than zero for the SIMPLE scheme or the program will terminate with an error. For the Cooley and delta-bar-delta schemes, UNDER\_RELAXATION\_GAMMA is a memory term that can range between zero and one. When UNDER\_RELAXATION\_GAMMA is zero, only the most recent history (previous iteration value) is maintained. As UNDER\_RELAXATION\_GAMMA is increased, past history of iteration changes has greater influence on the memory term. The memory term is maintained as an exponential average of past changes. Retaining some past history can overcome granular behavior in the calculated function surface and therefore helps to overcome cyclic patterns of non-convergence. The value usually ranges from 0.1 to 0.3; a value of 0.2 works well for most problems. UNDER\_RELAXATION\_GAMMA only needs to be specified if UNDER\_RELAXATION is not NONE. | +| SLN | IMS | NONLINEAR | UNDER_RELAXATION_THETA | DOUBLE PRECISION | real value defining the reduction factor for the learning rate (under-relaxation term) of the delta-bar-delta algorithm. The value of UNDER\_RELAXATION\_THETA is between zero and one. If the change in the dependent-variable (for example, head) is of opposite sign to that of the previous iteration, the under-relaxation term is reduced by a factor of UNDER\_RELAXATION\_THETA. The value usually ranges from 0.3 to 0.9; a value of 0.7 works well for most problems. UNDER\_RELAXATION\_THETA only needs to be specified if UNDER\_RELAXATION is DBD. | +| SLN | IMS | NONLINEAR | UNDER_RELAXATION_KAPPA | DOUBLE PRECISION | real value defining the increment for the learning rate (under-relaxation term) of the delta-bar-delta algorithm. The value of UNDER\_RELAXATION\_kappa is between zero and one. If the change in the dependent-variable (for example, head) is of the same sign to that of the previous iteration, the under-relaxation term is increased by an increment of UNDER\_RELAXATION\_KAPPA. The value usually ranges from 0.03 to 0.3; a value of 0.1 works well for most problems. UNDER\_RELAXATION\_KAPPA only needs to be specified if UNDER\_RELAXATION is DBD. | +| SLN | IMS | NONLINEAR | UNDER_RELAXATION_MOMENTUM | DOUBLE PRECISION | real value defining the fraction of past history changes that is added as a momentum term to the step change for a nonlinear iteration. The value of UNDER\_RELAXATION\_MOMENTUM is between zero and one. A large momentum term should only be used when small learning rates are expected. Small amounts of the momentum term help convergence. The value usually ranges from 0.0001 to 0.1; a value of 0.001 works well for most problems. UNDER\_RELAXATION\_MOMENTUM only needs to be specified if UNDER\_RELAXATION is DBD. | +| SLN | IMS | NONLINEAR | BACKTRACKING_NUMBER | INTEGER | integer value defining the maximum number of backtracking iterations allowed for residual reduction computations. If BACKTRACKING\_NUMBER = 0 then the backtracking iterations are omitted. The value usually ranges from 2 to 20; a value of 10 works well for most problems. | +| SLN | IMS | NONLINEAR | BACKTRACKING_TOLERANCE | DOUBLE PRECISION | real value defining the tolerance for residual change that is allowed for residual reduction computations. BACKTRACKING\_TOLERANCE should not be less than one to avoid getting stuck in local minima. A large value serves to check for extreme residual increases, while a low value serves to control step size more severely. The value usually ranges from 1.0 to 10$^6$; a value of 10$^4$ works well for most problems but lower values like 1.1 may be required for harder problems. BACKTRACKING\_TOLERANCE only needs to be specified if BACKTRACKING\_NUMBER is greater than zero. | +| SLN | IMS | NONLINEAR | BACKTRACKING_REDUCTION_FACTOR | DOUBLE PRECISION | real value defining the reduction in step size used for residual reduction computations. The value of BACKTRACKING\_REDUCTION\_FACTOR is between zero and one. The value usually ranges from 0.1 to 0.3; a value of 0.2 works well for most problems. BACKTRACKING\_REDUCTION\_FACTOR only needs to be specified if BACKTRACKING\_NUMBER is greater than zero. | +| SLN | IMS | NONLINEAR | BACKTRACKING_RESIDUAL_LIMIT | DOUBLE PRECISION | real value defining the limit to which the residual is reduced with backtracking. If the residual is smaller than BACKTRACKING\_RESIDUAL\_LIMIT, then further backtracking is not performed. A value of 100 is suitable for large problems and residual reduction to smaller values may only slow down computations. BACKTRACKING\_RESIDUAL\_LIMIT only needs to be specified if BACKTRACKING\_NUMBER is greater than zero. | +| SLN | IMS | LINEAR | INNER_MAXIMUM | INTEGER | integer value defining the maximum number of inner (linear) iterations. The number typically depends on the characteristics of the matrix solution scheme being used. For nonlinear problems, INNER\_MAXIMUM usually ranges from 60 to 600; a value of 100 will be sufficient for most linear problems. | +| SLN | IMS | LINEAR | INNER_HCLOSE | DOUBLE PRECISION | real value defining the head change criterion for convergence of the inner (linear) iterations, in units of length. When the maximum absolute value of the head change at all nodes during an iteration is less than or equal to INNER\_HCLOSE, the matrix solver assumes convergence. Commonly, INNER\_HCLOSE is set equal to or an order of magnitude less than the OUTER\_HCLOSE value specified for the NONLINEAR block. The INNER\_HCLOSE keyword has been deprecated in favor of the more general INNER\_DVCLOSE (for dependent variable), however either one can be specified in order to maintain backward compatibility. | +| SLN | IMS | LINEAR | INNER_DVCLOSE | DOUBLE PRECISION | real value defining the dependent-variable (for example, head) change criterion for convergence of the inner (linear) iterations, in units of the dependent-variable (for example, length for head). When the maximum absolute value of the dependent-variable change at all nodes during an iteration is less than or equal to INNER\_DVCLOSE, the matrix solver assumes convergence. Commonly, INNER\_DVCLOSE is set equal to or an order of magnitude less than the OUTER\_DVCLOSE value specified for the NONLINEAR block. The keyword, INNER\_HCLOSE can be still be specified instead of INNER\_DVCLOSE for backward compatibility with previous versions of MODFLOW 6 but eventually INNER\_HCLOSE will be deprecated and specification of INNER\_HCLOSE will cause MODFLOW 6 to terminate with an error. | +| SLN | IMS | LINEAR | INNER_RCLOSE | DOUBLE PRECISION | real value that defines the flow residual tolerance for convergence of the IMS linear solver and specific flow residual criteria used. This value represents the maximum allowable residual at any single node. Value is in units of length cubed per time, and must be consistent with \mf length and time units. Usually a value of $1.0 \times 10^{-1}$ is sufficient for the flow-residual criteria when meters and seconds are the defined \mf length and time. | +| SLN | IMS | LINEAR | RCLOSE_OPTION | STRING | an optional keyword that defines the specific flow residual criterion used. STRICT--an optional keyword that is used to specify that INNER\_RCLOSE represents a infinity-Norm (absolute convergence criteria) and that the dependent-variable (for example, head) and flow convergence criteria must be met on the first inner iteration (this criteria is equivalent to the criteria used by the MODFLOW-2005 PCG package~\citep{hill1990preconditioned}). L2NORM\_RCLOSE--an optional keyword that is used to specify that INNER\_RCLOSE represents a L-2 Norm closure criteria instead of a infinity-Norm (absolute convergence criteria). When L2NORM\_RCLOSE is specified, a reasonable initial INNER\_RCLOSE value is 0.1 times the number of active cells when meters and seconds are the defined \mf length and time. RELATIVE\_RCLOSE--an optional keyword that is used to specify that INNER\_RCLOSE represents a relative L-2 Norm reduction closure criteria instead of a infinity-Norm (absolute convergence criteria). When RELATIVE\_RCLOSE is specified, a reasonable initial INNER\_RCLOSE value is $1.0 \times 10^{-4}$ and convergence is achieved for a given inner (linear) iteration when $\Delta h \le$ INNER\_DVCLOSE and the current L-2 Norm is $\le$ the product of the RELATIVE\_RCLOSE and the initial L-2 Norm for the current inner (linear) iteration. If RCLOSE\_OPTION is not specified, an absolute residual (infinity-norm) criterion is used. | +| SLN | IMS | LINEAR | LINEAR_ACCELERATION | STRING | a keyword that defines the linear acceleration method used by the default IMS linear solvers. CG - preconditioned conjugate gradient method. BICGSTAB - preconditioned bi-conjugate gradient stabilized method. | +| SLN | IMS | LINEAR | RELAXATION_FACTOR | DOUBLE PRECISION | optional real value that defines the relaxation factor used by the incomplete LU factorization preconditioners (MILU(0) and MILUT). RELAXATION\_FACTOR is unitless and should be greater than or equal to 0.0 and less than or equal to 1.0. RELAXATION\_FACTOR values of about 1.0 are commonly used, and experience suggests that convergence can be optimized in some cases with relax values of 0.97. A RELAXATION\_FACTOR value of 0.0 will result in either ILU(0) or ILUT preconditioning (depending on the value specified for PRECONDITIONER\_LEVELS and/or PRECONDITIONER\_DROP\_TOLERANCE). By default, RELAXATION\_FACTOR is zero. | +| SLN | IMS | LINEAR | PRECONDITIONER_LEVELS | INTEGER | optional integer value defining the level of fill for ILU decomposition used in the ILUT and MILUT preconditioners. Higher levels of fill provide more robustness but also require more memory. For optimal performance, it is suggested that a large level of fill be applied (7 or 8) with use of a drop tolerance. Specification of a PRECONDITIONER\_LEVELS value greater than zero results in use of the ILUT preconditioner. By default, PRECONDITIONER\_LEVELS is zero and the zero-fill incomplete LU factorization preconditioners (ILU(0) and MILU(0)) are used. | +| SLN | IMS | LINEAR | PRECONDITIONER_DROP_TOLERANCE | DOUBLE PRECISION | optional real value that defines the drop tolerance used to drop preconditioner terms based on the magnitude of matrix entries in the ILUT and MILUT preconditioners. A value of $10^{-4}$ works well for most problems. By default, PRECONDITIONER\_DROP\_TOLERANCE is zero and the zero-fill incomplete LU factorization preconditioners (ILU(0) and MILU(0)) are used. | +| SLN | IMS | LINEAR | NUMBER_ORTHOGONALIZATIONS | INTEGER | optional integer value defining the interval used to explicitly recalculate the residual of the flow equation using the solver coefficient matrix, the latest dependent-variable (for example, head) estimates, and the right hand side. For problems that benefit from explicit recalculation of the residual, a number between 4 and 10 is appropriate. By default, NUMBER\_ORTHOGONALIZATIONS is zero. | +| SLN | IMS | LINEAR | SCALING_METHOD | STRING | an optional keyword that defines the matrix scaling approach used. By default, matrix scaling is not applied. NONE - no matrix scaling applied. DIAGONAL - symmetric matrix scaling using the POLCG preconditioner scaling method in Hill (1992). L2NORM - symmetric matrix scaling using the L2 norm. | +| SLN | IMS | LINEAR | REORDERING_METHOD | STRING | an optional keyword that defines the matrix reordering approach used. By default, matrix reordering is not applied. NONE - original ordering. RCM - reverse Cuthill McKee ordering. MD - minimum degree ordering. | | UTL | ATS | DIMENSIONS | MAXATS | INTEGER | is the number of records in the subsequent perioddata block that will be used for adaptive time stepping. | | UTL | ATS | PERIODDATA | IPERATS | INTEGER | is the period number to designate for adaptive time stepping. The remaining ATS values on this line will apply to period iperats. iperats must be greater than zero. A warning is printed if iperats is greater than nper. | | UTL | ATS | PERIODDATA | DT0 | DOUBLE PRECISION | is the initial time step length for period iperats. If dt0 is zero, then the final step from the previous stress period will be used as the initial time step. The program will terminate with an error message if dt0 is negative. | diff --git a/doc/mf6io/mf6ivar/mf6ivar.py b/doc/mf6io/mf6ivar/mf6ivar.py index a4321623ec6..81dca99a0bd 100644 --- a/doc/mf6io/mf6ivar/mf6ivar.py +++ b/doc/mf6io/mf6ivar/mf6ivar.py @@ -707,6 +707,7 @@ def filter(paths: Iterable[Path]) -> Iterable[Path]: s = p.stem if ( "sim" in s + or "sln" in s or "utl" in s or any(e in s for e in exchanges) or any(m in s for m in models) diff --git a/doc/mf6io/mf6ivar/tex/appendixA.tex b/doc/mf6io/mf6ivar/tex/appendixA.tex index 07bf120021e..549c0c81fb6 100644 --- a/doc/mf6io/mf6ivar/tex/appendixA.tex +++ b/doc/mf6io/mf6ivar/tex/appendixA.tex @@ -236,6 +236,10 @@ SIM & TDIS & DIMENSIONS & yes \\ SIM & TDIS & PERIODDATA & yes \\ \hline +SLN & IMS & OPTIONS & yes \\ +SLN & IMS & NONLINEAR & yes \\ +SLN & IMS & LINEAR & yes \\ +\hline UTL & ATS & DIMENSIONS & yes \\ UTL & ATS & PERIODDATA & yes \\ \hline