15#ifndef dealii_ginkgo_solver_h
16#define dealii_ginkgo_solver_h
21#ifdef DEAL_II_WITH_GINKGO
29# include <ginkgo/ginkgo.hpp>
46 template <
typename ValueType,
typename IndexType>
156 std::shared_ptr<gko::stop::ResidualNormReduction<>::Factory>
209 template <
typename ValueType =
double,
typename IndexType =
int32_t>
249 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
263 template <
typename ValueType =
double,
typename IndexType =
int32_t>
303 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
319 template <
typename ValueType =
double,
typename IndexType =
int32_t>
359 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
384 template <
typename ValueType =
double,
typename IndexType =
int32_t>
424 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
437 template <
typename ValueType =
double,
typename IndexType =
int32_t>
488 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
505 template <
typename ValueType =
double,
typename IndexType =
int32_t>
545 const std::shared_ptr<gko::LinOpFactory> &inner_solver,
SolverControl & control() const
const std::string exec_type
SolverControl & solver_control
std::shared_ptr< gko::log::Convergence<> > convergence_logger
void initialize_ginkgo_log()
void initialize(const SparseMatrix< ValueType > &matrix)
std::shared_ptr< gko::matrix::Csr< ValueType, IndexType > > system_matrix
SolverBase(SolverControl &solver_control, const std::string &exec_type)
void apply(Vector< ValueType > &solution, const Vector< ValueType > &rhs)
std::shared_ptr< gko::Executor > executor
std::shared_ptr< gko::LinOpFactory > solver_gen
void solve(const SparseMatrix< ValueType > &matrix, Vector< ValueType > &solution, const Vector< ValueType > &rhs)
virtual ~SolverBase()=default
std::shared_ptr< gko::stop::ResidualNormReduction<>::Factory > residual_criterion
std::shared_ptr< gko::stop::Combined::Factory > combined_factory
SolverBicgstab(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
const AdditionalData additional_data
const AdditionalData additional_data
SolverCGS(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
SolverCG(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
const AdditionalData additional_data
const AdditionalData additional_data
SolverFCG(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
const AdditionalData additional_data
SolverGMRES(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
const AdditionalData additional_data
SolverIR(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
AdditionalData(const unsigned int restart_parameter=30)
unsigned int restart_parameter