Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > Class Template Reference
[ISTL]

#include <superlu.hh>

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

Dune::InverseOperator< X, Y >

List of all members.


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.


Public Types

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

Public Member Functions

 SuperLU (const Matrix &mat, bool verbose=false)
 Constructor.
 SuperLU ()
 Empty default constructor.
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.
virtual void apply (X &x, Y &b, InverseOperatorResult &res)=0
 Apply inverse operator,.
virtual void apply (X &x, Y &b, double reduction, InverseOperatorResult &res)=0
 apply inverse operator, with given convergence criteria.

Protected Member Functions

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

Member Function Documentation

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.

template<class X, class Y>
virtual void Dune::InverseOperator< X, Y >::apply ( X &  x,
Y &  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.

Implemented in Dune::LoopSolver< X >, Dune::GradientSolver< X >, Dune::CGSolver< X >, and Dune::BiCGSTABSolver< X >.

template<class X, class Y>
virtual void Dune::InverseOperator< X, Y >::apply ( X &  x,
Y &  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.

Implemented in Dune::LoopSolver< X >, Dune::GradientSolver< X >, Dune::CGSolver< X >, and Dune::BiCGSTABSolver< X >.


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

Generated on 6 Nov 2008 with Doxygen (ver 1.5.6) [logfile].