monolish  0.17.1
MONOlithic LInear equation Solvers for Highly-parallel architecture
Public Member Functions | Private Member Functions | Private Attributes | List of all members
monolish::equation::Cholesky< MATRIX, Float > Class Template Reference

Cholesky solver class. More...

#include <monolish_equation.hpp>

Inheritance diagram for monolish::equation::Cholesky< MATRIX, Float >:
Inheritance graph
Collaboration diagram for monolish::equation::Cholesky< MATRIX, Float >:
Collaboration graph

Public Member Functions

void apply_precond (const vector< Float > &r, vector< Float > &z)
 
void create_precond (matrix::CRS< Float > &A)
 
std::string name () const
 get solver name "monolish::equation::Cholesky" More...
 
int solve (MATRIX &A, vector< Float > &x, vector< Float > &b)
 solve Ax=b More...
 
int solve (MATRIX &A, vector< Float > &xb)
 
std::string solver_name () const
 get solver name "Cholesky" More...
 
- Public Member Functions inherited from monolish::solver::solver< MATRIX, Float >
size_t get_final_iter ()
 
double get_final_residual ()
 
initvec_scheme get_initvec_scheme () const
 get handling scheme of initial vector handling More...
 
int get_lib () const
 get library option More...
 
size_t get_maxiter () const
 get maxiter More...
 
size_t get_miniter () const
 get miniter More...
 
Float get_omega ()
 get the relaxation coefficient omega for SOR method (Default: 1.9) More...
 
bool get_print_rhistory () const
 get print rhistory status More...
 
int get_reorder ()
 0: no ordering 1: symrcm, 2: symamd, 3: csrmetisnd is used to reduce zero fill-in. More...
 
size_t get_residual_method () const
 get residual method(default=0) More...
 
int get_singularity ()
 -1 if A is symmetric positive definite. default reorder algorithm is csrmetisnd More...
 
double get_tol () const
 get tolerance More...
 
template<class PRECOND >
void set_apply_precond (PRECOND &p)
 set precondition apply function More...
 
template<class PRECOND >
void set_create_precond (PRECOND &p)
 set precondition create function More...
 
void set_initvec_scheme (initvec_scheme scheme)
 set how to handle initial vector More...
 
void set_lib (int l)
 set library option (to change library, monolish, cusolver, etc.) More...
 
void set_maxiter (size_t max)
 set max iter. (default = SIZE_MAX) More...
 
void set_miniter (size_t min)
 set min iter. (default = 0) More...
 
void set_omega (Float w)
 set the relaxation coefficient omega for SOR method (0 < w < 2, Default: 1.9) More...
 
void set_print_rhistory (bool flag)
 print rhistory to standart out true/false. (default = false) More...
 
void set_reorder (int r)
 0: no ordering 1: symrcm, 2: symamd, 3: csrmetisnd is used to reduce zero fill-in. More...
 
void set_residual_method (size_t r)
 set residual method (default=0) More...
 
void set_rhistory_filename (std::string file)
 rhistory filename More...
 
void set_tol (double t)
 set tolerance (default:1.0e-8) More...
 
 solver ()
 create solver class More...
 
 ~solver ()
 delete solver class More...
 

Private Member Functions

int cusolver_Cholesky (MATRIX &A, vector< double > &x, vector< double > &b)
 
int cusolver_Cholesky (MATRIX &A, vector< float > &x, vector< float > &b)
 

Private Attributes

int lib = 1
 

Additional Inherited Members

- Protected Member Functions inherited from monolish::solver::solver< MATRIX, Float >
Float get_residual (vector< Float > &x)
 
- Protected Attributes inherited from monolish::solver::solver< MATRIX, Float >
size_t final_iter = 0
 
double final_resid = 0
 
initvec_scheme initvecscheme = initvec_scheme::RANDOM
 
int lib = 0
 
size_t maxiter = SIZE_MAX
 
size_t miniter = 0
 
Float omega = 1.9
 
precondition< MATRIX, Float > precond
 
bool print_rhistory = false
 
int reorder = 3
 
size_t resid_method = 0
 
std::string rhistory_file
 
std::ostream * rhistory_stream
 
int singularity
 
double tol = 1.0e-8
 

Detailed Description

template<typename MATRIX, typename Float>
class monolish::equation::Cholesky< MATRIX, Float >

Cholesky solver class.

Note
attribute:
  • solver : true
  • preconditioner : false
input / architecture
  • Dense / Intel : true
  • Dense / NVIDIA : false
  • Dense / OSS : true
  • Sparse / Intel : false
  • Sparse / NVIDIA : true
  • Sparse / OSS : false

Definition at line 592 of file monolish_equation.hpp.

Member Function Documentation

◆ apply_precond()

template<typename MATRIX , typename Float >
void monolish::equation::Cholesky< MATRIX, Float >::apply_precond ( const vector< Float > &  r,
vector< Float > &  z 
)
inline

Definition at line 610 of file monolish_equation.hpp.

◆ create_precond()

template<typename MATRIX , typename Float >
void monolish::equation::Cholesky< MATRIX, Float >::create_precond ( matrix::CRS< Float > &  A)
inline

Definition at line 607 of file monolish_equation.hpp.

◆ cusolver_Cholesky() [1/2]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::cusolver_Cholesky ( MATRIX &  A,
vector< double > &  x,
vector< double > &  b 
)
private

◆ cusolver_Cholesky() [2/2]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::cusolver_Cholesky ( MATRIX &  A,
vector< float > &  x,
vector< float > &  b 
)
private

◆ name()

template<typename MATRIX , typename Float >
std::string monolish::equation::Cholesky< MATRIX, Float >::name ( ) const
inline

get solver name "monolish::equation::Cholesky"

Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 621 of file monolish_equation.hpp.

◆ solve() [1/2]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::solve ( MATRIX &  A,
vector< Float > &  x,
vector< Float > &  b 
)

solve Ax=b

◆ solve() [2/2]

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::solve ( MATRIX &  A,
vector< Float > &  xb 
)

◆ solver_name()

template<typename MATRIX , typename Float >
std::string monolish::equation::Cholesky< MATRIX, Float >::solver_name ( ) const
inline

get solver name "Cholesky"

Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 632 of file monolish_equation.hpp.

Member Data Documentation

◆ lib

template<typename MATRIX , typename Float >
int monolish::equation::Cholesky< MATRIX, Float >::lib = 1
private

Definition at line 594 of file monolish_equation.hpp.


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