deal.II version 9.7.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData Struct Reference

The set of additional parameters to tune the preconditioner. More...

#include <deal.II/lac/trilinos_tpetra_precondition.h>

Detailed Description

template<typename Number, typename MemorySpace = ::MemorySpace::Host>
struct LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData

The set of additional parameters to tune the preconditioner.

Definition at line 533 of file trilinos_tpetra_precondition.h.

Public Member Functions

 AdditionalData (const double omega=1, const double eta=1.5, const bool fix_diagonal=false, const double min_diagonal=0, const int n_sweeps=1)
 Constructor.

Public Attributes

double omega
 Relaxation damping factor.
double eta
 Threshold parameter for diagonal correction.
bool fix_diagonal
 Whether or not to enlarge entries below a threshold.
double min_diagonal
 Threshold below which entries will be fixed.
int n_sweeps
 Set how often the preconditioner should be applied during vmult() or Tvmult().

Constructor & Destructor Documentation

◆ AdditionalData()

template<typename Number, typename MemorySpace = ::MemorySpace::Host>
LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData::AdditionalData ( const double omega = 1,
const double eta = 1.5,
const bool fix_diagonal = false,
const double min_diagonal = 0,
const int n_sweeps = 1 )

Constructor.

Set the parameters to be used in the preconditioner. The defaults yield the l1 Gauss-Seidel preconditioner specified in the original publication.

Parameters
omegaThe damping factor for the relaxation.
etaThreshold parameter for diagonal correction.
fix_diagonalFix small diagonal entries for the inversion?
min_diagonalThreshold for fix_diagonal.
n_sweepsNumber of relaxation sweeps per call to vmult or Tvmult.

Member Data Documentation

◆ omega

template<typename Number, typename MemorySpace = ::MemorySpace::Host>
double LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData::omega

Relaxation damping factor.

Definition at line 558 of file trilinos_tpetra_precondition.h.

◆ eta

template<typename Number, typename MemorySpace = ::MemorySpace::Host>
double LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData::eta

Threshold parameter for diagonal correction.

The l1 correction for a row i will only be added if it is more than eta times larger than the original diagonal entry.

Definition at line 567 of file trilinos_tpetra_precondition.h.

◆ fix_diagonal

template<typename Number, typename MemorySpace = ::MemorySpace::Host>
bool LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData::fix_diagonal

Whether or not to enlarge entries below a threshold.

If the matrix diagonal contains entries close to zero, their inversion will be close to division by zero. This can be corrected by setting this value to true. This will result in additional computational work during initialization.

Definition at line 576 of file trilinos_tpetra_precondition.h.

◆ min_diagonal

template<typename Number, typename MemorySpace = ::MemorySpace::Host>
double LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData::min_diagonal

Threshold below which entries will be fixed.

If the threshold is zero (default) only entries which are exactly zero will be replaced will small nonzero values.

Definition at line 584 of file trilinos_tpetra_precondition.h.

◆ n_sweeps

template<typename Number, typename MemorySpace = ::MemorySpace::Host>
int LinearAlgebra::TpetraWrappers::PreconditionL1GaussSeidel< Number, MemorySpace >::AdditionalData::n_sweeps

Set how often the preconditioner should be applied during vmult() or Tvmult().

Definition at line 589 of file trilinos_tpetra_precondition.h.


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