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

LU solver class (Dense, CPU only now) More...

#include <monolish_equation.hpp>

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

Public Member Functions

void apply_precond (const vector< Float > &r, vector< Float > &z)
 
void create_precond (MATRIX &A)
 
int get_sigularity ()
 
std::string name () const
 get solver name "monolish::equation::LU" More...
 
void set_reorder (int r)
 
int solve (MATRIX &A, vector< Float > &x, vector< Float > &b)
 
int solve (MATRIX &A, vector< Float > &xb)
 
int solve (matrix::CRS< double > &A, vector< double > &x, vector< double > &b)
 
int solve (matrix::CRS< float > &A, vector< float > &x, vector< float > &b)
 
int solve (matrix::Dense< double > &A, vector< double > &x, vector< double > &b)
 
int solve (matrix::Dense< double > &A, vector< double > &XB)
 
int solve (matrix::Dense< float > &A, vector< float > &x, vector< float > &b)
 
int solve (matrix::Dense< float > &A, vector< float > &XB)
 
- Public Member Functions inherited from monolish::solver::solver< MATRIX, Float >
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...
 
bool get_print_rhistory () const
 get print rhistory status More...
 
size_t get_residual_method () const
 get residual method(default=0) More...
 
double get_tol () const
 get tolerance More...
 
template<class PRECOND >
void set_apply_precond (PRECOND &p)
 set precondition apply fucntion More...
 
template<class PRECOND >
void set_create_precond (PRECOND &p)
 set precondition create fucntion 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_print_rhistory (bool flag)
 print rhistory to standart out true/false. (default = false) 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_LU (MATRIX &A, vector< double > &x, vector< double > &b)
 
int cusolver_LU (matrix::CRS< double > &A, vector< double > &x, vector< double > &b)
 
int mumps_LU (MATRIX &A, vector< double > &x, vector< double > &b)
 
int mumps_LU (matrix::CRS< double > &A, vector< double > &x, vector< double > &b)
 

Private Attributes

int lib = 1
 
int reorder = 3
 
int singularity
 

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 >
initvec_scheme initvecscheme = initvec_scheme::RANDOM
 
int lib = 0
 
size_t maxiter = SIZE_MAX
 
size_t miniter = 0
 
precondition< MATRIX, Float > precond
 
bool print_rhistory = false
 
size_t resid_method = 0
 
std::string rhistory_file
 
std::ostream * rhistory_stream
 
double tol = 1.0e-8
 

Detailed Description

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

LU solver class (Dense, CPU only now)

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

Definition at line 201 of file monolish_equation.hpp.

Member Function Documentation

◆ apply_precond()

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

Definition at line 217 of file monolish_equation.hpp.

◆ create_precond()

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

Definition at line 214 of file monolish_equation.hpp.

◆ cusolver_LU() [1/2]

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

◆ cusolver_LU() [2/2]

int monolish::equation::LU< matrix::CRS< double >, double >::cusolver_LU ( matrix::CRS< double > &  A,
vector< double > &  x,
vector< double > &  b 
)
private

Definition at line 12 of file lu_cucolver_gpu.cpp.

Here is the call graph for this function:

◆ get_sigularity()

template<typename MATRIX , typename Float >
int monolish::equation::LU< MATRIX, Float >::get_sigularity ( )
inline

Definition at line 211 of file monolish_equation.hpp.

◆ mumps_LU() [1/2]

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

◆ mumps_LU() [2/2]

int monolish::equation::LU< matrix::CRS< double >, double >::mumps_LU ( matrix::CRS< double > &  A,
vector< double > &  x,
vector< double > &  b 
)
private

Definition at line 16 of file lu_mumps_cpu.cpp.

Here is the call graph for this function:

◆ name()

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

get solver name "monolish::equation::LU"

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

Definition at line 228 of file monolish_equation.hpp.

◆ set_reorder()

template<typename MATRIX , typename Float >
void monolish::equation::LU< MATRIX, Float >::set_reorder ( int  r)
inline

Definition at line 210 of file monolish_equation.hpp.

◆ solve() [1/8]

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

◆ solve() [2/8]

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

◆ solve() [3/8]

int monolish::equation::LU< matrix::CRS< double >, double >::solve ( matrix::CRS< double > &  A,
vector< double > &  x,
vector< double > &  b 
)

Definition at line 9 of file lu.cpp.

Here is the call graph for this function:

◆ solve() [4/8]

int monolish::equation::LU< matrix::CRS< float >, float >::solve ( matrix::CRS< float > &  A,
vector< float > &  x,
vector< float > &  b 
)

Definition at line 23 of file lu.cpp.

Here is the call graph for this function:

◆ solve() [5/8]

int monolish::equation::LU< matrix::Dense< double >, double >::solve ( matrix::Dense< double > &  A,
vector< double > &  x,
vector< double > &  b 
)

Definition at line 91 of file lu.cpp.

Here is the call graph for this function:

◆ solve() [6/8]

int monolish::equation::LU< matrix::Dense< double >, double >::solve ( matrix::Dense< double > &  A,
vector< double > &  XB 
)

Definition at line 37 of file lu.cpp.

Here is the call graph for this function:

◆ solve() [7/8]

int monolish::equation::LU< matrix::Dense< float >, float >::solve ( matrix::Dense< float > &  A,
vector< float > &  x,
vector< float > &  b 
)

Definition at line 121 of file lu.cpp.

Here is the call graph for this function:

◆ solve() [8/8]

int monolish::equation::LU< matrix::Dense< float >, float >::solve ( matrix::Dense< float > &  A,
vector< float > &  XB 
)

Definition at line 64 of file lu.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ lib

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

Definition at line 203 of file monolish_equation.hpp.

◆ reorder

template<typename MATRIX , typename Float >
int monolish::equation::LU< MATRIX, Float >::reorder = 3
private

Definition at line 207 of file monolish_equation.hpp.

◆ singularity

template<typename MATRIX , typename Float >
int monolish::equation::LU< MATRIX, Float >::singularity
private

Definition at line 206 of file monolish_equation.hpp.


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