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>
140 <<
"The memory statistics have not been calculated "
141 <<
"so I'm returning\nthe value zero." << std::endl;
160 <<
"The preconditioner hasn't even been set up yet "
161 <<
"so I'm returning\nthe value zero." << std::endl;
196 template<
typename MATRIX>
345 <<
"The memory statistics have not been calculated "
346 <<
"so I'm returning\nthe value zero." << std::endl;
365 <<
"The preconditioner hasn't even been set up yet "
366 <<
"so I'm returning\nthe value zero." << std::endl;
General purpose block triangular preconditioner. By default this operates as an upper triangular prec...
void enable_doc_memory_usage()
Document the memory usage.
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 Compute_memory_statistics
Flag to indicate whether or not to record the memory statistics this preconditioner.
bool Upper_triangular
Boolean indicating upper or lower triangular.
bool is_upper_triangular()
Is this being used as an upper triangular preconditioner?
void disable_doc_memory_usage()
Don't document the memory usage!
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.
double Memory_usage_in_bytes
Storage for the memory usage of the solver if the flag above is set to true (in bytes)
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.
double get_memory_usage_in_bytes()
Get the memory statistics.
A vector in the mathematical sense, initially developed for linear algebra type applications....
General purpose block tridiagonal preconditioner. By default SuperLUPreconditioner (or SuperLUDistPre...
void enable_doc_memory_usage()
Document the memory usage.
ExactDGPBlockPreconditioner()
Constructor. (By default this preconditioner is upper triangular).
void operator=(const ExactDGPBlockPreconditioner &)=delete
Broken assignment operator.
bool Compute_memory_statistics
Flag to indicate whether or not to record the memory statistics this preconditioner.
virtual void clean_up_memory()
Clean up the memory.
void disable_doc_memory_usage()
Don't document the memory usage!
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.
double get_memory_usage_in_bytes()
Get the memory statistics.
ExactDGPBlockPreconditioner(const ExactDGPBlockPreconditioner &)=delete
Broken copy constructor.
double Memory_usage_in_bytes
Storage for the memory usage of the solver if the flag above is set to true (in bytes)
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...
An OomphLibWarning object which should be created as a temporary object to issue a warning....
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////// ////////////////////////////////...