Collaboration diagram for Preconditioners:

Classes

class  Dune::OverlappingSchwarzInitializer< I, S, D >
 Initializer for SuperLU Matrices representing the subdomains. More...
struct  Dune::AdditiveSchwarzMode
 Tag that the tells the schwarz method to be additive. More...
struct  Dune::MultiplicativeSchwarzMode
 Tag that tells the Schwarz method to be multiplicative. More...
struct  Dune::SymmetricMultiplicativeSchwarzMode
 Tag that tells the Schwarz method to be multiplicative and symmetric. More...
class  Dune::DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y >
struct  Dune::OverlappingAssigner< T >
class  Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >
struct  Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
class  Dune::OverlappingAssignerILUBase< M, X, Y >
class  Dune::OverlappingAssigner< ILU0SubdomainSolver< M, X, Y > >
class  Dune::OverlappingAssigner< ILUNSubdomainSolver< M, X, Y > >
struct  Dune::AdditiveAdder< S, T >
struct  Dune::AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >
struct  Dune::MultiplicativeAdder< S, T >
struct  Dune::MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >
struct  Dune::AdderSelector< T, X, S >
 template meta program for choosing how to add the correction. More...
struct  Dune::AdderSelector< AdditiveSchwarzMode, X, S >
struct  Dune::AdderSelector< MultiplicativeSchwarzMode, X, S >
struct  Dune::AdderSelector< SymmetricMultiplicativeSchwarzMode, X, S >
struct  Dune::IteratorDirectionSelector< T1, T2, forward >
 Helper template meta program for application of overlapping schwarz. More...
struct  Dune::IteratorDirectionSelector< T1, T2, false >
struct  Dune::SeqOverlappingSchwarzApplier< T >
 Helper template meta program for application of overlapping schwarz. More...
struct  Dune::SeqOverlappingSchwarzApplier< SeqOverlappingSchwarz< M, X, SymmetricMultiplicativeSchwarzMode, TD, TA > >
struct  Dune::SeqOverlappingSchwarzAssembler< T >
struct  Dune::SeqOverlappingSchwarzAssembler< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >
struct  Dune::SeqOverlappingSchwarzAssembler< SuperLU< T > >
struct  Dune::SeqOverlappingSchwarzAssemblerILUBase< M, X, Y >
struct  Dune::SeqOverlappingSchwarzAssembler< ILU0SubdomainSolver< M, X, Y > >
struct  Dune::SeqOverlappingSchwarzAssembler< ILUNSubdomainSolver< M, X, Y > >
class  Dune::SeqOverlappingSchwarz< M, X, TM, TD, TA >
 Sequential overlapping Schwarz preconditioner. More...
struct  Dune::SeqOverlappingSchwarzDomainSize< M >
struct  Dune::SeqOverlappingSchwarzDomainSize< BCRSMatrix< FieldMatrix< T, n, m >, A > >
class  Dune::Preconditioner< X, Y >
 Base class for matrix free definition of preconditioners. More...
class  Dune::SeqSSOR< M, X, Y, l >
 Sequential SSOR preconditioner. More...
class  Dune::SeqSOR< M, X, Y, l >
 Sequential SOR preconditioner. More...
class  Dune::SeqGS< M, X, Y, l >
 Sequential Gauss Seidel preconditioner. More...
class  Dune::SeqJac< M, X, Y, l >
 The sequential jacobian preconditioner. More...
class  Dune::SeqILU0< M, X, Y, l >
 Sequential ILU0 preconditioner. More...
class  Dune::SeqILUn< M, X, Y, l >
 Sequential ILU(n) preconditioner. More...
class  Dune::Richardson< X, Y >
 Richardson preconditioner. More...
class  Dune::ParSSOR< M, X, Y, C >
 A parallel SSOR preconditioner. More...
class  Dune::BlockPreconditioner< X, Y, C, T >
 Block parallel preconditioner. More...

Namespaces

namespace  Dune::Amg

Modules

 Parallel Algebraic Multigrid
 

A Parallel Algebraic Multigrid based on Agglomeration.


Files

file  overlappingschwarz.hh
 

Contains one level overlapping Schwarz preconditioners.


file  preconditioners.hh
 

Define general preconditioner interface.


Functions

 Dune::OverlappingSchwarzInitializer::OverlappingSchwarzInitializer (InitializerList &il, const IndexSet &indices, const subdomain_vector &domains)
