26 #ifndef OOMPH_SuperLU_Preconditioner_HEADER
27 #define OOMPH_SuperLU_Preconditioner_HEADER
65 oomph_info <<
"Setting up SuperLU (exact) preconditioner" << std::endl;
76 std::ostringstream error_message_stream;
78 <<
"SuperLUPreconditioner can only be applied to matrices derived \n"
79 <<
"DistributableLinearAlgebraObject.\n"
80 <<
"You are most likely to be here because you are using the\n "
81 <<
"soon to be obsolete CCDoubleMatrix\n";
Definition: linear_algebra_distribution.h:435
LinearAlgebraDistribution * distribution_pt() const
access to the LinearAlgebraDistribution
Definition: linear_algebra_distribution.h:457
void build_distribution(const LinearAlgebraDistribution *const dist_pt)
Definition: linear_algebra_distribution.h:507
Definition: double_vector.h:58
Definition: linear_algebra_distribution.h:64
void disable_doc_time()
Disable documentation of solve times.
Definition: linear_solver.h:116
Definition: oomph_definitions.h:222
Definition: preconditioner.h:54
virtual DoubleMatrixBase * matrix_pt() const
Get function for matrix pointer.
Definition: preconditioner.h:150
An interface to allow SuperLU to be used as an (exact) Preconditioner.
Definition: SuperLU_preconditioner.h:40
double get_total_memory_needed_for_superlu()
Definition: SuperLU_preconditioner.h:122
SuperLUSolver Solver
the SuperLU solver emplyed by this preconditioner
Definition: SuperLU_preconditioner.h:167
SuperLUPreconditioner()
Constructor.
Definition: SuperLU_preconditioner.h:43
void preconditioner_solve(const DoubleVector &r, DoubleVector &z)
Definition: SuperLU_preconditioner.h:90
void preconditioner_solve_transpose(const DoubleVector &r, DoubleVector &z)
Definition: SuperLU_preconditioner.h:98
void enable_doc_stats()
Enable documentation of solver statistics.
Definition: SuperLU_preconditioner.h:151
double get_memory_usage_for_lu_factors()
Get the amount of memory used to store the LU factors inside SuperLU.
Definition: SuperLU_preconditioner.h:113
void setup()
Definition: SuperLU_preconditioner.h:63
~SuperLUPreconditioner()
Destructor.
Definition: SuperLU_preconditioner.h:50
SuperLUPreconditioner(const SuperLUPreconditioner &)=delete
Broken copy constructor.
virtual void clean_up_memory()
Definition: SuperLU_preconditioner.h:106
void operator=(const SuperLUPreconditioner &)=delete
Broken assignment operator.
void disable_doc_stats()
Enable documentation of solver statistics.
Definition: SuperLU_preconditioner.h:158
Vector< double > get_memory_usage_for_superlu()
Definition: SuperLU_preconditioner.h:133
Definition: linear_solver.h:486
void enable_doc_stats()
Enable documentation of solver statistics.
Definition: linear_solver.h:603
void factorise(DoubleMatrixBase *const &matrix_pt)
Definition: linear_solver.cc:1820
void resolve_transpose(const DoubleVector &rhs, DoubleVector &result)
Resolve the (transposed) system for a given RHS.
Definition: linear_solver.cc:1793
double get_memory_usage_for_lu_factors()
How much memory do the LU factors take up? In bytes.
Definition: linear_solver.cc:758
double get_total_needed_memory()
How much memory was allocated by SuperLU? In bytes.
Definition: linear_solver.cc:786
void resolve(const DoubleVector &rhs, DoubleVector &result)
Resolve the system for a given RHS.
Definition: linear_solver.cc:1769
void disable_doc_stats()
Disable documentation of solver statistics.
Definition: linear_solver.h:609
void clean_up_memory()
Clean up the memory allocated by the solver.
Definition: linear_solver.cc:2683
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
OomphInfo oomph_info
Definition: oomph_definitions.cc:319
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86