monolish
0.14.0
MONOlithic LIner equation Solvers for Highly-parallel architecture
|
Go to the documentation of this file.
30 template <
typename MATRIX,
typename Float>
44 std::string
name()
const {
return "monolish::equation::none"; }
62 template <
typename MATRIX,
typename Float>
78 throw std::runtime_error(
"this precond. is not impl.");
82 throw std::runtime_error(
"this precond. is not impl.");
92 std::string
name()
const {
return "monolish::equation::CG"; }
110 template <
typename MATRIX,
typename Float>
126 throw std::runtime_error(
"this precond. is not impl.");
130 throw std::runtime_error(
"this precond. is not impl.");
140 std::string
name()
const {
return "monolish::equation::BiCGSTAB"; }
158 template <
typename MATRIX,
typename Float>
182 std::string
name()
const {
return "monolish::equation::Jacobi"; }
200 template <
typename MATRIX,
typename Float>
215 throw std::runtime_error(
"this precond. is not impl.");
218 throw std::runtime_error(
"this precond. is not impl.");
228 std::string
name()
const {
return "monolish::equation::LU"; }
247 template <
typename MATRIX,
typename Float>
274 throw std::runtime_error(
"this precond. is not impl.");
277 throw std::runtime_error(
"this precond. is not impl.");
287 std::string
name()
const {
return "monolish::equation::QR"; }
306 template <
typename MATRIX,
typename Float>
335 throw std::runtime_error(
"this precond. is not impl.");
338 throw std::runtime_error(
"this precond. is not impl.");
348 std::string
name()
const {
return "monolish::equation::Cholesky"; }
int cusolver_LU(MATRIX &A, vector< double > &x, vector< double > &b)
int cusolver_QR(MATRIX &A, vector< double > &x, vector< double > &b)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by jacobi method(lib=0: monolish)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by BiCGSTAB method(lib=0: monolish)
std::string name() const
get solver name "monolish::equation::Jacobi"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax=b
void create_precond(MATRIX &A)
int monolish_CG(MATRIX &A, vector< Float > &x, vector< Float > &b)
Cholesky solver class. It can use set_tol(), get_tol(), set_reorder(), get_singularity().
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string name() const
get solver name "monolish::equation::Cholesky"
void apply_precond(const vector< Float > &r, vector< Float > &z)
int cusolver_Cholesky(MATRIX &A, vector< float > &x, vector< float > &b)
void apply_precond(const vector< Float > &r, vector< Float > &z)
void create_precond(MATRIX &A)
void create_precond(MATRIX &A)
LU solver class (Dense, CPU only now)
int mumps_LU(MATRIX &A, vector< double > &x, vector< double > &b)
void create_precond(MATRIX &A)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax=b
int monolish_Jacobi(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string name() const
get solver name "monolish::equation::CG"
int monolish_BiCGSTAB(MATRIX &A, vector< Float > &x, vector< Float > &b)
void apply_precond(const vector< Float > &r, vector< Float > &z)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by BiCGSTAB method (lib=0: monolish)
void create_precond(MATRIX &A)
QR solver class (Dense, GPU only now). can use set_tol(), get_tol(), set_reorder(),...
void apply_precond(const vector< Float > &r, vector< Float > &z)
void apply_precond(const vector< Float > &r, vector< Float > &z)
int get_sigularity()
-1 if A is symmetric postive definite.
int get_sigularity()
-1 if A is symmetric postive definite. default reorder algorithm is csrmetisnd
std::string name() const
get solver name "monolish::equation::BiCGSTAB"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string name() const
get solver name "monolish::equation::LU"
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string name() const
get solver name "monolish::equation::QR"
void create_precond(MATRIX &A)
none solver class(nothing to do)
void set_reorder(int r)
0: no ordering 1: symrcm, 2: symamd, 3: csrmetisnd is used to reduce zero fill-in....
Compressed Row Storage (CRS) format Matrix.
std::string name() const
get solver name "monolish::equation::none"
void set_reorder(int r)
0: no ordering 1: symrcm, 2: symamd, 3: csrmetisnd is used to reduce zero fill-in.
void create_precond(matrix::CRS< Float > &A)