dune-istl  2.4.1-rc2
Classes | Enumerations | Functions
Block Recursive Iterative Kernels
Collaboration diagram for Block Recursive Iterative Kernels:

Classes

struct  Dune::BL< l >
 compile-time parameter for block recursion depth More...
 
struct  Dune::algmeta_btsolve< I, diag, relax >
 
struct  Dune::algmeta_btsolve< 0, withdiag, withrelax >
 
struct  Dune::algmeta_btsolve< 0, withdiag, norelax >
 
struct  Dune::algmeta_btsolve< 0, nodiag, withrelax >
 
struct  Dune::algmeta_btsolve< 0, nodiag, norelax >
 
struct  Dune::algmeta_bdsolve< I, relax >
 
struct  Dune::algmeta_bdsolve< 0, withrelax >
 
struct  Dune::algmeta_bdsolve< 0, norelax >
 
struct  Dune::algmeta_itsteps< I >
 
struct  Dune::algmeta_itsteps< 0 >
 
class  Dune::MatrixBlockError
 

Enumerations

enum  Dune::WithDiagType { Dune::withdiag =1, Dune::nodiag =0 }
 
enum  Dune::WithRelaxType { Dune::withrelax =1, Dune::norelax =0 }
 

Functions

template<class M , class X , class Y >
void Dune::bltsolve (const M &A, X &v, const Y &d)
 block lower triangular solve More...
 
template<class M , class X , class Y , class K >
void Dune::bltsolve (const M &A, X &v, const Y &d, const K &w)
 relaxed block lower triangular solve More...
 
template<class M , class X , class Y >
void Dune::ubltsolve (const M &A, X &v, const Y &d)
 unit block lower triangular solve More...
 
template<class M , class X , class Y , class K >
void Dune::ubltsolve (const M &A, X &v, const Y &d, const K &w)
 relaxed unit block lower triangular solve More...
 
template<class M , class X , class Y >
void Dune::butsolve (const M &A, X &v, const Y &d)
 block upper triangular solve More...
 
template<class M , class X , class Y , class K >
void Dune::butsolve (const M &A, X &v, const Y &d, const K &w)
 relaxed block upper triangular solve More...
 
template<class M , class X , class Y >
void Dune::ubutsolve (const M &A, X &v, const Y &d)
 unit block upper triangular solve More...
 
template<class M , class X , class Y , class K >
void Dune::ubutsolve (const M &A, X &v, const Y &d, const K &w)
 relaxed unit block upper triangular solve More...
 
template<class M , class X , class Y , int l>
void Dune::bltsolve (const M &A, X &v, const Y &d, BL< l >)
 block lower triangular solve More...
 
template<class M , class X , class Y , class K , int l>
void Dune::bltsolve (const M &A, X &v, const Y &d, const K &w, BL< l >)
 relaxed block lower triangular solve More...
 
template<class M , class X , class Y , int l>
void Dune::ubltsolve (const M &A, X &v, const Y &d, BL< l >)
 unit block lower triangular solve More...
 
template<class M , class X , class Y , class K , int l>
void Dune::ubltsolve (const M &A, X &v, const Y &d, const K &w, BL< l >)
 relaxed unit block lower triangular solve More...
 
template<class M , class X , class Y , int l>
void Dune::butsolve (const M &A, X &v, const Y &d, BL< l > bl)
 block upper triangular solve More...
 
template<class M , class X , class Y , class K , int l>
void Dune::butsolve (const M &A, X &v, const Y &d, const K &w, BL< l > bl)
 relaxed block upper triangular solve More...
 
template<class M , class X , class Y , int l>
void Dune::ubutsolve (const M &A, X &v, const Y &d, BL< l > bl)
 unit block upper triangular solve More...
 
template<class M , class X , class Y , class K , int l>
void Dune::ubutsolve (const M &A, X &v, const Y &d, const K &w, BL< l > bl)
 relaxed unit block upper triangular solve More...
 
template<class M , class X , class Y >
void Dune::bdsolve (const M &A, X &v, const Y &d)
 block diagonal solve, no relaxation More...
 
template<class M , class X , class Y , class K >
void Dune::bdsolve (const M &A, X &v, const Y &d, const K &w)
 block diagonal solve, with relaxation More...
 
