HermesCommon  3.0
Hermes::Solvers::MatrixSolver< Scalar > Class Template Reference

interface for both linear and nonlinear algebraic solvers. More...

#include <matrix_solver.h>

+ Inheritance diagram for Hermes::Solvers::MatrixSolver< Scalar >:

Public Types

enum  UMFPACK_reporting_data_value { FactorizationSize = 0, PeakMemoryUsage = 1, Flops = 2 }
 Data values (types) for UMFPACK reporting.
 

Public Member Functions

 MatrixSolver (bool force_use_direct_solver=false)
 
virtual Scalar * get_sln_vector ()
 Return the solution vector.
 
void set_jacobian_constant (bool to_set=true)
 Sets the jacobian to be constant, i.e. reused whenever possible.
 
virtual LinearMatrixSolver
< Scalar > * 
get_linear_matrix_solver ()
 
virtual void set_UMFPACK_output (bool to_set=true, bool with_output=false)
 
virtual double get_UMFPACK_reporting_data (UMFPACK_reporting_data_value data_value)
 
SparseMatrix< Scalar > * get_jacobian ()
 Only a shortcut for algebraic solver (->) get_matrix().
 
Vector< Scalar > * get_residual ()
 Only a shortcut for algebraic solver (->) get_rhs().
 
virtual void set_verbose_output (bool to_set)
 Verbose output.
 
- Public Member Functions inherited from Hermes::Mixins::Loggable
 Loggable (bool verbose_output=false, callbackFn verbose_callback=NULL, bool add_newline=true)
 
void set_file_output_only (bool onOff)
 
void set_timestamps (bool onOff)
 Sets the addition of a time stamp on each line in the log file. By default it is on.
 
void set_erase_on_beginning (bool onOff)
 Sets the logFile being always erased before logging.
 
void set_logFile_name (const char *filename)
 
void set_logFile_name (std::string filename)
 
void info (const char *msg,...) const
 
void info_if (bool cond, const char *msg,...) const
 
void warn (const char *msg,...) const
 
void warn_if (bool cond, const char *msg,...) const
 
void error (const char *msg,...) const
 
void error_if (bool cond, const char *msg,...) const
 
bool get_verbose_output () const
 Returns the current value of verbose_output;.
 
virtual void set_verbose_callback (callbackFn callback)
 
callbackFn get_verbose_callback () const
 Returns the current value of verbose_callback;.
 

Public Attributes

Scalar * sln_vector
 The solution vector.
 
- Public Attributes inherited from Hermes::Mixins::Loggable
char * logFileName
 Logfile name.
 

Protected Member Functions

void handle_UMFPACK_reports ()
 This is not used now.
 
- Protected Member Functions inherited from Hermes::Mixins::Loggable
void hermes_fwrite (const void *ptr, size_t size, size_t nitems, FILE *stream) const
 
void hermes_fread (void *ptr, size_t size, size_t nitems, FILE *stream) const
 

Protected Attributes

Hermes::Solvers::LinearMatrixSolver
< Scalar > * 
linear_matrix_solver
 Linear solver.
 
bool constant_jacobian
 Jacobian can be reused if possible.
 
bool jacobian_reusable
 Jacobian is ready to be reused if desirable.
 
int problem_size
 Number of equations.
 
bool do_UMFPACK_reporting
 
double UMFPACK_reporting_data [3]
 

Additional Inherited Members

- Static Public Member Functions inherited from Hermes::Mixins::Loggable
static void set_static_logFile_name (const char *filename)
 
static void set_static_logFile_name (std::string filename)
 
- Static Public Attributes inherited from Hermes::Mixins::Loggable
static char * staticLogFileName = nullptr
 

Detailed Description

template<typename Scalar>
class Hermes::Solvers::MatrixSolver< Scalar >

interface for both linear and nonlinear algebraic solvers.

Definition at line 35 of file matrix_solver.h.

Constructor & Destructor Documentation

template<typename Scalar >
Hermes::Solvers::MatrixSolver< Scalar >::MatrixSolver ( bool  force_use_direct_solver = false)

Linear solver.

Definition at line 30 of file matrix_solver.cpp.

Member Function Documentation

template<typename Scalar >
virtual double Hermes::Solvers::MatrixSolver< Scalar >::get_UMFPACK_reporting_data ( UMFPACK_reporting_data_value  data_value)
virtual

This is not used now. Get UMFPACK numerical factorization data provided the used matrix solver is UMFPACK

template<typename Scalar >
virtual void Hermes::Solvers::MatrixSolver< Scalar >::set_UMFPACK_output ( bool  to_set = true,
bool  with_output = false 
)
virtual

This is not used now. Set Reporting of UMFPACK numerical factorization data provided the used matrix solver is UMFPACK.

Member Data Documentation

template<typename Scalar >
bool Hermes::Solvers::MatrixSolver< Scalar >::do_UMFPACK_reporting
protected

This is not used now. Switch for UMFPACK reporting.

Definition at line 94 of file matrix_solver.h.

Referenced by Hermes::Solvers::MatrixSolver< Scalar >::MatrixSolver().

template<typename Scalar >
double Hermes::Solvers::MatrixSolver< Scalar >::UMFPACK_reporting_data[3]
protected

This is not used now. Data for UMFPACK reporting.

Definition at line 100 of file matrix_solver.h.


The documentation for this class was generated from the following files: