Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > Class Template Reference
[Iterative Solvers Template Library (ISTL)]

SuperLu Solver. More...

#include <dune/istl/superlu.hh>

Inheritance diagram for Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >:
Inheritance graph

List of all members.

Public Types

typedef Dune::BCRSMatrix
< FieldMatrix< T, n, m >, A
Matrix
typedef Dune::SuperLUMatrix
< Matrix
SuperLUMatrix
typedef Dune::BlockVector
< FieldVector< T, m >, A
domain_type
 The type of the domain of the solver.
typedef Dune::BlockVector
< FieldVector< T, n >, A
range_type
 The type of the range of the solver.
typedef BlockVector
< FieldVector< T, m >, A >
::field_type 
field_type
 The field type of the operator.

Public Member Functions

 SuperLU (const Matrix &mat, bool verbose=false)
 Constructs the SuperLU solver.
 SuperLU ()
 Empty default constructor.
 ~SuperLU ()
void apply (domain_type &x, range_type &b, InverseOperatorResult &res)
void apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res)
void apply (T *x, T *b)
 Apply SuperLu to C arrays.
void setMatrix (const Matrix &mat)
 Initialize data from given matrix.
template<class S >
void setSubMatrix (const Matrix &mat, const S &rowIndexSet)
void setVerbosity (bool v)
void free ()
 free allocated space.
virtual void apply (BlockVector< FieldVector< T, m >, A > &x, BlockVector< FieldVector< T, n >, A > &b, InverseOperatorResult &res)=0
 Apply inverse operator,.
virtual void apply (BlockVector< FieldVector< T, m >, A > &x, BlockVector< FieldVector< T, n >, A > &b, double reduction, InverseOperatorResult &res)=0
 apply inverse operator, with given convergence criteria.

Protected Types

enum  

Protected Member Functions

void printHeader (std::ostream &s) const
 helper function for printing header of solver output
void printOutput (std::ostream &s, const double iter, const DataType &norm, const DataType &norm_old) const
 helper function for printing solver output
void printOutput (std::ostream &s, const double iter, const DataType &norm) const
 helper function for printing solver output

Friends

class std::mem_fun_ref_t< void, SuperLU >
class SeqOverlappingSchwarz

Detailed Description

template<typename T, typename A, int n, int m>
class Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >

SuperLu Solver.

Uses the well known SuperLU package to solve the system.


Member Typedef Documentation

template<typename T , typename A , int n, int m>
typedef Dune::BlockVector<FieldVector<T,m>,A> Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::domain_type
typedef BlockVector< FieldVector< T, m >, A > ::field_type Dune::InverseOperator< BlockVector< FieldVector< T, m >, A > , BlockVector< FieldVector< T, n >, A > >::field_type [inherited]

The field type of the operator.

template<typename T , typename A , int n, int m>
typedef Dune::BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::Matrix
template<typename T , typename A , int n, int m>
typedef Dune::BlockVector<FieldVector<T,n>,A> Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::range_type
template<typename T , typename A , int n, int m>
typedef Dune::SuperLUMatrix<Matrix> Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SuperLUMatrix

Member Enumeration Documentation

anonymous enum [protected, inherited]

Member Function Documentation

virtual void Dune::InverseOperator< BlockVector< FieldVector< T, m >, A > , BlockVector< FieldVector< T, n >, A > >::apply ( BlockVector< FieldVector< T, m >, A > &  x,
BlockVector< FieldVector< T, n >, A > &  b,
double  reduction,
InverseOperatorResult res 
) [pure virtual, inherited]

apply inverse operator, with given convergence criteria.

Warning:
Right hand side b may be overwritten!
Parameters:
x The left hand side to store the result in.
b The right hand side
reduction The minimum defect reduction to achieve.
res Object to store the statistics about applying the operator.
virtual void Dune::InverseOperator< BlockVector< FieldVector< T, m >, A > , BlockVector< FieldVector< T, n >, A > >::apply ( BlockVector< FieldVector< T, m >, A > &  x,
BlockVector< FieldVector< T, n >, A > &  b,
InverseOperatorResult res 
) [pure virtual, inherited]

Apply inverse operator,.

Warning:
Note: right hand side b may be overwritten!
Parameters:
x The left hand side to store the result in.
b The right hand side
res Object to store the statistics about applying the operator.
template<typename T , typename A , int n, int m>
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply ( domain_type x,
range_type b,
double  reduction,
InverseOperatorResult res 
) [inline]

apply inverse operator, with given convergence criteria.

Warning:
Right hand side b may be overwritten!
Parameters:
x The left hand side to store the result in.
b The right hand side
reduction The minimum defect reduction to achieve.
res Object to store the statistics about applying the operator.

References Dune::InverseOperatorResult::converged, and Dune::InverseOperatorResult::reduction.

void Dune::InverseOperator< BlockVector< FieldVector< T, m >, A > , BlockVector< FieldVector< T, n >, A > >::printHeader ( std::ostream &  s  )  const [inline, protected, inherited]

helper function for printing header of solver output

References Dune::InverseOperator< X, Y >::iterationSpacing, and Dune::InverseOperator< X, Y >::normSpacing.

void Dune::InverseOperator< BlockVector< FieldVector< T, m >, A > , BlockVector< FieldVector< T, n >, A > >::printOutput ( std::ostream &  s,
const double  iter,
const DataType &  norm 
) const [inline, protected, inherited]

helper function for printing solver output

References Dune::InverseOperator< X, Y >::iterationSpacing, and Dune::InverseOperator< X, Y >::normSpacing.

void Dune::InverseOperator< BlockVector< FieldVector< T, m >, A > , BlockVector< FieldVector< T, n >, A > >::printOutput ( std::ostream &  s,
const double  iter,
const DataType &  norm,
const DataType &  norm_old 
) const [inline, protected, inherited]

helper function for printing solver output

References Dune::InverseOperator< X, Y >::iterationSpacing, and Dune::InverseOperator< X, Y >::normSpacing.


Friends And Related Function Documentation

template<typename T , typename A , int n, int m>
friend class SeqOverlappingSchwarz [friend]
template<typename T , typename A , int n, int m>
friend class std::mem_fun_ref_t< void, SuperLU > [friend]

The documentation for this class was generated from the following file:
Generated on Sat Apr 24 11:13:50 2010 for dune-istl by  doxygen 1.6.3