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 {=} {exact | exact_no_column_mod | remove | solver | solver_no_column_mod}

   Failed Solve Matrix Output {=} value

   Matrix Output {=} value

   Matrix Output Time Range {=} value1[ value2]

   Matrix Scaling {=} {diagonal | one_norm}

   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 {=} {exact | exact_no_column_mod | remove | solver | solver_no_column_mod}

Summary

Control how Dirichlet BC’s are enforced. Fuego only.

Parameter

Value

Default

{=}

{= | are | is}

value

{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}

value

real1[ real2]


Matrix Scaling

Syntax

Matrix Scaling {=} {diagonal | one_norm}

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}

value

{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 {=} [ {disabled | enabled}  ]

   Residual Scaling {=} {none | preconditioned_r0 | r0 | rhs}

   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 {=} [ {disabled | enabled} ]

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 {=} {none | preconditioned_r0 | r0 | rhs}

Summary

Set the residual scaling for the linear solver

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} [ {disabled | enabled}  ]

   Residual Scaling {=} {none | preconditioned_r0 | r0 | rhs}

   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 {=} [ {disabled | enabled} ]

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 {=} {none | preconditioned_r0 | r0 | rhs}

Summary

Set the residual scaling for the linear solver

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} [ {disabled | enabled}  ]

   Residual Scaling {=} {none | preconditioned_r0 | r0 | rhs}

   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 {=} [ {disabled | enabled} ]

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 {=} {none | preconditioned_r0 | r0 | rhs}

Summary

Set the residual scaling for the linear solver

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} [ {disabled | enabled}  ]

   Residual Scaling {=} {none | preconditioned_r0 | r0 | rhs}

   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 {=} [ {disabled | enabled} ]

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 {=} {none | preconditioned_r0 | r0 | rhs}

Summary

Set the residual scaling for the linear solver

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} [ {disabled | enabled}  ]

   Residual Scaling {=} {none | preconditioned_r0 | r0 | rhs}

   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 {=} [ {disabled | enabled} ]

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 {=} {none | preconditioned_r0 | r0 | rhs}

Summary

Set the residual scaling for the linear solver

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} [ {disabled | enabled}  ]

   Residual Scaling {=} {none | preconditioned_r0 | r0 | rhs}

   Solver Type {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_bicgstab | thermal_multigrid | thermal_symmetric}

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 {=} [ {disabled | enabled} ]

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 {=} {none | preconditioned_r0 | r0 | rhs}

Summary

Set the residual scaling for the linear solver

Parameter

Value

Default

{=}

{= | are | is}

value

{none | preconditioned_r0 | r0 | rhs}

r0


Solver Type

Syntax

Solver Type {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_bicgstab | thermal_multigrid | thermal_symmetric}

Summary

Set the preset solver type

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} [ {disabled | enabled}  ]

   Residual Scaling {=} {none | preconditioned_r0 | r0 | rhs}

   Solver Type {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_bicgstab | thermal_multigrid | thermal_symmetric}

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 {=} [ {disabled | enabled} ]

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 {=} {none | preconditioned_r0 | r0 | rhs}

Summary

Set the residual scaling for the linear solver

Parameter

Value

Default

{=}

{= | are | is}

value

{none | preconditioned_r0 | r0 | rhs}

r0


Solver Type

Syntax

Solver Type {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_bicgstab | thermal_multigrid | thermal_symmetric}

Summary

Set the preset solver type

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} {false | true}

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

subblocks

integer…

number

integer


Use Upper Triangle

Syntax

Use Upper Triangle {=} {false | true}

Summary

Define whether to use upper triangular hierarchical block Gauss-Seidel

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} {metis | off | on | rcm}

   Subdomain Overlap Level {=} value

   Use Thread Parallel Implementation {=} {off | on}

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 {=} {metis | off | on | rcm}

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}

value

{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 {=} {off | on}

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}

value

{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 {=} {metis | off | on | rcm}

   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 {=} {metis | off | on | rcm}

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}

value

{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 {=} {metis | off | on | rcm}

   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 {=} {metis | off | on | rcm}

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}

value

{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 {=} {metis | off | on | rcm}

   Subdomain Overlap Level {=} value

   Sweeps {=} value

   Triangular Solver Type {=} {fast | standard}

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 {=} {metis | off | on | rcm}

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}

value

{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 {=} {fast | standard}

Summary

Set the triangular solver type for FastILU

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_multigrid}

end Preset Preconditioner

7.5.3.17.1. Line Commands

Preconditioner Type

Syntax

Preconditioner Type {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_multigrid}

Summary

Set the preset preconditioner type

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_multigrid}

end Preset Preconditioner

7.5.3.18.1. Line Commands

Preconditioner Type

Syntax

Preconditioner Type {=} {continuity | high_aspect_continuity | multiphysics | scalar_transport | teko_multiphysics | teko_ns | thermal | thermal_multigrid}

Summary

Set the preset preconditioner type

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} {loss_minimizing | none}

   Use Upper Triangle {=} {false | true}

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 {=} {loss_minimizing | none}

Summary

DEPRECATED: This command no longer has any effect.

Parameter

Value

Default

{=}

{= | are | is}

value

{loss_minimizing | none}

NONE


Use Upper Triangle

Syntax

Use Upper Triangle {=} {false | true}

Summary

Define whether to use upper triangular block Gauss-Seidel

Parameter

Value

Default

{=}

{= | are | is}

value

{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 {=} {absrowsum | diagonal | lumped}

   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 {=} {absrowsum | diagonal | lumped}

Summary

Set inverse type used for velocity term when forming the Pressure Schur complement operator.

Parameter

Value

Default

{=}

{= | are | is}

value

{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