Example codes
and tutorials
The (Not-so) Quick Guide
List of tutorials/demo codes
Single-Physics Problems
Poisson
Adaptivity illustrated for Poisson
Advection-Diffusion
Unsteady heat equation
Linear wave equation
The Young-Laplace equation
Navier-Stokes
Free-surface Navier-Stokes
Axisymmetric Navier-Stokes
Solid mechanics
Beam structures
Shell structures
Multi-physics Problems
Fluid-structure interaction
Boussinesq convection
Steady thermoelasticity
Methods-based example codes and tutorials
Mesh generation
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
How to write a new element
How to write a new refineable element
Default nonlinear solvers -- the sequence of action functions
...
Documentation
FE theory and top-down discussion of the data structure
The (Not-so) Quick Guide
Comprehensive bottom-up discussion of the data structure
List of available structured and unstructured meshes
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
Coding conventions and C++ style
Creating documentation
Optimisation - robustness vs. "raw speed"
Linear vs. nonlinear problems
Storing shape functions
Changing the default "full" integration scheme
Disabling the ALE formulation of unsteady equations
C vs. C++ output
Different sparse assembly techniques and the STL memory pool
Publications
Publications
Talks
Journal publications
Theses
Picture show
Download
Copyright
Download/installation instructions
Download page
FAQ & Contact
FAQ
Change log
Bugs and other known problems
Completeness of the library & our "To-Do List"
Contact the developers
Get involved

 


Beta release!

Please note that the library has not been "officially" released. While we continue to work on the documentation, these web pages are likely to contain broken links and documents in draft form. Please send an email to

oomph-lib AT maths DOT man DOT ac DOT uk

if you wish to be informed of the library's "official" release.

oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER > Class Template Reference

#include <general_purpose_preconditioners.h>

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

oomph::Preconditioner oomph::DistributableLinearAlgebraObject List of all members.

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 392 of file general_purpose_preconditioners.h.


Public Member Functions

 InnerIterationPreconditioner ()
 Constructor.
 ~InnerIterationPreconditioner ()
void clean_up_memory ()
 Clean up memory (empty). Generic interface to allows data associated with a preconditioner to be deleted.
void setup (Problem *problem_pt, DoubleMatrixBase *matrix_pt)
 Preconditioner setup method. Setup the preconditioner for the inner iteration solver.
void preconditioner_solve (const DoubleVector &r, DoubleVector &z)
 Preconditioner solve method. Performs the specified number of Krylov iterations preconditioned with the specified preconditioner.
double & tolerance ()
 Access to convergence tolerance of the inner iteration solver.
unsigned & max_iter ()
 Access to max. number of iterations of the inner iteration solver.
SOLVER * solver_pt ()
PRECONDITIONER * preconditioner_pt ()

Private Attributes

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

Constructor & Destructor Documentation

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

Constructor.

Definition at line 397 of file general_purpose_preconditioners.h.

References OOMPH_EXCEPTION_LOCATION, oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Preconditioner_pt, and oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Solver_pt.

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

Definition at line 432 of file general_purpose_preconditioners.h.

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


Member Function Documentation

template<class SOLVER, class PRECONDITIONER>
void oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::clean_up_memory (  )  [inline, virtual]

Clean up memory (empty). Generic interface to allows data associated with a preconditioner to be deleted.

Reimplemented from oomph::Preconditioner.

Definition at line 439 of file general_purpose_preconditioners.h.

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

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 488 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]

Definition at line 494 of file general_purpose_preconditioners.h.

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

template<class SOLVER, class PRECONDITIONER>
void oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::preconditioner_solve ( const DoubleVector r,
DoubleVector z 
) [inline, virtual]

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

Reimplemented from oomph::Preconditioner.

Definition at line 479 of file general_purpose_preconditioners.h.

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

template<class SOLVER, class PRECONDITIONER>
void oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::setup ( Problem problem_pt,
DoubleMatrixBase matrix_pt 
) [inline, virtual]

Preconditioner setup method. Setup the preconditioner for the inner iteration solver.

Reimplemented from oomph::Preconditioner.

Definition at line 447 of file general_purpose_preconditioners.h.

References oomph::Problem::communicator_pt(), oomph::DistributableLinearAlgebraObject::distribution_pt(), oomph::DistributableLinearAlgebraObject::Distribution_pt, oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::max_iter(), oomph::DoubleMatrixBase::nrow(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Preconditioner_pt, oomph::LinearAlgebraDistribution::rebuild(), and oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::Solver_pt.

template<class SOLVER, class PRECONDITIONER>
SOLVER* oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::solver_pt (  )  [inline]

Definition at line 491 of file general_purpose_preconditioners.h.

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

template<class SOLVER, class PRECONDITIONER>
double& oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::tolerance (  )  [inline]

Access to convergence tolerance of the inner iteration solver.

Definition at line 485 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]

pointer to the underlying preconditioner

Definition at line 502 of file general_purpose_preconditioners.h.

Referenced by oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::clean_up_memory(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::InnerIterationPreconditioner(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::preconditioner_pt(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::setup(), and oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::~InnerIterationPreconditioner().

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

pointer to the underlying solver

Definition at line 499 of file general_purpose_preconditioners.h.

Referenced by oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::clean_up_memory(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::InnerIterationPreconditioner(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::max_iter(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::preconditioner_solve(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::setup(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::solver_pt(), oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::tolerance(), and oomph::InnerIterationPreconditioner< SOLVER, PRECONDITIONER >::~InnerIterationPreconditioner().


The documentation for this class was generated from the following file:
Generated on Mon Aug 10 11:24:46 2009 by  doxygen 1.4.7