template<class M , class X , class Y , int l>
void Dune::bdsolve (const M &A, X &v, const Y &d, BL< l >)
 block diagonal solve, no relaxation More...
 
template<class M , class X , class Y , class K , int l>
void Dune::bdsolve (const M &A, X &v, const Y &d, const K &w, BL< l >)
 block diagonal solve, with relaxation More...
 
template<class M , class X , class Y , class K >
void Dune::dbgs (const M &A, X &x, const Y &b, const K &w)
 GS step. More...
 
template<class M , class X , class Y , class K , int l>
void Dune::dbgs (const M &A, X &x, const Y &b, const K &w, BL< l >)
 GS step. More...
 
template<class M , class X , class Y , class K >
void Dune::bsorf (const M &A, X &x, const Y &b, const K &w)
 SOR step. More...
 
template<class M , class X , class Y , class K , int l>
void Dune::bsorf (const M &A, X &x, const Y &b, const K &w, BL< l >)
 SOR step. More...
 
template<class M , class X , class Y , class K >
void Dune::bsorb (const M &A, X &x, const Y &b, const K &w)
 SSOR step. More...
 
template<class M , class X , class Y , class K , int l>
void Dune::bsorb (const M &A, X &x, const Y &b, const K &w, BL< l >)
 Backward SOR step. More...
 
template<class M , class X , class Y , class K >
void Dune::dbjac (const M &A, X &x, const Y &b, const K &w)
 Jacobi step. More...
 
template<class M , class X , class Y , class K , int l>
void Dune::dbjac (const M &A, X &x, const Y &b, const K &w, BL< l >)
 Jacobi step. More...
 
template<class M >
void Dune::bilu0_decomposition (M &A)
 compute ILU decomposition of A. A is overwritten by its decomposition More...
 
template<class M , class X , class Y >
void Dune::bilu_backsolve (const M &A, X &v, const Y &d)
 LU backsolve with stored inverse. More...
 
template<class M >
M::field_type & Dune::firstmatrixelement (M &A)
 
template<class K , int n, int m>
K & Dune::firstmatrixelement (FieldMatrix< K, n, m > &A)
 
template<class K >
K & Dune::firstmatrixelement (FieldMatrix< K, 1, 1 > &A)
 
template<class M >
void Dune::bilu_decomposition (const M &A, int n, M &ILU)
 

Detailed Description

Generic iterative kernels for the solvers which work on the block recursive structure of the matrices and vectors.

Enumeration Type Documentation

Enumerator
withdiag 
nodiag 
Enumerator
withrelax 
norelax 

Function Documentation

template<class M , class X , class Y >
void Dune::bdsolve ( const M &  A,
X &  v,
const Y &  d 
)

block diagonal solve, no relaxation

References Dune::algmeta_bdsolve< I, relax >::bdsolve().

template<class M , class X , class Y , class K >
void Dune::bdsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w 
)

block diagonal solve, with relaxation

References Dune::algmeta_bdsolve< I, relax >::bdsolve().

template<class M , class X , class Y , int l>
void Dune::bdsolve ( const M &  A,
X &  v,
const Y &  d,
BL< l >   
)

block diagonal solve, no relaxation

References Dune::algmeta_bdsolve< I, relax >::bdsolve().

template<class M , class X , class Y , class K , int l>
void Dune::bdsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w,
BL< l >   
)

block diagonal solve, with relaxation

References Dune::algmeta_bdsolve< I, relax >::bdsolve().

template<class M >
void Dune::bilu0_decomposition ( M &  A)

compute ILU decomposition of A. A is overwritten by its decomposition

References Dune::MatrixBlockError::r.

Referenced by Dune::bilu_decomposition(), Dune::SeqILU0< M, X, Y, l >::SeqILU0(), Dune::ILU0SubdomainSolver< M, X, Y >::setSubMatrix(), and test_Iter().

template<class M , class X , class Y >
void Dune::bilu_backsolve ( const M &  A,
X &  v,
const Y &  d 
)
template<class M >
void Dune::bilu_decomposition ( const M &  A,
int  n,
M &  ILU 
)

ILU decomposition of order n Computes ILU decomposition of order n. The matrix ILU should be an empty matrix in row_wise creation mode. This allows the user to either specify the number of nonzero elements or to determine it automatically at run-time.