void Dune::OverlappingSchwarzInitializer::addRowNnz (const Iter &row)
void Dune::OverlappingSchwarzInitializer::allocate ()
void Dune::OverlappingSchwarzInitializer::countEntries (const Iter &row, const CIter &col) const
void Dune::OverlappingSchwarzInitializer::calcColstart () const
void Dune::OverlappingSchwarzInitializer::copyValue (const Iter &row, const CIter &col) const
void Dune::OverlappingSchwarzInitializer::createMatrix () const
 Dune::OverlappingSchwarzInitializer::IndexMap::IndexMap ()
void Dune::OverlappingSchwarzInitializer::IndexMap::insert (size_type grow)
const_iterator Dune::OverlappingSchwarzInitializer::IndexMap::find (size_type grow) const
iterator Dune::OverlappingSchwarzInitializer::IndexMap::find (size_type grow)
const_iterator Dune::OverlappingSchwarzInitializer::IndexMap::end () const
iterator Dune::OverlappingSchwarzInitializer::IndexMap::end ()
const_iterator Dune::OverlappingSchwarzInitializer::IndexMap::begin () const
iterator Dune::OverlappingSchwarzInitializer::IndexMap::begin ()
 Dune::SeqOverlappingSchwarz::SeqOverlappingSchwarz (const matrix_type &mat, const rowtodomain_vector &rowToDomain, field_type relaxationFactor=1, bool onTheFly_=true)
 Dune::SeqOverlappingSchwarz::SeqOverlappingSchwarz (const matrix_type &mat, const subdomain_vector &subDomains, field_type relaxationFactor=1, bool onTheFly_=true)
 Construct the overlapping Schwarz method.
template<class RowToDomain , class Solvers , class SubDomains >
static std::size_t Dune::SeqOverlappingSchwarzAssembler< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::assembleLocalProblems (const RowToDomain &rowToDomain, const matrix_type &mat, Solvers &solvers, const SubDomains &domains, bool onTheFly)
template<class RowToDomain , class Solvers , class SubDomains >
static std::size_t Dune::SeqOverlappingSchwarzAssembler< SuperLU< T > >::assembleLocalProblems (const RowToDomain &rowToDomain, const matrix_type &mat, Solvers &solvers, const SubDomains &domains, bool onTheFly)
template<class RowToDomain , class Solvers , class SubDomains >
static std::size_t Dune::SeqOverlappingSchwarzAssemblerILUBase::assembleLocalProblems (const RowToDomain &rowToDomain, const matrix_type &mat, Solvers &solvers, const SubDomains &domains, bool onTheFly)
virtual void Dune::SeqOverlappingSchwarz::apply (X &v, const X &d)
 Apply the precondtioner.
 Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::OverlappingAssigner (std::size_t maxlength, const BCRSMatrix< FieldMatrix< K, n, n >, Al > &mat_, const X &b_, Y &x_)
 Constructor.
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::deallocate ()
 Deallocates memory of the local vector.
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::resetIndexForNextDomain ()
DynamicVector< K > & Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::lhs ()
 Get the local left hand side.
DynamicVector< K > & Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::rhs ()
 Get the local right hand side.
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::relaxResult (field_type relax)
 relax the result.
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::operator() (const size_type &domainIndex)
 calculate one entry of the local defect.
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::assignResult (block_type &res)
 Assigns the block to the current local index. At the same time the local defect is calculated for the index and stored in the rhs. Afterwards the is incremented for the next block.
 Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::OverlappingAssigner (std::size_t maxlength, const BCRSMatrix< FieldMatrix< T, n, m >, A > &mat, const range_type &b, range_type &x)
 Constructor.
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::deallocate ()
 Deallocates memory of the local vector.
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::operator() (const size_type &domain)
 calculate one entry of the local defect.
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::relaxResult (field_type relax)
 relax the result.
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::assignResult (block_type &res)
 Assigns the block to the current local index. At the same time the local defect is calculated for the index and stored in the rhs. Afterwards the is incremented for the next block.
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::resetIndexForNextDomain ()
field_type * Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::lhs ()
 Get the local left hand side.
field_type * Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::rhs ()
 Get the local right hand side.
 Dune::OverlappingAssignerILUBase::OverlappingAssignerILUBase (std::size_t maxlength, const M &mat, const Y &b, X &x)
 Constructor.
void Dune::OverlappingAssignerILUBase::deallocate ()
 Deallocates memory of the local vector.
void Dune::OverlappingAssignerILUBase::operator() (const size_type &domain)
 calculate one entry of the local defect.
void Dune::OverlappingAssignerILUBase::relaxResult (field_type relax)
 relax the result.
void Dune::OverlappingAssignerILUBase::assignResult (block_type &res)
 Assigns the block to the current local index. At the same time the local defect is calculated for the index and stored in the rhs. Afterwards the is incremented for the next block.
