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

Encapsulation of PARALUTION iterative linear solver. More...

#include <paralution_solver.h>

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

Public Member Functions

 IterativeParalutionLinearMatrixSolver ()
 IterativeParalutionLinearMatrixSolver (ParalutionMatrix< Scalar > *m, ParalutionVector< Scalar > *rhs)
void set_solver_type (IterSolverType iterSolverType)
virtual void init_internal_solver ()
 Set internal solver for the current solution.
void free ()
 Free this instance.
virtual void set_precond (Precond< Scalar > *pc)
 Set preconditioner.
- Public Member Functions inherited from Hermes::Solvers::AbstractParalutionLinearMatrixSolver< Scalar >
virtual void solve (Scalar *initial_guess)
virtual void solve ()
virtual int get_num_iters ()
 Get number of iterations.
virtual double get_residual_norm ()
 Get the residual value.
virtual int get_matrix_size ()
- Public Member Functions inherited from Hermes::Solvers::LoopSolver< Scalar >
 LoopSolver (SparseMatrix< Scalar > *matrix, Vector< Scalar > *rhs)
virtual void set_tolerance (double tol)
virtual void set_tolerance (double tolerance, LoopSolverToleranceType toleranceType)
virtual void set_max_iters (int iters)
- Public Member Functions inherited from Hermes::Solvers::LinearMatrixSolver< Scalar >
 LinearMatrixSolver (SparseMatrix< Scalar > *matrix, Hermes::Algebra::Vector< Scalar > *rhs)
DirectSolver< Scalar > * as_DirectSolver () const
LoopSolver< Scalar > * as_LoopSolver () const
IterSolver< Scalar > * as_IterSolver () const
AMGSolver< Scalar > * as_AMGSolver () const
Scalar * get_sln_vector ()
double get_time ()
virtual MatrixStructureReuseScheme get_used_reuse_scheme () const
 Get factorization scheme.
virtual void set_reuse_scheme (MatrixStructureReuseScheme reuse_scheme)
virtual void set_reuse_scheme ()
 Set factorization scheme to default.
virtual void use_node_wise_ordering (unsigned int num_pdes)
 Set matrix ordering in the case of a system of PDEs.
virtual void use_equations_wise_ordering ()
SparseMatrix< Scalar > * get_matrix ()
Vector< Scalar > * get_rhs ()
- 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
virtual void set_verbose_output (bool to_set)
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 Member Functions inherited from Hermes::Mixins::TimeMeasurable
 TimeMeasurable (const char *name=nullptr)
 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.
- Public Member Functions inherited from Hermes::Solvers::IterSolver< Scalar >
 IterSolver (SparseMatrix< Scalar > *matrix, Vector< Scalar > *rhs)
void set_solver_type (IterSolverType iterSolverType)

Static Public Member Functions

< paralution::LocalMatrix
< Scalar >
, paralution::LocalVector
< Scalar >, Scalar > * 
return_paralutionSolver (IterSolverType type)
- 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)

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...
- Public Attributes inherited from Hermes::Mixins::Loggable
char * logFileName
 Logfile name.
- Static Public Attributes inherited from Hermes::Mixins::Loggable
static char * staticLogFileName = nullptr
- Protected Member Functions inherited from Hermes::Solvers::AbstractParalutionLinearMatrixSolver< Scalar >
 AbstractParalutionLinearMatrixSolver ()
 AbstractParalutionLinearMatrixSolver (ParalutionMatrix< Scalar > *m, ParalutionVector< Scalar > *rhs)
void reset_internal_solver ()
 Internal solver is not reusable and will have to be re-created.
- 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 inherited from Hermes::Solvers::AbstractParalutionLinearMatrixSolver< Scalar >
ParalutionMatrix< Scalar > * matrix
 Matrix to solve.
ParalutionVector< Scalar > * rhs
 Right hand side vector.
int num_iters
double final_residual
< paralution::LocalMatrix
< Scalar >
, paralution::LocalVector
< Scalar >, Scalar > * 
 Internal solver.
- Protected Attributes inherited from Hermes::Solvers::LoopSolver< Scalar >
int max_iters
 Maximum number of iterations.
double tolerance
 Convergence tolerance.
LoopSolverToleranceType toleranceType
- Protected Attributes inherited from Hermes::Solvers::LinearMatrixSolver< Scalar >
MatrixStructureReuseScheme reuse_scheme
 Factorization scheme.
SparseMatrix< Scalar > * general_matrix
Vector< Scalar > * general_rhs
Scalar * sln
 Solution vector. More...
double time
unsigned int n_eq
 Number of equations in a system of PDEs.
bool node_wise_ordering
- Protected Attributes inherited from Hermes::Solvers::IterSolver< Scalar >
bool precond_yes
 Whether the solver is preconditioned.
IterSolverType iterSolverType

Detailed Description

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

Encapsulation of PARALUTION iterative linear solver.

Definition at line 217 of file paralution_solver.h.

Constructor & Destructor Documentation

Constructor of Iterative PARALUTION solver.

[in]mpointer to matrix
[in]rhspointer to right hand side vector

Definition at line 275 of file paralution_solver.cpp.

Member Function Documentation

template<typename Scalar >
void Hermes::Solvers::IterativeParalutionLinearMatrixSolver< Scalar >::set_solver_type ( IterSolverType  iterSolverType)

Set current solver type. This destroys the current solver (NOT the matrix, and rhs).

Definition at line 308 of file paralution_solver.cpp.

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