7.5. Linear Solvers
This section is referenced in the following other sections
7.5.1. Tpetra
7.5.1.1. Tpetra Equation Solver
- Scope
Sierra
- Summary
Use a Tpetra-based linear solver.
- Description
If the linear solve fails it will report an error code. While these codes are not universally standardized across linear solvers, they can generally be interpreted with the following rules:
maxits: The linear solver reached the maximum number of linear solver iterations and did not reach a solution. Check the final linear solver residual to see if this is serious or not. Even if the error is not serious (residuals are small) this usually means the solve is much more expensive than necessary and a better solver/preconditioner combination should be used.
Error 1 (or -1): The linear solver encountered a recoverable internal error. As always, check the final linear solver residual reported in the log file to determine if it is serious or not.
Error 2 (or -2, 4, -4, 5, -5): The linear solver encountered a fatal internal error. This is often because of a singular matrix or a NaN or Infinite term. This is almost always a serious error.
Error 3 (or -3): The linear solver had an internal loss of precision. This is often not a serious error, but may indicate the need for a better solver/preconditioner combination. As always, check the final linear solver residual reported in the log file to determine if it is serious or not.
begin Tpetra Equation Solver Solver Name Bc Enforcement Failed Solve Matrix Output value Matrix Output value Matrix Output Time Range value1[ value2] Matrix Scaling begin Bicgstab Solver end begin Cg Solver end begin Expert Belos Solver end begin Gcrodr Solver end begin Gmres Solver end begin Klu2 Solver end begin Poly Solver end begin Preset Solver end begin Preset Solver end begin Superlu Solver end begin Umfpack Solver end end Tpetra Equation Solver Solver Name
7.5.1.1.1. Line Commands
Bc Enforcement
- Syntax
Bc Enforcement
- Summary
Control how Dirichlet BC’s are enforced. Fuego only.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{exact | exact_no_column_mod | remove | solver | solver_no_column_mod} |
– |
Failed Solve Matrix Output
- Syntax
Failed Solve Matrix Output value
- Summary
On a failed linear solve, output the matrix to the specified file name.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Matrix Output
- Syntax
Matrix Output value
- Summary
Output the matrix to the specified file name.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Matrix Output Time Range
- Syntax
Matrix Output Time Range value1[ value2]
- Summary
Range of simulation time to output the matrix to file, default is dump out all matrices per step.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
real1[ real2] |
– |
Matrix Scaling
- Syntax
Matrix Scaling
- Summary
Apply a pre-solve scaling to the matrix.
- Description
In some problems scaling the matrix prior to the linear solve can help reduce the condition number of the matrix. This should be used in addition to an appropriate preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{diagonal | one_norm} |
– |
7.5.2. Solvers
7.5.2.1. Klu2 Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a KLU2 direct solver.
begin Klu2 Solver end Klu2 Solver
7.5.2.2. Superlu Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a SUPERLU direct solver.
begin Superlu Solver end Superlu Solver
7.5.2.3. Umfpack Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a UMFPACK direct solver.
begin Umfpack Solver end Umfpack Solver
7.5.2.4. Cg Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a conjugate gradient solver.
begin Cg Solver Convergence Tolerance value [ Minimum = tolerance_floor ] Maximum Iterations value Residual Output [ ] Residual Scaling begin Dd-Ilu Preconditioner end begin Dd-Ilut Preconditioner end begin Dd-Parilut Preconditioner end begin Expert Ifpack2 Preconditioner end begin Fastilu Preconditioner end begin Jacobi Preconditioner end begin Muelu Preconditioner end begin Preset Preconditioner end begin Sgs Preconditioner end begin Sgs2 Preconditioner end end Cg Solver
7.5.2.4.1. Line Commands
Convergence Tolerance
- Syntax
Convergence Tolerance value [ Minimum = tolerance_floor ]
- Summary
Set the convergence tolerance for the linear solver. Setting CONVERGENCE TOLERANCE = AUTOMATIC enables an autonomous linear convergence tolerance calculation, which is computed from a combination of the initial linear residual and user-specified nonlinear residual tolerance. An additional floor value on the linear convergence tolerance can be declared with CONVERGENCE TOLERANCE = AUTOMATIC MINIMUM = <val>, where the default floor value is 1.0e-6
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations taken by the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
300 |
Residual Output
- Syntax
Residual Output [ ]
- Summary
Output the linear residual history to files in the residual_output/ directory, which is created automatically. For timestep NNN and linear system NAME, this will output a .csv file named residual_output/linear_solves_NAME.stepNNN. This file includes information about the linear residual at every iteration across all nonlinear iterations.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
Residual Scaling
- Syntax
Residual Scaling
- Summary
Set the residual scaling for the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{none | preconditioned_r0 | r0 | rhs} |
r0 |
7.5.2.5. Bicgstab Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a bicgstab solver.
begin Bicgstab Solver Convergence Tolerance value [ Minimum = tolerance_floor ] Maximum Iterations value Residual Output [ ] Residual Scaling begin Dd-Ilu Preconditioner end begin Dd-Ilut Preconditioner end begin Dd-Parilut Preconditioner end begin Expert Ifpack2 Preconditioner end begin Fastilu Preconditioner end begin Jacobi Preconditioner end begin Muelu Preconditioner end begin Preset Preconditioner end begin Sgs Preconditioner end begin Sgs2 Preconditioner end end Bicgstab Solver
7.5.2.5.1. Line Commands
Convergence Tolerance
- Syntax
Convergence Tolerance value [ Minimum = tolerance_floor ]
- Summary
Set the convergence tolerance for the linear solver. Setting CONVERGENCE TOLERANCE = AUTOMATIC enables an autonomous linear convergence tolerance calculation, which is computed from a combination of the initial linear residual and user-specified nonlinear residual tolerance. An additional floor value on the linear convergence tolerance can be declared with CONVERGENCE TOLERANCE = AUTOMATIC MINIMUM = <val>, where the default floor value is 1.0e-6
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations taken by the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
300 |
Residual Output
- Syntax
Residual Output [ ]
- Summary
Output the linear residual history to files in the residual_output/ directory, which is created automatically. For timestep NNN and linear system NAME, this will output a .csv file named residual_output/linear_solves_NAME.stepNNN. This file includes information about the linear residual at every iteration across all nonlinear iterations.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
Residual Scaling
- Syntax
Residual Scaling
- Summary
Set the residual scaling for the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{none | preconditioned_r0 | r0 | rhs} |
r0 |
7.5.2.6. Gmres Solver
- Scope
Teko Block Solver, Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a GMRES solver.
begin Gmres Solver Convergence Tolerance value [ Minimum = tolerance_floor ] Maximum Iterations value Residual Output [ ] Residual Scaling Restart Iterations value begin Dd-Ilu Preconditioner end begin Dd-Ilut Preconditioner end begin Dd-Parilut Preconditioner end begin Expert Ifpack2 Preconditioner end begin Expert Teko Preconditioner end begin Fastilu Preconditioner end begin Jacobi Preconditioner end begin Muelu Preconditioner end begin Preset Preconditioner end begin Sgs Preconditioner end begin Sgs2 Preconditioner end begin Teko Preconditioner end end Gmres Solver
7.5.2.6.1. Line Commands
Convergence Tolerance
- Syntax
Convergence Tolerance value [ Minimum = tolerance_floor ]
- Summary
Set the convergence tolerance for the linear solver. Setting CONVERGENCE TOLERANCE = AUTOMATIC enables an autonomous linear convergence tolerance calculation, which is computed from a combination of the initial linear residual and user-specified nonlinear residual tolerance. An additional floor value on the linear convergence tolerance can be declared with CONVERGENCE TOLERANCE = AUTOMATIC MINIMUM = <val>, where the default floor value is 1.0e-6
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations taken by the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
300 |
Residual Output
- Syntax
Residual Output [ ]
- Summary
Output the linear residual history to files in the residual_output/ directory, which is created automatically. For timestep NNN and linear system NAME, this will output a .csv file named residual_output/linear_solves_NAME.stepNNN. This file includes information about the linear residual at every iteration across all nonlinear iterations.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
Residual Scaling
- Syntax
Residual Scaling
- Summary
Set the residual scaling for the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{none | preconditioned_r0 | r0 | rhs} |
r0 |
Restart Iterations
- Syntax
Restart Iterations value
- Summary
Set the number of iterations between GMRES restarts.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
30 |
7.5.2.7. Poly Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a poly solver.
begin Poly Solver Convergence Tolerance value [ Minimum = tolerance_floor ] Maximum Iterations value Polynomial Order value Residual Output [ ] Residual Scaling Restart Iterations value begin Dd-Ilu Preconditioner end begin Dd-Ilut Preconditioner end begin Dd-Parilut Preconditioner end begin Expert Ifpack2 Preconditioner end begin Fastilu Preconditioner end begin Jacobi Preconditioner end begin Muelu Preconditioner end begin Preset Preconditioner end begin Sgs Preconditioner end begin Sgs2 Preconditioner end end Poly Solver
7.5.2.7.1. Line Commands
Convergence Tolerance
- Syntax
Convergence Tolerance value [ Minimum = tolerance_floor ]
- Summary
Set the convergence tolerance for the linear solver. Setting CONVERGENCE TOLERANCE = AUTOMATIC enables an autonomous linear convergence tolerance calculation, which is computed from a combination of the initial linear residual and user-specified nonlinear residual tolerance. An additional floor value on the linear convergence tolerance can be declared with CONVERGENCE TOLERANCE = AUTOMATIC MINIMUM = <val>, where the default floor value is 1.0e-6
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations taken by the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
300 |
Polynomial Order
- Syntax
Polynomial Order value
- Summary
Set the polynomial order of polynomial preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
5 |
Residual Output
- Syntax
Residual Output [ ]
- Summary
Output the linear residual history to files in the residual_output/ directory, which is created automatically. For timestep NNN and linear system NAME, this will output a .csv file named residual_output/linear_solves_NAME.stepNNN. This file includes information about the linear residual at every iteration across all nonlinear iterations.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
Residual Scaling
- Syntax
Residual Scaling
- Summary
Set the residual scaling for the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{none | preconditioned_r0 | r0 | rhs} |
r0 |
Restart Iterations
- Syntax
Restart Iterations value
- Summary
Set the number of iterations between GMRES restarts.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
30 |
7.5.2.8. Gcrodr Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a GCRODR solver.
begin Gcrodr Solver Convergence Tolerance value [ Minimum = tolerance_floor ] Maximum Iterations value Recycled Blocks value Residual Output [ ] Residual Scaling Restart Iterations value begin Dd-Ilu Preconditioner end begin Dd-Ilut Preconditioner end begin Dd-Parilut Preconditioner end begin Expert Ifpack2 Preconditioner end begin Fastilu Preconditioner end begin Jacobi Preconditioner end begin Muelu Preconditioner end begin Preset Preconditioner end begin Sgs Preconditioner end begin Sgs2 Preconditioner end end Gcrodr Solver
7.5.2.8.1. Line Commands
Convergence Tolerance
- Syntax
Convergence Tolerance value [ Minimum = tolerance_floor ]
- Summary
Set the convergence tolerance for the linear solver. Setting CONVERGENCE TOLERANCE = AUTOMATIC enables an autonomous linear convergence tolerance calculation, which is computed from a combination of the initial linear residual and user-specified nonlinear residual tolerance. An additional floor value on the linear convergence tolerance can be declared with CONVERGENCE TOLERANCE = AUTOMATIC MINIMUM = <val>, where the default floor value is 1.0e-6
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations taken by the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
300 |
Recycled Blocks
- Syntax
Recycled Blocks value
- Summary
Set the number of recycle blocks in GCRODR.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
5 |
Residual Output
- Syntax
Residual Output [ ]
- Summary
Output the linear residual history to files in the residual_output/ directory, which is created automatically. For timestep NNN and linear system NAME, this will output a .csv file named residual_output/linear_solves_NAME.stepNNN. This file includes information about the linear residual at every iteration across all nonlinear iterations.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
Residual Scaling
- Syntax
Residual Scaling
- Summary
Set the residual scaling for the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{none | preconditioned_r0 | r0 | rhs} |
r0 |
Restart Iterations
- Syntax
Restart Iterations value
- Summary
Set the number of iterations between GCRODR restarts.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
30 |
7.5.2.9. Expert Belos Solver
- Scope
Teko Block Solver, Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a Belos solver with parameters specified in an XML file.
begin Expert Belos Solver Xml File value begin Dd-Ilu Preconditioner end begin Dd-Ilut Preconditioner end begin Dd-Parilut Preconditioner end begin Expert Ifpack2 Preconditioner end begin Expert Teko Preconditioner end begin Fastilu Preconditioner end begin Jacobi Preconditioner end begin Muelu Preconditioner end begin Preset Preconditioner end begin Sgs Preconditioner end begin Sgs2 Preconditioner end begin Teko Preconditioner end end Expert Belos Solver
7.5.2.9.1. Line Commands
Xml File
- Syntax
Xml File value
- Summary
Supply the name of an XML file containing a Belos parameter list.
- Description
The supplied XML file must contain a ParameterList with a “solution method” string parameter corresponding to the desired type of Belos solver. Any additional parameters that should be passed on to Belos should be part of a nested ParameterList with name=”Belos-Tpetra”.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
7.5.2.10. Preset Solver
- Scope
Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a preset solver for a specific linear system type.
- Description
The preset solver for a given linear system type is intended to provide reasonable behavior for many problems of that type. If this proves to be insufficient, the user must provide more fine-grained control over solver settings. The equivalent command which produces the solver will be output to the log file, and this may be used as a starting point from which changes for robustness may be made (i.e. increasing GMRES subspace size or changing the preconditioner).
begin Preset Solver Convergence Tolerance value [ Minimum = tolerance_floor ] Maximum Iterations value Residual Output [ ] Residual Scaling Solver Type end Preset Solver
7.5.2.10.1. Line Commands
Convergence Tolerance
- Syntax
Convergence Tolerance value [ Minimum = tolerance_floor ]
- Summary
Set the convergence tolerance for the linear solver. Setting CONVERGENCE TOLERANCE = AUTOMATIC enables an autonomous linear convergence tolerance calculation, which is computed from a combination of the initial linear residual and user-specified nonlinear residual tolerance. An additional floor value on the linear convergence tolerance can be declared with CONVERGENCE TOLERANCE = AUTOMATIC MINIMUM = <val>, where the default floor value is 1.0e-6
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations taken by the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
300 |
Residual Output
- Syntax
Residual Output [ ]
- Summary
Output the linear residual history to files in the residual_output/ directory, which is created automatically. For timestep NNN and linear system NAME, this will output a .csv file named residual_output/linear_solves_NAME.stepNNN. This file includes information about the linear residual at every iteration across all nonlinear iterations.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
Residual Scaling
- Syntax
Residual Scaling
- Summary
Set the residual scaling for the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{none | preconditioned_r0 | r0 | rhs} |
r0 |
Solver Type
- Syntax
Solver Type
- Summary
Set the preset solver type
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_bicgstab | thermal_multigrid | thermal_symmetric} |
– |
7.5.2.11. Preset Solver
- Scope
Teko Block Solver, Teko Subblock Solver, Tpetra Equation Solver
- Summary
Use a preset solver for a specific linear system type.
- Description
The preset solver for a given linear system type is intended to provide reasonable behavior for many problems of that type. If this proves to be insufficient, the user must provide more fine-grained control over solver settings. The equivalent command which produces the solver will be output to the log file, and this may be used as a starting point from which changes for robustness may be made (i.e. increasing GMRES subspace size or changing the preconditioner).
begin Preset Solver Convergence Tolerance value [ Minimum = tolerance_floor ] Maximum Iterations value Residual Output [ ] Residual Scaling Solver Type end Preset Solver
7.5.2.11.1. Line Commands
Convergence Tolerance
- Syntax
Convergence Tolerance value [ Minimum = tolerance_floor ]
- Summary
Set the convergence tolerance for the linear solver. Setting CONVERGENCE TOLERANCE = AUTOMATIC enables an autonomous linear convergence tolerance calculation, which is computed from a combination of the initial linear residual and user-specified nonlinear residual tolerance. An additional floor value on the linear convergence tolerance can be declared with CONVERGENCE TOLERANCE = AUTOMATIC MINIMUM = <val>, where the default floor value is 1.0e-6
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations taken by the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
300 |
Residual Output
- Syntax
Residual Output [ ]
- Summary
Output the linear residual history to files in the residual_output/ directory, which is created automatically. For timestep NNN and linear system NAME, this will output a .csv file named residual_output/linear_solves_NAME.stepNNN. This file includes information about the linear residual at every iteration across all nonlinear iterations.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
Residual Scaling
- Syntax
Residual Scaling
- Summary
Set the residual scaling for the linear solver
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{none | preconditioned_r0 | r0 | rhs} |
r0 |
Solver Type
- Syntax
Solver Type
- Summary
Set the preset solver type
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_bicgstab | thermal_multigrid | thermal_symmetric} |
– |
7.5.3. Preconditioners
7.5.3.1. Expert Teko Preconditioner
- Scope
Expert Belos Solver, Gmres Solver
- Summary
Use a teko preconditioner with parameters specified in an XML file.
begin Expert Teko Preconditioner Define Matrix Subblock Number = number Dof = dof name Inverse Method value Xml File value end Expert Teko Preconditioner
7.5.3.1.1. Line Commands
Define Matrix Subblock
- Syntax
Define Matrix Subblock Number = number Dof = dof name
- Summary
Define the dof associated with a matrix subblock for block preconditioning.
- Description
Define the matrix subblock number and the equation to apply to that subblock. Please see https://trilinos.github.io/teko.html for more details
Parameter |
Value |
Default |
|---|---|---|
number |
integer |
– |
dof name |
string |
– |
Inverse Method
- Syntax
Inverse Method value
- Summary
Supply the name of the inverse method.
- Description
The name of the inverse method must correspond to the name of a parameter list specified in the teko XML file. Please see https://trilinos.github.io/teko.html for more details
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
Xml File
- Syntax
Xml File value
- Summary
Supply the name of an XML file containing a teko parameter list.
- Description
The supplied XML file must contain a ParameterList with a valid teko parameter list. Please see https://trilinos.github.io/teko.html for more details
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
7.5.3.2. Teko Preconditioner
- Scope
Expert Belos Solver, Gmres Solver, Teko Block Preconditioner
- Summary
Use a teko preconditioner with parameters specified through the input deck.
begin Teko Preconditioner Define Matrix Subblock Number = number Dof = dof name begin Block Gauss-Seidel Solver end begin Block Jacobi Solver end begin Hierarchical Block Gauss-Seidel Solver end begin Simple Solver end begin Teko Block Preconditioner Solver Name end begin Teko Block Solver Solver Name end begin Teko Subblock Preconditioner Solver Name end begin Teko Subblock Solver Solver Name end end Teko Preconditioner
7.5.3.2.1. Line Commands
Define Matrix Subblock
- Syntax
Define Matrix Subblock Number = number Dof = dof name
- Summary
Define the dof associated with a matrix subblock for block preconditioning.
- Description
Define the matrix subblock number and the equation to apply to that subblock. Please see https://trilinos.github.io/teko.html for more details
Parameter |
Value |
Default |
|---|---|---|
number |
integer |
– |
dof name |
string |
– |
7.5.3.3. Teko Subblock Solver
- Scope
Teko Preconditioner
- Summary
Define a solver to be used for one or more subblock(s)
begin Teko Subblock Solver Solver Name begin Bicgstab Solver end begin Cg Solver end begin Expert Belos Solver end begin Gcrodr Solver end begin Gmres Solver end begin Klu2 Solver end begin Poly Solver end begin Preset Solver end begin Preset Solver end begin Superlu Solver end begin Umfpack Solver end end Teko Subblock Solver Solver Name
7.5.3.4. Teko Subblock Preconditioner
- Scope
Teko Preconditioner
- Summary
Define a preconditioner to be used to approximate the inverse of one or more subblock(s)
begin Teko Subblock Preconditioner Solver Name begin Dd-Ilu Preconditioner end begin Dd-Ilut Preconditioner end begin Dd-Parilut Preconditioner end begin Expert Ifpack2 Preconditioner end begin Fastilu Preconditioner end begin Jacobi Preconditioner end begin Muelu Preconditioner end begin Preset Preconditioner end begin Sgs Preconditioner end begin Sgs2 Preconditioner end end Teko Subblock Preconditioner Solver Name
7.5.3.5. Teko Block Solver
- Scope
Teko Preconditioner
- Summary
Define a solver to be used to approximate the inverse of a set of subblocks in a hierarchical block Gauss-Seidel scheme.
begin Teko Block Solver Solver Name begin Expert Belos Solver end begin Gmres Solver end begin Preset Solver end end Teko Block Solver Solver Name
7.5.3.6. Teko Block Preconditioner
- Scope
Teko Preconditioner
- Summary
Define a preconditioner to be used to approximate the inverse of a set of subblocks in a hierarchical block Gauss-Seidel scheme.
begin Teko Block Preconditioner Solver Name begin Preset Preconditioner end begin Teko Preconditioner end end Teko Block Preconditioner Solver Name
7.5.3.7. Hierarchical Block Gauss-Seidel Solver
- Scope
Teko Preconditioner
- Summary
Use a Hierarchical Block Gauss-Seidel solver inside a Teko preconditioner.
begin Hierarchical Block Gauss-Seidel Solver Use Block Inverse block inverse For Hierarchical Block number Use Subblocks subblocks... For Hierarchical Block number Use Upper Triangle end Hierarchical Block Gauss-Seidel Solver
7.5.3.7.1. Line Commands
Use Block Inverse
- Syntax
Use Block Inverse block inverse For Hierarchical Block number
- Summary
Define the block solver to be used for a given hierarchical block.
Parameter |
Value |
Default |
|---|---|---|
block inverse |
string |
– |
number |
integer |
– |
Use Subblocks
- Syntax
Use Subblocks subblocks… For Hierarchical Block number
- Summary
Map subblock(s) to a hierarchical block, which is a set containing one or more blocks.
Parameter |
Value |
Default |
|---|---|---|
integer… |
– |
|
number |
integer |
– |
Use Upper Triangle
- Syntax
Use Upper Triangle
- Summary
Define whether to use upper triangular hierarchical block Gauss-Seidel
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{false | true} |
FALSE |
7.5.3.8. Muelu Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a MueLu preconditioner.
begin Muelu Preconditioner Xml File value end Muelu Preconditioner
7.5.3.8.1. Line Commands
Xml File
- Syntax
Xml File value
- Summary
Supply the name of an XML file containing a MueLu parameter list.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
7.5.3.9. Jacobi Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a Jacobi preconditioner.
begin Jacobi Preconditioner Damping Factor value Number Of Sweeps value end Jacobi Preconditioner
7.5.3.9.1. Line Commands
Damping Factor
- Syntax
Damping Factor value
- Summary
Set the relaxation damping factor.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
1 |
Number Of Sweeps
- Syntax
Number Of Sweeps value
- Summary
Set the number of relaxation sweeps to perform.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
3 |
7.5.3.10. Sgs2 Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a Two-stage symmetric Gauss-Seidel preconditioner.
begin Sgs2 Preconditioner Damping Factor value Number Of Sweeps value end Sgs2 Preconditioner
7.5.3.10.1. Line Commands
Damping Factor
- Syntax
Damping Factor value
- Summary
Set the relaxation damping factor.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
1 |
Number Of Sweeps
- Syntax
Number Of Sweeps value
- Summary
Set the number of relaxation sweeps to perform.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
3 |
7.5.3.11. Sgs Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a symmetric Gauss-Seidel preconditioner.
begin Sgs Preconditioner Damping Factor value Number Of Sweeps value end Sgs Preconditioner
7.5.3.11.1. Line Commands
Damping Factor
- Syntax
Damping Factor value
- Summary
Set the relaxation damping factor.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
1 |
Number Of Sweeps
- Syntax
Number Of Sweeps value
- Summary
Set the number of relaxation sweeps to perform.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
3 |
7.5.3.12. Dd-Ilu Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a domain-decomposition ILU(k) preconditioner.
begin Dd-Ilu Preconditioner Fill Level value Number Of Gpu Streams value Reordering Subdomain Overlap Level value Use Thread Parallel Implementation end Dd-Ilu Preconditioner
7.5.3.12.1. Line Commands
Fill Level
- Syntax
Fill Level value
- Summary
Set the level of fill, k, for ILU(k).
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
0 |
Number Of Gpu Streams
- Syntax
Number Of Gpu Streams value
- Summary
DEVELOPER COMMAND: Set the number of GPU streams to use in GPU builds.
- Description
On each MPI rank the local matrix will be further decomposed into this number of diagonal sub-matrices and the ILU preconditioner will be applied to each diagonal sub-matrix in parallel using GPU streams.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
0 |
Reordering
- Syntax
Reordering
- Summary
Choose the reordering method to apply to the local matrices.
- Description
By default reordering is ON which corresponds to the reordering method that typically performs best. In CPU builds the default reorder method is RCM, but in GPU builds it is METIS. METIS usually requires slightly higher iteration counts than RCM, but provides more parallelism for ILU on the GPU and usually runs faster on those machines as a result. If necessary REORDERING = RCM|METIS can be used to ensure the same reordering method is used regardless of machine type.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{metis | off | on | rcm} |
ON |
Subdomain Overlap Level
- Syntax
Subdomain Overlap Level value
- Summary
Set the level of subdomain overlap used in constructing the preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
0 |
Use Thread Parallel Implementation
- Syntax
Use Thread Parallel Implementation
- Summary
Control whether or not to use the thread parallel ILU implementation from Kokkos-Kernels.
- Description
This will default to the appropriate value based on the platform Aria is built for, but in rare cases it may be helpful to disable the thread parallel implementation in a GPU build for debugging purposes.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{off | on} |
ON |
7.5.3.13. Dd-Ilut Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a domain-decomposition ILUT preconditioner.
begin Dd-Ilut Preconditioner Drop Tolerance value Fill Fraction value Reordering Subdomain Overlap Level value end Dd-Ilut Preconditioner
7.5.3.13.1. Line Commands
Drop Tolerance
- Syntax
Drop Tolerance value
- Summary
Set the drop tolerance for ilut.
- Description
Off-diagonal entries of the incomplete factorization smaller than the specified tolerance will be dropped.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
0 |
Fill Fraction
- Syntax
Fill Fraction value
- Summary
Set the fill fraction for ilut.
- Description
This parameter controls the number of nonzero entries that are kept in each row of the incomplete factorization. Larger values will use more memory and runtime, but may result in a more effective preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
1 |
Reordering
- Syntax
Reordering
- Summary
Choose the reordering method to apply to the local matrices.
- Description
By default reordering is ON which corresponds to the reordering method that typically performs best. In CPU builds the default reorder method is RCM, but in GPU builds it is METIS. METIS usually requires slightly higher iteration counts than RCM, but provides more parallelism for ILU on the GPU and usually runs faster on those machines as a result. If necessary REORDERING = RCM|METIS can be used to ensure the same reordering method is used regardless of machine type.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{metis | off | on | rcm} |
ON |
Subdomain Overlap Level
- Syntax
Subdomain Overlap Level value
- Summary
Set the level of subdomain overlap used in constructing the preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
0 |
7.5.3.14. Dd-Parilut Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a domain-decomposition ParILUT preconditioner.
- Description
ParILUT is similar to ILUT, but uses an iterative approach to compute the approximate L and U factors in order to enable fine grained parallelism that can improve performance on GPUs.
begin Dd-Parilut Preconditioner Fill Fraction value Maximum Iterations value Reordering Subdomain Overlap Level value end Dd-Parilut Preconditioner
7.5.3.14.1. Line Commands
Fill Fraction
- Syntax
Fill Fraction value
- Summary
Set the fill level for par_ilut.
- Description
This parameter controls the number of nonzero entries that are kept in each row of the incomplete factorization. Larger values will use more memory and runtime, but may result in a more effective preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
1 |
Maximum Iterations
- Syntax
Maximum Iterations value
- Summary
Set the maximum number of iterations of the par_ilut algorithm.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
5 |
Reordering
- Syntax
Reordering
- Summary
Choose the reordering method to apply to the local matrices.
- Description
By default reordering is ON which corresponds to the reordering method that typically performs best. In CPU builds the default reorder method is RCM, but in GPU builds it is METIS. METIS usually requires slightly higher iteration counts than RCM, but provides more parallelism for ILU on the GPU and usually runs faster on those machines as a result. If necessary REORDERING = RCM|METIS can be used to ensure the same reordering method is used regardless of machine type.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{metis | off | on | rcm} |
ON |
Subdomain Overlap Level
- Syntax
Subdomain Overlap Level value
- Summary
Set the level of subdomain overlap used in constructing the preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
0 |
7.5.3.15. Fastilu Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a domain-decomposition FastILU(k) preconditioner.
- Description
FastILU is a beta preconditioner that uses an iterative approximation to the standard DD-ILU preconditioner in order to expose more parallelism for potentially better performance on GPUs.
begin Fastilu Preconditioner Damping Factor value Fill Level value Reordering Subdomain Overlap Level value Sweeps value Triangular Solver Type end Fastilu Preconditioner
7.5.3.15.1. Line Commands
Damping Factor
- Syntax
Damping Factor value
- Summary
Set the damping factor for the FastILU algorithm.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
0.2 |
Fill Level
- Syntax
Fill Level value
- Summary
Set the level of fill, k, for FastILU(k).
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
0 |
Reordering
- Syntax
Reordering
- Summary
Choose the reordering method to apply to the local matrices.
- Description
By default reordering is ON which corresponds to the reordering method that typically performs best. In CPU builds the default reorder method is RCM, but in GPU builds it is METIS. METIS usually requires slightly higher iteration counts than RCM, but provides more parallelism for ILU on the GPU and usually runs faster on those machines as a result. If necessary REORDERING = RCM|METIS can be used to ensure the same reordering method is used regardless of machine type.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{metis | off | on | rcm} |
ON |
Subdomain Overlap Level
- Syntax
Subdomain Overlap Level value
- Summary
Set the level of subdomain overlap used in constructing the preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
0 |
Sweeps
- Syntax
Sweeps value
- Summary
Set the number of sweeps for iteratively computing the ILU approximation via the FastILU algorithm.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
integer |
5 |
Triangular Solver Type
- Syntax
Triangular Solver Type
- Summary
Set the triangular solver type for FastILU
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{fast | standard} |
Fast |
7.5.3.16. Expert Ifpack2 Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use an Ifpack2 preconditioner with parameters specified in an XML file.
begin Expert Ifpack2 Preconditioner Xml File value end Expert Ifpack2 Preconditioner
7.5.3.16.1. Line Commands
Xml File
- Syntax
Xml File value
- Summary
Supply the name of an XML file containing an Ifpack2 parameter list.
- Description
The supplied XML file must contain a ParameterList with a “preconditioner type:” string parameter corresponding to the desired type of Ifpack2 preconditioner as well as any additional parameters for that preconditioner.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
string |
– |
7.5.3.17. Preset Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Gcrodr Solver, Gmres Solver, Poly Solver, Teko Subblock Preconditioner
- Summary
Use a preset preconditioner for a specific linear system type.
- Description
The preset preconditioner for a given linear system type is intended to provide reasonable behavior for many problems of that type. If this proves to be insufficient, the user must provide more fine-grained control over preconditioner settings. The equivalent command which produces the preconditioner will be output to the log file, and this may be used as a starting point from which changes for robustness may be made (i.e. increasing Chebyshev degree in a MueLu preconditioner).
begin Preset Preconditioner Preconditioner Type end Preset Preconditioner
7.5.3.17.1. Line Commands
Preconditioner Type
- Syntax
Preconditioner Type
- Summary
Set the preset preconditioner type
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_multigrid} |
– |
7.5.3.18. Preset Preconditioner
- Scope
Teko Block Preconditioner
- Summary
Use a preset preconditioner for a specific linear system type.
- Description
The preset preconditioner for a given linear system type is intended to provide reasonable behavior for many problems of that type. If this proves to be insufficient, the user must provide more fine-grained control over preconditioner settings. The equivalent command which produces the preconditioner will be output to the log file, and this may be used as a starting point from which changes for robustness may be made (i.e. increasing Chebyshev degree in a MueLu preconditioner).
begin Preset Preconditioner Preconditioner Type end Preset Preconditioner
7.5.3.18.1. Line Commands
Preconditioner Type
- Syntax
Preconditioner Type
- Summary
Set the preset preconditioner type
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_multigrid} |
– |
7.5.3.19. Block Gauss-Seidel Solver
- Scope
Teko Preconditioner
- Summary
Use a Block Gauss-Seidel solver inside a Teko preconditioner.
begin Block Gauss-Seidel Solver Use Default Inverse subblock inverse For Subblocks Use Inverse subblock inverse For Subblock number Use Reordering Heuristic Use Upper Triangle end Block Gauss-Seidel Solver
7.5.3.19.1. Line Commands
Use Default Inverse
- Syntax
Use Default Inverse subblock inverse For Subblocks
- Summary
Define a default solver/preconditioner to be used for across subblocks.
Parameter |
Value |
Default |
|---|---|---|
subblock inverse |
string |
– |
Use Inverse
- Syntax
Use Inverse subblock inverse For Subblock number
- Summary
Define the solver/preconditioner to be used for a given subblock.
Parameter |
Value |
Default |
|---|---|---|
subblock inverse |
string |
– |
number |
integer |
– |
Use Reordering Heuristic
- Syntax
Use Reordering Heuristic
- Summary
DEPRECATED: This command no longer has any effect.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{loss_minimizing | none} |
NONE |
Use Upper Triangle
- Syntax
Use Upper Triangle
- Summary
Define whether to use upper triangular block Gauss-Seidel
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{false | true} |
FALSE |
7.5.3.20. Block Jacobi Solver
- Scope
Teko Preconditioner
- Summary
Use a Block Jacobi solver inside a Teko preconditioner.
begin Block Jacobi Solver Use Default Inverse subblock inverse For Subblocks Use Inverse subblock inverse For Subblock number end Block Jacobi Solver
7.5.3.20.1. Line Commands
Use Default Inverse
- Syntax
Use Default Inverse subblock inverse For Subblocks
- Summary
Define a default solver/preconditioner to be used for across subblocks.
Parameter |
Value |
Default |
|---|---|---|
subblock inverse |
string |
– |
Use Inverse
- Syntax
Use Inverse subblock inverse For Subblock number
- Summary
Define the solver/preconditioner to be used for a given subblock.
Parameter |
Value |
Default |
|---|---|---|
subblock inverse |
string |
– |
number |
integer |
– |
7.5.3.21. Simple Solver
- Scope
Teko Preconditioner
- Summary
Use a SIMPLE/SIMPLEC solver inside a Teko preconditioner.
begin Simple Solver Alpha value Explicit Velocity Inverse Type Use Default Inverse subblock inverse For Subblocks Use Inverse subblock inverse For Subblock number end Simple Solver
7.5.3.21.1. Line Commands
Alpha
- Syntax
Alpha value
- Summary
Set alpha value in SIMPLE block decomposition.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
value |
real |
1 |
Explicit Velocity Inverse Type
- Syntax
Explicit Velocity Inverse Type
- Summary
Set inverse type used for velocity term when forming the Pressure Schur complement operator.
Parameter |
Value |
Default |
|---|---|---|
{= | are | is} |
– |
|
{absrowsum | diagonal | lumped} |
ABSROWSUM |
Use Default Inverse
- Syntax
Use Default Inverse subblock inverse For Subblocks
- Summary
Define a default solver/preconditioner to be used for across subblocks.
Parameter |
Value |
Default |
|---|---|---|
subblock inverse |
string |
– |
Use Inverse
- Syntax
Use Inverse subblock inverse For Subblock number
- Summary
Define the solver/preconditioner to be used for a given subblock.
Parameter |
Value |
Default |
|---|---|---|
subblock inverse |
string |
– |
number |
integer |
– |