X & Dune::OverlappingAssignerILUBase::lhs ()
Y & Dune::OverlappingAssignerILUBase::rhs ()
 Get the local right hand side.
void Dune::OverlappingAssignerILUBase::resetIndexForNextDomain ()
 Dune::AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >::AdditiveAdder (BlockVector< FieldVector< T, n >, A > &v, BlockVector< FieldVector< T, n >, A > &x, OverlappingAssigner< S > &assigner, const T &relax_)
void Dune::AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >::operator() (const size_type &domain)
void Dune::AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >::axpy ()
 Dune::MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >::MultiplicativeAdder (BlockVector< FieldVector< T, n >, A > &v, BlockVector< FieldVector< T, n >, A > &x, OverlappingAssigner< S > &assigner_, const T &relax_)
void Dune::MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >::operator() (const size_type &domain)
void Dune::MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >::axpy ()

Detailed Description

All of our Krylow solvers are preconditioned versions. There are sequential preconditioners (e,g. SeqJacobi, SeqSOR, SeqSSOR) as well as parallel preconditioners (e.g. AMG, BlockPreconditioner) available for plugging them into the solvers together with matching ScalarProducts.

Some of the available perconditioners (e.g. SeqJacobi, SeqSOR, SeqSSOR)) may be given an aditional int as a template parameter, the block recursion level. These preconditioners can be used on blockrecursive matrices with an arbitrary hierarchy depths (eg. BCRSMatrix<BCRSMatrix<FieldMatrix,n,m> > >. Given a block recursion level $k$ those preconditioners work as normal on the offdiagonal blocks, treating them as traditional matrix entries. For the diagonal values a special procedure applies: If $k>1$ the diagonal is treated as a matrix itself and the preconditioner is applied recursively on the matrix representing the diagonal value $D=A_{ii}$ with block level $k-1$. For the case that $k=1$ the diagonal is treated as a matrix entry resulting in a linear solve or an identity operation depending on the algorithm.


Function Documentation

template<typename S , typename T , typename A , int n>
Dune::AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >::AdditiveAdder ( BlockVector< FieldVector< T, n >, A > &  v,
BlockVector< FieldVector< T, n >, A > &  x,
OverlappingAssigner< S > &  assigner,
const T &  relax_ 
) [inherited]
template<class I , class S , class D >
void Dune::OverlappingSchwarzInitializer< I, S, D >::addRowNnz ( const Iter row  )  [inherited]
template<class I , class S , class D >
void Dune::OverlappingSchwarzInitializer< I, S, D >::allocate (  )  [inherited]
template<class M , class X, class TM , class TD , class TA >
void Dune::SeqOverlappingSchwarz< M, X, TM, TD, TA >::apply ( X &  v,
const X &  d 
) [virtual, inherited]

Apply the precondtioner.

Apply one step of the preconditioner to the system A(v)=d.

On entry v=0 and d=b-A(x) (although this might not be computed in that way. On exit v contains the update, i.e one step computes $ v = M^{-1} d $ where $ M $ is the approximate inverse of the operator $ A $ characterizing the preconditioner.

Parameters:
[out] v The update to be computed
d The current defect.

Implements Dune::Preconditioner< X, X >.

template<class T >
template<class RowToDomain , class Solvers , class SubDomains >
std::size_t Dune::SeqOverlappingSchwarzAssembler< SuperLU< T > >::assembleLocalProblems ( const RowToDomain &  rowToDomain,
const matrix_type mat,
Solvers &  solvers,
const SubDomains &  domains,
bool  onTheFly 
) [static, inherited]
template<class M , class X , class Y >
template<class RowToDomain , class Solvers , class SubDomains >
std::size_t Dune::SeqOverlappingSchwarzAssemblerILUBase< M, X, Y >::assembleLocalProblems ( const RowToDomain &  rowToDomain,
const matrix_type mat,
Solvers &  solvers,
const SubDomains &  domains,
bool  onTheFly 
) [static, inherited]
template<class K , int n, class Al , class X , class Y >
template<class RowToDomain , class Solvers , class SubDomains >
std::size_t Dune::SeqOverlappingSchwarzAssembler< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::assembleLocalProblems ( const RowToDomain &  rowToDomain,
const matrix_type mat,
Solvers &  solvers,
const SubDomains &  domains,
bool  onTheFly 
) [static, inherited]
template<typename T , typename A , int n, int m>
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::assignResult ( block_type res  )  [inherited]

Assigns the block to the current local index. At the same time the local defect is calculated for the index and stored in the rhs. Afterwards the is incremented for the next block.

template<class M , class X , class Y >
void Dune::OverlappingAssignerILUBase< M, X, Y >::assignResult ( block_type res  )  [inherited]

Assigns the block to the current local index. At the same time the local defect is calculated for the index and stored in the rhs. Afterwards the is incremented for the next block.

template<class K , int n, class Al , class X , class Y >
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::assignResult ( block_type res  )  [inline, inherited]

Assigns the block to the current local index. At the same time the local defect is calculated for the index and stored in the rhs. Afterwards the is incremented for the next block.

template<typename S , typename T , typename A , int n>
void Dune::AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >::axpy (  )  [inherited]
template<typename S , typename T , typename A , int n>
void Dune::MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >::axpy (  )  [inherited]
template<class I , class S , class D >
OverlappingSchwarzInitializer< I, S, D >::IndexMap::const_iterator Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::begin (  )  const [inherited]
template<class I , class S , class D >
OverlappingSchwarzInitializer< I, S, D >::IndexMap::iterator Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::begin (  )  [inherited]
template<class I , class S , class D >
void Dune::OverlappingSchwarzInitializer< I, S, D >::calcColstart (  )  const [inherited]
template<class I , class S , class D >
void Dune::OverlappingSchwarzInitializer< I, S, D >::copyValue ( const Iter row,
const CIter col 
) const [inherited]
template<class I , class S , class D >
void Dune::OverlappingSchwarzInitializer< I, S, D >::countEntries ( const Iter row,
const CIter col 
) const [inherited]
template<class I , class S , class D >
void Dune::OverlappingSchwarzInitializer< I, S, D >::createMatrix (  )  const [inherited]
template<class M , class X , class Y >
void Dune::OverlappingAssignerILUBase< M, X, Y >::deallocate (  )  [inherited]

Deallocates memory of the local vector.

Warning:
memory is released by the destructor as this Functor is copied and the copy needs to still have the data.
template<class K , int n, class Al , class X , class Y >
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::deallocate (  )  [inline, inherited]

Deallocates memory of the local vector.

template<typename T , typename A , int n, int m>
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::deallocate (  )  [inherited]

Deallocates memory of the local vector.

Warning:
memory is released by the destructor as this Functor is copied and the copy needs to still have the data.
template<class I , class S , class D >
OverlappingSchwarzInitializer< I, S, D >::IndexMap::const_iterator Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::end (  )  const [inherited]
template<class I , class S , class D >
OverlappingSchwarzInitializer< I, S, D >::IndexMap::iterator Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::end (  )  [inherited]
template<class I , class S , class D >
OverlappingSchwarzInitializer< I, S, D >::IndexMap::const_iterator Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::find ( size_type  grow  )  const [inherited]
template<class I , class S , class D >
OverlappingSchwarzInitializer< I, S, D >::IndexMap::iterator Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::find ( size_type  grow  )  [inherited]
template<class I , class S , class D >
Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::IndexMap (  )  [inherited]
template<class I , class S , class D >
void Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::insert ( size_type  grow  )  [inherited]

References row.

template<typename T , typename A , int n, int m>
OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::field_type * Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::lhs (  )  [inherited]

Get the local left hand side.

Returns:
The local left hand side.
template<class K , int n, class Al , class X , class Y >
DynamicVector< K > & Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::lhs (  )  [inline, inherited]

Get the local left hand side.

Returns:
The local left hand side.
template<class M , class X , class Y >
X & Dune::OverlappingAssignerILUBase< M, X, Y >::lhs (  )  [inherited]
template<typename S , typename T , typename A , int n>
Dune::MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >::MultiplicativeAdder ( BlockVector< FieldVector< T, n >, A > &  v,
BlockVector< FieldVector< T, n >, A > &  x,
OverlappingAssigner< S > &  assigner_,
const T &  relax_ 
) [inherited]
template<typename T , typename A , int n, int m>
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::operator() ( const size_type domain  )  [inherited]

calculate one entry of the local defect.

Parameters:
domain One index of the domain.

References col, and mat.

template<class M , class X , class Y >
void Dune::OverlappingAssignerILUBase< M, X, Y >::operator() ( const size_type domain  )  [inherited]

calculate one entry of the local defect.

Parameters:
domain One index of the domain.

References col.

template<typename S , typename T , typename A , int n>
void Dune::AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >::operator() ( const size_type domain  )  [inherited]
template<class K , int n, class Al , class X , class Y >
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::operator() ( const size_type domainIndex  )  [inherited]

calculate one entry of the local defect.

Parameters:
domain One index of the domain.

References col, and mat.

template<typename S , typename T , typename A , int n>
void Dune::MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >::operator() ( const size_type domain  )  [inherited]
template<class K , int n, class Al , class X , class Y >
Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::OverlappingAssigner ( std::size_t  maxlength,
const BCRSMatrix< FieldMatrix< K, n, n >, Al > &  mat_,
const X &  b_,
Y &  x_ 
) [inherited]

Constructor.

Parameters:
mat The global matrix.
rhs storage for the local defect.
b the global right hand side.
x the global left hand side.
template<typename T , typename A , int n, int m>
Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::OverlappingAssigner ( std::size_t  maxlength,
const BCRSMatrix< FieldMatrix< T, n, m >, A > &  mat,
const range_type b,
range_type x 
) [inherited]

Constructor.

Parameters:
mat The global matrix.
rhs storage for the local defect.
b the global right hand side.
x the global left hand side.
template<class M , class X , class Y >
Dune::OverlappingAssignerILUBase< M, X, Y >::OverlappingAssignerILUBase ( std::size_t  maxlength,
const M &  mat,
const Y &  b,
X &  x 
) [inherited]

Constructor.

Parameters:
mat The global matrix.
rhs storage for the local defect.
b the global right hand side.
x the global left hand side.
template<class I , class S , class D >
Dune::OverlappingSchwarzInitializer< I, S, D >::OverlappingSchwarzInitializer ( InitializerList il,
const IndexSet indices,
const subdomain_vector domains 
) [inherited]
template<typename T , typename A , int n, int m>
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::relaxResult ( field_type  relax  )  [inherited]

relax the result.

Parameters:
relax The relaxation parameter.
template<class M , class X , class Y >
void Dune::OverlappingAssignerILUBase< M, X, Y >::relaxResult ( field_type  relax  )  [inherited]

relax the result.

Parameters:
relax The relaxation parameter.
template<class K , int n, class Al , class X , class Y >
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::relaxResult ( field_type  relax  )  [inline, inherited]

relax the result.

Parameters:
relax The relaxation parameter.
template<typename T , typename A , int n, int m>
void Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::resetIndexForNextDomain (  )  [inherited]
template<class K , int n, class Al , class X , class Y >
void Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::resetIndexForNextDomain (  )  [inline, inherited]
template<class M , class X , class Y >
void Dune::OverlappingAssignerILUBase< M, X, Y >::resetIndexForNextDomain (  )  [inherited]
template<typename T , typename A , int n, int m>
OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::field_type * Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::rhs (  )  [inherited]

Get the local right hand side.

Returns:
The local right hand side.
template<class K , int n, class Al , class X , class Y >
DynamicVector< K > & Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::rhs (  )  [inline, inherited]

Get the local right hand side.

Returns:
The local right hand side.
template<class M , class X , class Y >
Y & Dune::OverlappingAssignerILUBase< M, X, Y >::rhs (  )  [inherited]

Get the local right hand side.

Returns:
The local right hand side.
template<class M , class X , class TM , class TD , class TA >
Dune::SeqOverlappingSchwarz< M, X, TM, TD, TA >::SeqOverlappingSchwarz ( const matrix_type mat,
const subdomain_vector subDomains,
field_type  relaxationFactor = 1,
bool  onTheFly_ = true 
) [inherited]

Construct the overlapping Schwarz method.

Parameters:
mat The matrix to precondition.
subDomains Array of sets of rowindices belonging to an overlapping subdomain
relaxationFactor relaxation factor
onTheFly If true the decomposition of the exact local solvers is computed on the fly for each subdomain and iteration step. If false all decompositions are computed in pre and only forward and backward substitution takes place in the iteration steps.
Warning:
Each rowindex should be part of at least one subdomain!

References row.

template<class M , class X , class TM , class TD , class TA >
Dune::SeqOverlappingSchwarz< M, X, TM, TD, TA >::SeqOverlappingSchwarz ( const matrix_type mat,
const rowtodomain_vector rowToDomain,
field_type  relaxationFactor = 1,
bool  onTheFly_ = true 
) [inherited]

Construct the overlapping Schwarz method

Parameters:
mat The matrix to precondition.
rowToDomain The mapping of the rows onto the domains.
relaxationFactor relaxation factor
onTheFly If true the decomposition of the exact local solvers is computed on the fly for each subdomain and iteration step. If false all decompositions are computed in pre and only forward and backward substitution takes place in the iteration steps.

References row.

Generated on Fri Apr 29 2011 with Doxygen (ver 1.7.1) [doxygen-log,error-log].