monolish
0.15.1
MONOlithic LInear equation Solvers for Highly-parallel architecture
|
Go to the documentation of this file.
30 template <
typename MATRIX,
typename Float>
44 [[nodiscard]] std::string
name()
const {
return "monolish::equation::none"; }
53 [[nodiscard]] std::string
solver_name()
const {
return "none"; }
71 template <
typename MATRIX,
typename Float>
88 throw std::runtime_error(
"this precond. is not impl.");
92 throw std::runtime_error(
"this precond. is not impl.");
102 [[nodiscard]] std::string
name()
const {
return "monolish::equation::CG"; }
129 template <
typename MATRIX,
typename Float>
147 throw std::runtime_error(
"this precond. is not impl.");
151 throw std::runtime_error(
"this precond. is not impl.");
161 [[nodiscard]] std::string
name()
const {
162 return "monolish::equation::BiCGSTAB";
172 [[nodiscard]] std::string
solver_name()
const {
return "BiCGSTAB"; }
190 template <
typename MATRIX,
typename Float>
216 [[nodiscard]] std::string
name()
const {
217 return "monolish::equation::Jacobi";
227 [[nodiscard]] std::string
solver_name()
const {
return "Jacobi"; }
250 template <
typename MATRIX,
typename Float>
280 [[nodiscard]] std::string
name()
const {
return "monolish::equation::SOR"; }
307 template <
typename MATRIX,
typename Float>
336 std::string
name()
const {
return "monolish::equation::IC"; }
363 template <
typename MATRIX,
typename Float>
392 std::string
name()
const {
return "monolish::equation::ILU"; }
419 template <
typename MATRIX,
typename Float>
432 throw std::runtime_error(
"this precond. is not impl.");
435 throw std::runtime_error(
"this precond. is not impl.");
445 [[nodiscard]] std::string
name()
const {
return "monolish::equation::LU"; }
472 template <
typename MATRIX,
typename Float>
486 throw std::runtime_error(
"this precond. is not impl.");
489 throw std::runtime_error(
"this precond. is not impl.");
499 [[nodiscard]] std::string
name()
const {
return "monolish::equation::QR"; }
526 template <
typename MATRIX,
typename Float>
543 throw std::runtime_error(
"this precond. is not impl.");
546 throw std::runtime_error(
"this precond. is not impl.");
556 [[nodiscard]] std::string
name()
const {
557 return "monolish::equation::Cholesky";
567 [[nodiscard]] std::string
solver_name()
const {
return "Cholesky"; }
int cusolver_LU(MATRIX &A, vector< double > &x, vector< double > &b)
int cusolver_QR(MATRIX &A, vector< double > &x, vector< double > &b)
void create_precond(MATRIX &A)
int monolish_SOR(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string solver_name() const
get solver name "BiCGSTAB"
void create_precond(MATRIX &A)
int monolish_BiCGSTAB(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string name() const
get solver name "monolish::equation::Jacobi"
std::string solver_name() const
get solver name "SOR"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax=b
monolish::vector< Float > zbuf
int monolish_Jacobi(MATRIX &A, vector< Float > &x, vector< Float > &b)
void create_precond(MATRIX &A)
monolish::vector< double > buf
std::string name() const
get solver name "monolish::equation::IC"
int cusparse_ILU(MATRIX &A, vector< Float > &x, vector< Float > &b)
std::string solver_name() const
get solver name "ILU"
monolish::vector< double > buf
std::string name() const
get solver name "monolish::equation::Cholesky"
Incomplete Cholesky solver class.
void apply_precond(const vector< Float > &r, vector< Float > &z)
int cusolver_Cholesky(MATRIX &A, vector< float > &x, vector< float > &b)
int cusparse_IC(MATRIX &A, vector< Float > &x, vector< Float > &b)
void create_precond(MATRIX &A)
void apply_precond(const vector< Float > &r, vector< Float > &z)
int monolish_CG(MATRIX &A, vector< Float > &x, vector< Float > &b)
void create_precond(MATRIX &A)
void apply_precond(const vector< Float > &r, vector< Float > &z)
void create_precond(MATRIX &A)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve with incomprete Cholesky factorization
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string solver_name() const
get solver name "IC"
monolish::vector< Float > zbuf
std::string solver_name() const
get solver name "Jacobi"
void apply_precond(const vector< Float > &r, vector< Float > &z)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax=b
int mumps_LU(MATRIX &A, vector< double > &x, vector< double > &b)
std::string solver_name() const
get solver name "Cholesky"
void create_precond(MATRIX &A)
std::string name() const
get solver name "monolish::equation::CG"
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)
void apply_precond(const vector< Float > &r, vector< Float > &z)
void apply_precond(const vector< Float > &r, vector< Float > &z)
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by SOR method(lib=0: monolish)
std::string solver_name() const
get solver name "QR"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve with incomprete LU factorization
std::string solver_name() const
get solver name "LU"
std::string name() const
get solver name "monolish::equation::BiCGSTAB"
Linear equation solvers for Dense and sparse matrix Scalar.
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
void apply_precond(const vector< Float > &r, vector< Float > &z)
Incomplete LU solver class.
std::string solver_name() const
get solver name "CG"
std::string name() const
get solver name "monolish::equation::LU"
void create_precond(MATRIX &A)
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)
std::string name() const
get solver name "monolish::equation::ILU"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
solve Ax = b by BiCGSTAB method(lib=0: monolish)
none solver class(nothing to do)
std::string name() const
get solver name "monolish::equation::SOR"
Compressed Row Storage (CRS) format Matrix.
std::string name() const
get solver name "monolish::equation::none"
int solve(MATRIX &A, vector< Float > &x, vector< Float > &b)
void create_precond(matrix::CRS< Float > &A)
void apply_precond(const vector< Float > &r, vector< Float > &z)
std::string solver_name() const
get solver name "none"