References Dune::bilu0_decomposition(), and Dune::firstmatrixelement().

Referenced by Dune::SeqILUn< M, X, Y, l >::SeqILUn(), and Dune::ILUNSubdomainSolver< M, X, Y >::setSubMatrix().

template<class M , class X , class Y >
void Dune::bltsolve ( const M &  A,
X &  v,
const Y &  d 
)

block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y , class K >
void Dune::bltsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w 
)

relaxed block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y , int l>
void Dune::bltsolve ( const M &  A,
X &  v,
const Y &  d,
BL< l >   
)

block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y , class K , int l>
void Dune::bltsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w,
BL< l >   
)

relaxed block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y , class K >
void Dune::bsorb ( const M &  A,
X &  x,
const Y &  b,
const K &  w 
)
template<class M , class X , class Y , class K , int l>
void Dune::bsorb ( const M &  A,
X &  x,
const Y &  b,
const K &  w,
BL< l >   
)

Backward SOR step.

References Dune::algmeta_itsteps< I >::bsorb().

template<class M , class X , class Y , class K >
void Dune::bsorf ( const M &  A,
X &  x,
const Y &  b,
const K &  w 
)
template<class M , class X , class Y , class K , int l>
void Dune::bsorf ( const M &  A,
X &  x,
const Y &  b,
const K &  w,
BL< l >   
)

SOR step.

References Dune::algmeta_itsteps< I >::bsorf().

template<class M , class X , class Y >
void Dune::butsolve ( const M &  A,
X &  v,
const Y &  d 
)

block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().

template<class M , class X , class Y , class K >
void Dune::butsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w 
)

relaxed block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().

template<class M , class X , class Y , int l>
void Dune::butsolve ( const M &  A,
X &  v,
const Y &  d,
BL< l >  bl 
)

block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().

template<class M , class X , class Y , class K , int l>
void Dune::butsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w,
BL< l >  bl 
)

relaxed block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().

template<class M , class X , class Y , class K >
void Dune::dbgs ( const M &  A,
X &  x,
const Y &  b,
const K &  w 
)
template<class M , class X , class Y , class K , int l>
void Dune::dbgs ( const M &  A,
X &  x,
const Y &  b,
const K &  w,
BL< l >   
)

GS step.

References Dune::algmeta_itsteps< I >::dbgs().

template<class M , class X , class Y , class K >
void Dune::dbjac ( const M &  A,
X &  x,
const Y &  b,
const K &  w 
)
template<class M , class X , class Y , class K , int l>
void Dune::dbjac ( const M &  A,
X &  x,
const Y &  b,
const K &  w,
BL< l >   
)

Jacobi step.

References Dune::algmeta_itsteps< I >::dbjac().

template<class M >
M::field_type& Dune::firstmatrixelement ( M &  A)
template<class K , int n, int m>
K& Dune::firstmatrixelement ( FieldMatrix< K, n, m > &  A)
template<class K >
K& Dune::firstmatrixelement ( FieldMatrix< K, 1, 1 > &  A)
template<class M , class X , class Y >
void Dune::ubltsolve ( const M &  A,
X &  v,
const Y &  d 
)

unit block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y , class K >
void Dune::ubltsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w 
)

relaxed unit block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y , int l>
void Dune::ubltsolve ( const M &  A,
X &  v,
const Y &  d,
BL< l >   
)

unit block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y , class K , int l>
void Dune::ubltsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w,
BL< l >   
)

relaxed unit block lower triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::bltsolve().

template<class M , class X , class Y >
void Dune::ubutsolve ( const M &  A,
X &  v,
const Y &  d 
)

unit block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().

template<class M , class X , class Y , class K >
void Dune::ubutsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w 
)

relaxed unit block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().

template<class M , class X , class Y , int l>
void Dune::ubutsolve ( const M &  A,
X &  v,
const Y &  d,
BL< l >  bl 
)

unit block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().

template<class M , class X , class Y , class K , int l>
void Dune::ubutsolve ( const M &  A,
X &  v,
const Y &  d,
const K &  w,
BL< l >  bl 
)

relaxed unit block upper triangular solve

References Dune::algmeta_btsolve< I, diag, relax >::butsolve().