30 #ifndef HSL_MA42OOMPH__FRONTAL_SOLVER_HEADER
31 #define HSL_MA42OOMPH__FRONTAL_SOLVER_HEADER
36 #include <oomph-lib-config.h>
Abstract base class for matrices of doubles – adds abstract interfaces for solving,...
A vector in the mathematical sense, initially developed for linear algebra type applications....
Linear solver class that provides a wrapper to the frontal solver MA42 from the HSL library; see http...
int Lw
Size of the workspace array, W.
~HSL_MA42()
Destructor, clean up the allocated memory.
double & front_factor()
Factor to increase storage for front size; see MA42 documentation for details.
bool Doc_stats
Doc the solver stats or stay quiet?
double Lenfle_factor
Factor to increase size of direct access files; see MA42 documentation for details.
double & lenfle_factor()
Factor to increase the size of the direct access files; see MA42 documentation for details.
bool Use_direct_access_files
Use direct access files?
void disable_direct_access_files()
Disable use of direct access files.
bool Reorder_flag
Reorder elements with Sloan's algorithm?
void operator=(const HSL_MA42 &)=delete
Broken assignment operator.
double Lenbuf_factor2
Factor to increase storage for lenbuf[2]; see MA42 documentation for details.
void enable_doc_stats()
Enable documentation of statistics.
double Lenbuf_factor1
Factor to increase storage for lenbuf[1]; see MA42 documentation for details.
int Icntl[8]
Control flag for MA42; see MA42 documentation for details.
int Isave[45]
Control flag for MA42; see MA42 documentation for details.
double & lenbuf_factor1()
Factor to increase storage for lenbuf[1]; see MA42 documentation for details.
int Liw
Size of the integer workspace array.
void solve(DoubleMatrixBase *const &matrix_pt, const DoubleVector &rhs, DoubleVector &result)
Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the ...
void reorder_elements(Problem *const &problem_pt)
Function to reorder the elements based on Sloan's algorithm.
void solve_for_one_dof(Problem *const &problem_pt, DoubleVector &result)
Special solver for problems with 1 dof (MA42 can't handle this case so solve() forwards the "solve" t...
void clean_up_memory()
Clean up memory.
void disable_resolve()
Overload disable resolve so that it cleans up memory too.
void enable_reordering()
Enable reordering using Sloan's algorithm.
void enable_direct_access_files()
Enable use of direct access files.
HSL_MA42(const HSL_MA42 &)=delete
Broken copy constructor.
void disable_reordering()
Disable reordering.
double Front_factor
Factor to increase storage for front size; see MA42 documentation for details.
int Info[23]
Control flag for MA42; see MA42 documentation for details.
double * W
Workspace storage for MA42.
void resolve(const DoubleVector &rhs, DoubleVector &result)
Return the solution to the linear system Ax = result, where A is the most recently factorised jacobia...
double Lenbuf_factor0
Factor to increase storage for lenbuf[0]; see MA42 documentation for details.
void solve(DoubleMatrixBase *const &matrix_pt, const Vector< double > &rhs, Vector< double > &result)
Linear-algebra-type solver: Takes pointer to a matrix and rhs vector and returns the solution of the ...
HSL_MA42()
Constructor: By default suppress verbose output (stats), don't reorder elements and don't use direct ...
double & lenbuf_factor0()
Factor to increase storage for lenbuf[0]; see MA42 documentation for details.
void solve(Problem *const &problem_pt, DoubleVector &result)
Solver: Takes pointer to problem and returns the results Vector which contains the solution of the li...
void disable_doc_stats()
Disable documentation of statistics.
int * IW
Integer workspace storage for MA42.
double & lenbuf_factor2()
Factor to increase storage for lenbuf[2]; see MA42 documentation for details.
unsigned long N_dof
Size of the linear system.
Base class for all linear solvers. This merely defines standard interfaces for linear solvers,...
virtual void solve(Problem *const &problem_pt, DoubleVector &result)=0
Solver: Takes pointer to problem and returns the results vector which contains the solution of the li...
virtual void disable_resolve()
Disable resolve (i.e. store matrix and/or LU decomposition, say) This function simply resets an inter...
////////////////////////////////////////////////////////////////// //////////////////////////////////...
//////////////////////////////////////////////////////////////////// ////////////////////////////////...