27#ifndef OOMPH_GENERAL_PURPOSE_SPACE_TIME_BLOCK_PRECONDITIONER_HEADER
28#define OOMPH_GENERAL_PURPOSE_SPACE_TIME_BLOCK_PRECONDITIONER_HEADER
32#include <oomph-lib-config.h>
56 template<
typename MATRIX>
114 template<
typename MATRIX>
General purpose block triangular preconditioner. By default this operates as an upper triangular prec...
DenseMatrix< MatrixVectorProduct * > Off_diagonal_matrix_vector_products
Matrix of matrix-vector product operators for the off diagonals.
void setup()
Setup the preconditioner.
virtual void clean_up_memory()
Clean up the memory.
bool Preconditioner_has_been_setup
Control flag is true if the preconditioner has been setup (used so we can wipe the data when the prec...
void preconditioner_solve(const DoubleVector &r, DoubleVector &z)
Apply preconditioner to r.
bool Upper_triangular
Boolean indicating upper or lower triangular.
bool is_upper_triangular()
Is this being used as an upper triangular preconditioner?
BandedBlockTriangularPreconditioner()
Constructor. (By default this preconditioner is upper triangular).
void upper_triangular()
Use as an upper triangular preconditioner.
int block_bandwidth()
Get the block bandwidth of the preconditioner.
void lower_triangular()
Use as a lower triangular preconditioner.
int Block_bandwidth
Storage for the block bandwidth of the matrix. Defaults to -1 indicating that we assume every off-dia...
BandedBlockTriangularPreconditioner(const BandedBlockTriangularPreconditioner &)=delete
Broken copy constructor.
virtual ~BandedBlockTriangularPreconditioner()
Destructor - delete the preconditioner matrices.
void set_block_bandwidth(const int &block_bandwidth)
Set the block bandwidth of the preconditioner.
void operator=(const BandedBlockTriangularPreconditioner &)=delete
Broken assignment operator.
A vector in the mathematical sense, initially developed for linear algebra type applications....
General purpose block tridiagonal preconditioner. By default ExactPreconditioner is used to solve the...
ExactDGPBlockPreconditioner()
Constructor. (By default this preconditioner is upper triangular).
void operator=(const ExactDGPBlockPreconditioner &)=delete
Broken assignment operator.
virtual void clean_up_memory()
Clean up the memory.
bool Preconditioner_has_been_setup
Control flag is true if the preconditioner has been setup (used so we can wipe the data when the prec...
void setup()
Setup the preconditioner.
virtual ~ExactDGPBlockPreconditioner()
Destructor - delete the preconditioner matrices.
void preconditioner_solve(const DoubleVector &r, DoubleVector &z)
Apply preconditioner to r.
ExactDGPBlockPreconditioner(const ExactDGPBlockPreconditioner &)=delete
Broken copy constructor.
Base class for general purpose block preconditioners. Deals with setting subsidiary preconditioners a...
virtual void clean_up_memory()
??ds I think clean_up_memory is supposed to clear out any stuff that doesn't need to be stored betwee...
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).