version 3.10-dev
Dumux::ParMTSOR< M, X, Y, l > Class Template Reference

Multi-threaded SOR preconditioner using coloring. More...

#include <dumux/linear/preconditioners.hh>

Inheritance diagram for Dumux::ParMTSOR< M, X, Y, l >:

Description

template<class M, class X, class Y, int l = 1>
class Dumux::ParMTSOR< M, X, Y, l >
Template Parameters
MThe matrix type to operate on
XType of the update
YType of the defect
lThe block level to invert. Default is 1

Public Types

typedef M matrix_type
 The matrix type the preconditioner is for. More...
 
typedef X domain_type
 The domain type of the preconditioner. More...
 
typedef Y range_type
 The range type of the preconditioner. More...
 
typedef X::field_type field_type
 The field type of the preconditioner. More...
 
typedef Dune::Simd::Scalar< field_typescalar_field_type
 scalar type underlying the field_type More...
 
typedef Dune::FieldTraits< scalar_field_type >::real_type real_field_type
 real scalar type underlying the field_type More...
 

Public Member Functions

 ParMTSOR (const M &A, int n, real_field_type w)
 Constructor. More...
 
 ParMTSOR (const std::shared_ptr< const Dune::AssembledLinearOperator< M, X, Y > > &A, const Dune::ParameterTree &configuration)
 
 ParMTSOR (const M &A, const Dune::ParameterTree &configuration)
 
void pre (X &, Y &) override
 
void apply (X &v, const Y &d) override
 
template<bool forward>
void apply (X &v, const Y &d)
 
void post (X &) override
 
Dune::SolverCategory::Category category () const override
 Category of the preconditioner (see SolverCategory::Category) More...
 

Member Typedef Documentation

◆ domain_type

template<class M , class X , class Y , int l = 1>
typedef X Dumux::ParMTSOR< M, X, Y, l >::domain_type

◆ field_type

template<class M , class X , class Y , int l = 1>
typedef X::field_type Dumux::ParMTSOR< M, X, Y, l >::field_type

◆ matrix_type

template<class M , class X , class Y , int l = 1>
typedef M Dumux::ParMTSOR< M, X, Y, l >::matrix_type

◆ range_type

template<class M , class X , class Y , int l = 1>
typedef Y Dumux::ParMTSOR< M, X, Y, l >::range_type

◆ real_field_type

template<class M , class X , class Y , int l = 1>
typedef Dune::FieldTraits<scalar_field_type>::real_type Dumux::ParMTSOR< M, X, Y, l >::real_field_type

◆ scalar_field_type

template<class M , class X , class Y , int l = 1>
typedef Dune::Simd::Scalar<field_type> Dumux::ParMTSOR< M, X, Y, l >::scalar_field_type

Constructor & Destructor Documentation

◆ ParMTSOR() [1/3]

template<class M , class X , class Y , int l = 1>
Dumux::ParMTSOR< M, X, Y, l >::ParMTSOR ( const M &  A,
int  n,
real_field_type  w 
)
inline

◆ ParMTSOR() [2/3]

template<class M , class X , class Y , int l = 1>
Dumux::ParMTSOR< M, X, Y, l >::ParMTSOR ( const std::shared_ptr< const Dune::AssembledLinearOperator< M, X, Y > > &  A,
const Dune::ParameterTree &  configuration 
)
inline

◆ ParMTSOR() [3/3]

template<class M , class X , class Y , int l = 1>
Dumux::ParMTSOR< M, X, Y, l >::ParMTSOR ( const M &  A,
const Dune::ParameterTree &  configuration 
)
inline

Member Function Documentation

◆ apply() [1/2]

template<class M , class X , class Y , int l = 1>
template<bool forward>
void Dumux::ParMTSOR< M, X, Y, l >::apply ( X &  v,
const Y &  d 
)
inline

◆ apply() [2/2]

template<class M , class X , class Y , int l = 1>
void Dumux::ParMTSOR< M, X, Y, l >::apply ( X &  v,
const Y &  d 
)
inlineoverride

◆ category()

template<class M , class X , class Y , int l = 1>
Dune::SolverCategory::Category Dumux::ParMTSOR< M, X, Y, l >::category ( ) const
inlineoverride

◆ post()

template<class M , class X , class Y , int l = 1>
void Dumux::ParMTSOR< M, X, Y, l >::post ( X &  )
inlineoverride

◆ pre()

template<class M , class X , class Y , int l = 1>
void Dumux::ParMTSOR< M, X, Y, l >::pre ( X &  ,
Y &   
)
inlineoverride

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