Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Attributes | List of all members
Ifpack2::BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >::ApplyParameters Struct Reference

Input arguments to applyInverseJacobi More...

#include <Ifpack2_BlockTriDiContainer_decl.hpp>

Public Attributes

bool zeroStartingSolution = false
 
scalar_type dampingFactor = Kokkos::ArithTraits<scalar_type>::one()
 Damping factor. Defaults to 1. More...
 
int maxNumSweeps = 1
 
magnitude_type tolerance = Kokkos::ArithTraits<magnitude_type>::zero()
 
int checkToleranceEvery = 1
 

Detailed Description

template<typename MatrixType>
struct Ifpack2::BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >::ApplyParameters

Input arguments to applyInverseJacobi

Member Data Documentation

template<typename MatrixType >
bool Ifpack2::BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >::ApplyParameters::zeroStartingSolution = false

Set this to true if Y is meant to be treated as 0 on entry. Defaults to false.

template<typename MatrixType >
scalar_type Ifpack2::BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >::ApplyParameters::dampingFactor = Kokkos::ArithTraits<scalar_type>::one()

Damping factor. Defaults to 1.

template<typename MatrixType >
int Ifpack2::BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >::ApplyParameters::maxNumSweeps = 1

The maximum number of sweeps. If the norm-based criterion is not used, it's exactly the number of sweeps. Defaults to 1.

template<typename MatrixType >
magnitude_type Ifpack2::BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >::ApplyParameters::tolerance = Kokkos::ArithTraits<magnitude_type>::zero()

The 2-norm-based termination criterion. If it is larger than 0, then it is used. Termination is then based on maxNumSweeps and this criterion, whichever is reached first. In the case of multiple right hand sides, norm-based termination occurs only when each vector satisfies the criterion. The criterion for a vector is f(D^{-1} (x - A*y)) <= tolerance * f(D^{-1} (x - R*y_0)), where y_0 is the input y, often 0, and f is the maximum of the 2-norms of each degree of freedom, i.e., index of a block. Defaults to 0.

template<typename MatrixType >
int Ifpack2::BlockTriDiContainer< MatrixType, BlockTriDiContainerDetails::ImplSimdTag >::ApplyParameters::checkToleranceEvery = 1

Check the norm-based termination criterion every checkToleranceEvery iterations. Defaults to 1. A norm computation requires a global reduction, which is expensive. Hence it can make sense to check for termination only every 2 or 3 iterations if it is anticipated that the number of iterations required to terminate will be sufficiently large to make 1 or 2 extra iterations relatively cheap. Defaults to 1.


The documentation for this struct was generated from the following file: