34 #ifndef HSL_MA42OOMPH__FRONTAL_SOLVER_HEADER 35 #define HSL_MA42OOMPH__FRONTAL_SOLVER_HEADER 40 #include <oomph-lib-config.h> 132 Use_direct_access_files=
false;
164 if(IW) {
delete[]
IW; IW=0; Liw=0;}
165 if(W) {
delete[]
W; W=0; Lw=0;}
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 ...
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...
double Lenbuf_factor2
Factor to increase storage for lenbuf[2]; see MA42 documentation for details.
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
int Icntl[8]
Control flag for MA42; see MA42 documentation for details.
void disable_doc_stats()
Disable documentation of statistics.
bool Reorder_flag
Reorder elements with Sloan's algorithm?
bool Doc_stats
Doc the solver stats or stay quiet?
bool Use_direct_access_files
Use direct access files?
unsigned long N_dof
Size of the linear system.
int Liw
Size of the integer workspace array.
void disable_resolve()
Overload disable resolve so that it cleans up memory too.
double Lenbuf_factor0
Factor to increase storage for lenbuf[0]; see MA42 documentation for details.
void enable_reordering()
Enable reordering using Sloan's algorithm.
double Lenbuf_factor1
Factor to increase storage for lenbuf[1]; see MA42 documentation for details.
double & lenfle_factor()
Factor to increase the size of the direct access files; see MA42 documentation for details...
HSL_MA42()
Constructor: By default suppress verbose output (stats), don't reorder elements and don't use direct ...
double & lenbuf_factor2()
Factor to increase storage for lenbuf[2]; see MA42 documentation for details.
void clean_up_memory()
Clean up memory.
void enable_doc_stats()
Enable documentation of statistics.
void enable_direct_access_files()
Enable use of direct access files.
int Info[23]
Control flag for MA42; see MA42 documentation for details.
void disable_direct_access_files()
Disable use of direct access files.
double & lenbuf_factor0()
Factor to increase storage for lenbuf[0]; see MA42 documentation for details.
void operator=(const HSL_MA42 &)
Broken assignment operator.
int * IW
Integer workspace storage for MA42.
void reorder_elements(Problem *const &problem_pt)
Function to reorder the elements based on Sloan's algorithm.
double * W
Workspace storage for MA42.
double Front_factor
Factor to increase storage for front size; see MA42 documentation for details.
double & lenbuf_factor1()
Factor to increase storage for lenbuf[1]; see MA42 documentation for details.
void resolve(const DoubleVector &rhs, DoubleVector &result)
Return the solution to the linear system Ax = result, where A is the most recently factorised jacobia...
virtual void disable_resolve()
Disable resolve (i.e. store matrix and/or LU decomposition, say) This function simply resets an inter...
void broken_assign(const std::string &class_name)
Issue error message and terminate execution.
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 ...
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...
double & front_factor()
Factor to increase storage for front size; see MA42 documentation for details.
void disable_reordering()
Disable reordering.
double Lenfle_factor
Factor to increase size of direct access files; see MA42 documentation for details.
A vector in the mathematical sense, initially developed for linear algebra type applications. If MPI then this vector can be distributed - its distribution is described by the LinearAlgebraDistribution object at Distribution_pt. Data is stored in a C-style pointer vector (double*)
HSL_MA42(const HSL_MA42 &)
Broken copy constructor.
~HSL_MA42()
Destructor, clean up the allocated memory.
Abstract base class for matrices of doubles – adds abstract interfaces for solving, LU decomposition and multiplication by vectors.
int Isave[45]
Control flag for MA42; see MA42 documentation for details.
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...
int Lw
Size of the workspace array, W.