16 #ifndef dealii_ginkgo_solver_h 17 # define dealii_ginkgo_solver_h 20 # include <deal.II/base/config.h> 22 # ifdef DEAL_II_WITH_GINKGO 24 # include <deal.II/lac/block_sparse_matrix.h> 25 # include <deal.II/lac/exceptions.h> 26 # include <deal.II/lac/solver_control.h> 27 # include <deal.II/lac/sparse_matrix.h> 28 # include <deal.II/lac/vector.h> 30 # include <ginkgo/ginkgo.hpp> 34 DEAL_II_NAMESPACE_OPEN
49 template <
typename ValueType,
typename IndexType>
124 apply(Vector<ValueType> &solution,
const Vector<ValueType> &rhs);
133 Vector<ValueType> & solution,
134 const Vector<ValueType> & rhs);
159 std::shared_ptr<gko::stop::ResidualNormReduction<>::Factory>
214 template <
typename ValueType =
double,
typename IndexType =
int32_t>
254 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
270 template <
typename ValueType =
double,
typename IndexType =
int32_t>
310 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
328 template <
typename ValueType =
double,
typename IndexType =
int32_t>
368 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
395 template <
typename ValueType =
double,
typename IndexType =
int32_t>
435 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
450 template <
typename ValueType =
double,
typename IndexType =
int32_t>
501 const std::shared_ptr<gko::LinOpFactory> &preconditioner,
520 template <
typename ValueType =
double,
typename IndexType =
int32_t>
560 const std::shared_ptr<gko::LinOpFactory> &inner_solver,
573 DEAL_II_NAMESPACE_CLOSE
575 # endif // DEAL_II_WITH_GINKGO
const AdditionalData additional_data
std::shared_ptr< gko::matrix::Csr< ValueType, IndexType > > system_matrix
std::shared_ptr< gko::stop::ResidualNormReduction<>::Factory > residual_criterion
unsigned int restart_parameter
const std::string exec_type
virtual ~SolverBase()=default
SolverBicgstab(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
void initialize_ginkgo_log()
SolverCG(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())
std::shared_ptr< gko::log::Convergence<> > convergence_logger
const AdditionalData additional_data
void initialize(const SparseMatrix< ValueType > &matrix)
SolverControl & solver_control
void solve(const SparseMatrix< ValueType > &matrix, Vector< ValueType > &solution, const Vector< ValueType > &rhs)
AdditionalData(const unsigned int restart_parameter=30)
const AdditionalData additional_data
SolverFCG(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
SolverIR(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())
std::shared_ptr< gko::LinOpFactory > solver_gen
void apply(Vector< ValueType > &solution, const Vector< ValueType > &rhs)
const AdditionalData additional_data
const AdditionalData additional_data
std::shared_ptr< gko::Executor > executor
std::shared_ptr< gko::stop::Combined::Factory > combined_factory
SolverControl & control() const
SolverBase(SolverControl &solver_control, const std::string &exec_type)
SolverCGS(SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData())