HermesCommon  2.0
Hermes::Solvers::LinearMatrixSolver< Scalar > Class Template Referenceabstract

Abstract class for defining solver interface. More...

#include <linear_matrix_solver.h>

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

Public Member Functions

virtual bool solve ()=0
 
Scalar * get_sln_vector ()
 
int get_error ()
 
double get_time ()
 
virtual int get_matrix_size ()=0
 Get size of matrix.
 
virtual void set_factorization_scheme (FactorizationScheme reuse_scheme)
 
virtual void set_factorization_scheme ()
 Set factorization scheme to default.
 
- Public Member Functions inherited from Hermes::Mixins::Loggable
void set_verbose_output (bool to_set)
 Sets the attribute verbose_output to the paramater option passed.
 
bool get_verbose_output () const
 Returns the current value of verbose_output;.
 
void set_verbose_callback (callbackFn callback)
 
callbackFn get_verbose_callback () const
 Returns the current value of verbose_callback;.
 
- Public Member Functions inherited from Hermes::Mixins::TimeMeasurable
 TimeMeasurable (const char *name=NULL)
 Constructs internal structures and starts measuring.
 
const TimeMeasurablereset ()
 Resets accumulated time.
 
const TimeMeasurabletick_reset ()
 Starts a new period and resets accumulated time.
 
const TimeMeasurabletick (TimeMeasurable::TimerPeriodTickType type=HERMES_ACCUMULATE)
 Starts/ends a new period.
 
const std::string & name () const
 Returns a name of the time period if any.
 
double accumulated () const
 Returns accumulated time (in seconds).
 
std::string accumulated_str () const
 Returns accumulated time in human readable form.
 
double last () const
 Returns last measured period (in seconds). More...
 
std::string last_str () const
 Returns last measured period in human readable form.
 

Protected Attributes

Scalar * sln
 Solution vector.
 
int error
 
double time
 Time spent on solving (in secs).
 

Additional Inherited Members

- Public Types inherited from Hermes::Mixins::TimeMeasurable
enum  TimerPeriodTickType { HERMES_ACCUMULATE, HERMES_SKIP }
 Tick type. Used by the class Hermes::TimePeriod. More...
 
- Protected Member Functions inherited from Hermes::Mixins::Loggable
 Loggable (bool verbose_output=false, callbackFn verbose_callback=NULL)
 
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
 
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
 

Detailed Description

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

Abstract class for defining solver interface.

Todo:
Adjust interface to support faster update of matrix and rhs

Typical usage is through the function create_linear_solver(Matrix<Scalar>* matrix, Vector<Scalar>* rhs).

Definition at line 92 of file linear_matrix_solver.h.

Member Function Documentation

template<typename Scalar >
int Hermes::Solvers::LinearMatrixSolver< Scalar >::get_error ( )
Returns
error

Definition at line 59 of file linear_matrix_solver.cpp.

template<typename Scalar >
Scalar * Hermes::Solvers::LinearMatrixSolver< Scalar >::get_sln_vector ( )

Get solution vector.

Returns
solution vector ( sln )

Definition at line 53 of file linear_matrix_solver.cpp.

template<typename Scalar >
double Hermes::Solvers::LinearMatrixSolver< Scalar >::get_time ( )

Get time spent on solving.

Returns
time spent on solving in secs ( time )

Definition at line 65 of file linear_matrix_solver.cpp.

template<typename Scalar>
virtual void Hermes::Solvers::LinearMatrixSolver< Scalar >::set_factorization_scheme ( FactorizationScheme  reuse_scheme)
inlinevirtual

Set factorization scheme.

Parameters
[in]reuse_schemefactoriztion scheme to set

Reimplemented in Hermes::Solvers::DirectSolver< Scalar >.

Definition at line 117 of file linear_matrix_solver.h.

template<typename Scalar>
virtual bool Hermes::Solvers::LinearMatrixSolver< Scalar >::solve ( )
pure virtual

Solve.

Returns
true on succes

Member Data Documentation

template<typename Scalar>
int Hermes::Solvers::LinearMatrixSolver< Scalar >::error
protected
Todo:
document (not sure what it do)

Definition at line 126 of file linear_matrix_solver.h.


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