Reference documentation for deal.II version 9.1.1
|
#include <deal.II/lac/ginkgo_solver.h>
Classes | |
struct | AdditionalData |
Public Member Functions | |
SolverFCG (SolverControl &solver_control, const std::string &exec_type, const AdditionalData &data=AdditionalData()) | |
SolverFCG (SolverControl &solver_control, const std::string &exec_type, const std::shared_ptr< gko::LinOpFactory > &preconditioner, const AdditionalData &data=AdditionalData()) | |
Public Member Functions inherited from GinkgoWrappers::SolverBase< ValueType, IndexType > | |
SolverBase (SolverControl &solver_control, const std::string &exec_type) | |
virtual | ~SolverBase ()=default |
void | initialize (const SparseMatrix< ValueType > &matrix) |
void | apply (Vector< ValueType > &solution, const Vector< ValueType > &rhs) |
void | solve (const SparseMatrix< ValueType > &matrix, Vector< ValueType > &solution, const Vector< ValueType > &rhs) |
SolverControl & | control () const |
Protected Attributes | |
const AdditionalData | additional_data |
Protected Attributes inherited from GinkgoWrappers::SolverBase< ValueType, IndexType > | |
SolverControl & | solver_control |
std::shared_ptr< gko::LinOpFactory > | solver_gen |
std::shared_ptr< gko::stop::ResidualNormReduction<>::Factory > | residual_criterion |
std::shared_ptr< gko::log::Convergence<> > | convergence_logger |
std::shared_ptr< gko::stop::Combined::Factory > | combined_factory |
std::shared_ptr< gko::Executor > | executor |
An implementation of the solver interface using the Ginkgo FCG solver.
FCG or the flexible conjugate gradient method is an iterative type Krylov subspace method which is suitable for symmetric positive definite methods.
Though this method performs very well for symmetric positive definite matrices, it is in general not suitable for general matrices.
In contrast to the standard CG based on the Polack-Ribiere formula, the flexible CG uses the Fletcher-Reeves formula for creating the orthonormal vectors spanning the Krylov subspace. This increases the computational cost of every Krylov solver iteration but allows for non-constant preconditioners.
Definition at line 396 of file ginkgo_solver.h.
GinkgoWrappers::SolverFCG< ValueType, IndexType >::SolverFCG | ( | SolverControl & | solver_control, |
const std::string & | exec_type, | ||
const AdditionalData & | data = AdditionalData() |
||
) |
Constructor.
[in,out] | solver_control | The solver control object is then used to set the parameters and setup the FCG solver from the FCG factory which solves the linear system. |
[in] | exec_type | The execution paradigm for the FCG solver. |
[in] | data | The additional data required by the solver. |
Definition at line 405 of file ginkgo_solver.cc.
GinkgoWrappers::SolverFCG< ValueType, IndexType >::SolverFCG | ( | SolverControl & | solver_control, |
const std::string & | exec_type, | ||
const std::shared_ptr< gko::LinOpFactory > & | preconditioner, | ||
const AdditionalData & | data = AdditionalData() |
||
) |
Constructor.
[in,out] | solver_control | The solver control object is then used to set the parameters and setup the FCG solver from the FCG factory which solves the linear system. |
[in] | exec_type | The execution paradigm for the FCG solver. |
[in] | preconditioner | The preconditioner for the solver. |
[in] | data | The additional data required by the solver. |
Definition at line 419 of file ginkgo_solver.cc.
|
protected |
Store a copy of the settings for this particular solver.
Definition at line 442 of file ginkgo_solver.h.