7.3.3. Tpetra Preconditioners
7.3.3.1. Expert Teko Preconditioner
- Scope
Expert Belos Solver, Flexible Gmres 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.3.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.3.3.2. Teko Preconditioner
- Scope
Expert Belos Solver, Flexible Gmres 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.3.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.3.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 Flexible Gmres Solver end begin Gcrodr Solver end begin Gmres Solver end begin Klu2 Solver end begin Poly Solver end begin Preset Solver end begin Superlu Solver end begin Umfpack Solver end end Teko Subblock Solver Solver Name
7.3.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.3.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 Flexible Gmres Solver end begin Gmres Solver end end Teko Block Solver Solver Name
7.3.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 Teko Preconditioner end end Teko Block Preconditioner Solver Name
7.3.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.3.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.3.3.8. Muelu Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.9. Jacobi Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.10. Sgs2 Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.11. Sgs Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.12. Dd-Ilu Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.13. Dd-Ilut Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.14. Dd-Parilut Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.15. Fastilu Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.16. Expert Ifpack2 Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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.3.3.17. Preset Preconditioner
- Scope
Bicgstab Solver, Cg Solver, Expert Belos Solver, Flexible Gmres 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.3.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 | thermal | thermal_multigrid} |
– |
7.3.3.18. 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 Upper Triangle end Block Gauss-Seidel Solver
7.3.3.18.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 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.3.3.19. 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.3.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 |
– |
7.3.3.20. 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.3.3.20.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 |
– |