Public Member Functions | Private Attributes | List of all members
oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER > Class Template Reference

A preconditioner for performing inner iteration preconditioner solves. The template argument SOLVER specifies the inner iteration solver (which must be derived from IterativeLinearSolver) and the template argument PRECONDITIONER specifies the preconditioner for the inner iteration iterative solver. Note: For no preconditioning use the IdentityPreconditioner. More...

#include <general_purpose_preconditioners.h>

+ Inheritance diagram for oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >:

Public Member Functions

 InnerIterationPreconditioner ()
 Constructor. More...
 
 ~InnerIterationPreconditioner ()
 
void clean_up_memory ()
 Clean up memory (empty). Generic interface function. More...
 
void setup ()
 Preconditioner setup method. Setup the preconditioner for the inner iteration solver. More...
 
void preconditioner_solve (const DoubleVector &r, DoubleVector &z)
 Preconditioner solve method. Performs the specified number of Krylov iterations preconditioned with the specified preconditioner. More...
 
double & tolerance ()
 Access to convergence tolerance of the inner iteration solver. More...
 
unsigned & max_iter ()
 Access to max. number of iterations of the inner iteration solver. More...
 
SOLVER * solver_pt ()
 
PRECONDITIONER * preconditioner_pt ()
 
- Public Member Functions inherited from oomph::Preconditioner
 Preconditioner ()
 Constructor. More...
 
 Preconditioner (const Preconditioner &)
 Broken copy constructor. More...
 
void operator= (const Preconditioner &)
 Broken assignment operator. More...
 
virtual ~Preconditioner ()
 Destructor (empty) More...
 
void setup (DoubleMatrixBase *matrix_pt)
 Setup the preconditioner: store the matrix pointer and the communicator pointer then call preconditioner specific setup() function. More...
 
void setup (const Problem *problem_pt, DoubleMatrixBase *matrix_pt)
 Compatability layer for old preconditioners where problem pointers were needed. The problem pointer is only used to get a communicator pointer. More...
 
virtual DoubleMatrixBasematrix_pt () const
 Get function for matrix pointer. More...
 
virtual void set_matrix_pt (DoubleMatrixBase *matrix_pt)
 Set the matrix pointer. More...
 
virtual const OomphCommunicatorcomm_pt () const
 Get function for comm pointer. More...
 
virtual void set_comm_pt (const OomphCommunicator *const comm_pt)
 Set the communicator pointer. More...
 
double setup_time () const
 Returns the time to setup the preconditioner. More...
 
virtual void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse)
 
virtual void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse, const Vector< Vector< unsigned > > &doftype_coarsen_map_coarse)
 
- Public Member Functions inherited from oomph::DistributableLinearAlgebraObject
 DistributableLinearAlgebraObject ()
 Default constructor - create a distribution. More...
 
 DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)
 Broken copy constructor. More...
 
void operator= (const DistributableLinearAlgebraObject &)
 Broken assignment operator. More...
 
virtual ~DistributableLinearAlgebraObject ()
 Destructor. More...
 
LinearAlgebraDistributiondistribution_pt () const
 access to the LinearAlgebraDistribution More...
 
unsigned nrow () const
 access function to the number of global rows. More...
 
unsigned nrow_local () const
 access function for the num of local rows on this processor. More...
 
unsigned nrow_local (const unsigned &p) const
 access function for the num of local rows on this processor. More...
 
unsigned first_row () const
 access function for the first row on this processor More...
 
unsigned first_row (const unsigned &p) const
 access function for the first row on this processor More...
 
bool distributed () const
 distribution is serial or distributed More...
 
bool distribution_built () const
 
void build_distribution (const LinearAlgebraDistribution *const dist_pt)
 setup the distribution of this distributable linear algebra object More...
 
void build_distribution (const LinearAlgebraDistribution &dist)
 setup the distribution of this distributable linear algebra object More...
 

Private Attributes

SOLVER * Solver_pt
 pointer to the underlying solver More...
 
PRECONDITIONER * Preconditioner_pt
 pointer to the underlying preconditioner More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 clear the distribution of this distributable linear algebra object More...
 

Detailed Description

template<class SOLVER, class PRECONDITIONER>
class oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >

A preconditioner for performing inner iteration preconditioner solves. The template argument SOLVER specifies the inner iteration solver (which must be derived from IterativeLinearSolver) and the template argument PRECONDITIONER specifies the preconditioner for the inner iteration iterative solver. Note: For no preconditioning use the IdentityPreconditioner.

Definition at line 399 of file general_purpose_preconditioners.h.

Constructor & Destructor Documentation

template<class SOLVER , class PRECONDITIONER >
oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::InnerIterationPreconditioner ( )
inline
template<class SOLVER , class PRECONDITIONER >
oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::~InnerIterationPreconditioner ( )
inline

Member Function Documentation

template<class SOLVER , class PRECONDITIONER >
void oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::clean_up_memory ( )
inlinevirtual
template<class SOLVER , class PRECONDITIONER >
unsigned& oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::max_iter ( )
inline

Access to max. number of iterations of the inner iteration solver.

Definition at line 498 of file general_purpose_preconditioners.h.

References oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Solver_pt.

Referenced by oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::setup().

template<class SOLVER , class PRECONDITIONER >
PRECONDITIONER* oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::preconditioner_pt ( )
inline
template<class SOLVER , class PRECONDITIONER >
void oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::preconditioner_solve ( const DoubleVector r,
DoubleVector z 
)
inlinevirtual

Preconditioner solve method. Performs the specified number of Krylov iterations preconditioned with the specified preconditioner.

Implements oomph::Preconditioner.

Definition at line 489 of file general_purpose_preconditioners.h.

References oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Solver_pt.

template<class SOLVER , class PRECONDITIONER >
void oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::setup ( )
inlinevirtual
template<class SOLVER , class PRECONDITIONER >
SOLVER* oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::solver_pt ( )
inline
template<class SOLVER , class PRECONDITIONER >
double& oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::tolerance ( )
inline

Access to convergence tolerance of the inner iteration solver.

Definition at line 495 of file general_purpose_preconditioners.h.

References oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Solver_pt.

Member Data Documentation

template<class SOLVER , class PRECONDITIONER >
PRECONDITIONER* oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Preconditioner_pt
private
template<class SOLVER , class PRECONDITIONER >
SOLVER* oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Solver_pt
private

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