\doxysection{gko::\+solver Namespace Reference}
\hypertarget{namespacegko_1_1solver}{}\label{namespacegko_1_1solver}\index{gko::solver@{gko::solver}}


The ginkgo Solve namespace.  


\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1solver_1_1multigrid}{multigrid}}
\begin{DoxyCompactList}\small\item\em The solver multigrid namespace. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Bicg}{Bicg}}
\begin{DoxyCompactList}\small\item\em BICG or the Biconjugate gradient method is a Krylov subspace solver. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Bicg_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Bicg$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Bicgstab}{Bicgstab}}
\begin{DoxyCompactList}\small\item\em Bi\+CGSTAB or the Bi-\/\+Conjugate Gradient-\/\+Stabilized is a Krylov subspace solver. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Bicgstab_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Bicgstab$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1CbGmres}{Cb\+Gmres}}
\begin{DoxyCompactList}\small\item\em CB-\/\+GMRES or the compressed basis generalized minimal residual method is an iterative type Krylov subspace method which is suitable for nonsymmetric linear systems. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Cg}{Cg}}
\begin{DoxyCompactList}\small\item\em CG or the conjugate gradient method is an iterative type Krylov subspace method which is suitable for symmetric positive definite methods. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Cg_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Cg$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Cgs}{Cgs}}
\begin{DoxyCompactList}\small\item\em CGS or the conjugate gradient square method is an iterative type Krylov subspace method which is suitable for general systems. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Cgs_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Cgs$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Chebyshev}{Chebyshev}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1solver_1_1Chebyshev}{Chebyshev} iteration is an iterative method for solving nonsymmetric problems based on some knowledge of the spectrum of the (preconditioned) system matrix. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Chebyshev_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Chebyshev$<$ Value\+Type $>$ $>$}}
\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01gko_1_1experimental_1_1solver_1_1Direct_3_01ValueType_00_01IndexType_01_4_01_4}{workspace\+\_\+traits$<$ gko::\+experimental::\+solver::\+\+Direct$<$ Value\+Type, Index\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Fcg}{Fcg}}
\begin{DoxyCompactList}\small\item\em FCG or the flexible conjugate gradient method is an iterative type Krylov subspace method which is suitable for symmetric positive definite methods. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Fcg_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Fcg$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Gcr}{Gcr}}
\begin{DoxyCompactList}\small\item\em GCR or the generalized conjugate residual method is an iterative type Krylov subspace method similar to GMRES which is suitable for nonsymmetric linear systems. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Gcr_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Gcr$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Gmres}{Gmres}}
\begin{DoxyCompactList}\small\item\em GMRES or the generalized minimal residual method is an iterative type Krylov subspace method which is suitable for nonsymmetric linear systems. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Gmres_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Gmres$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Idr}{Idr}}
\begin{DoxyCompactList}\small\item\em IDR(s) is an efficient method for solving large nonsymmetric systems of linear equations. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Idr_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Idr$<$ Value\+Type $>$ $>$}}
\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1parameters__type}{parameters\+\_\+type}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Factory}{Factory}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Minres}{Minres}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1solver_1_1Minres}{Minres} is an iterative type Krylov subspace method, which is suitable for indefinite and full-\/rank symmetric/\+hermitian operators. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Minres_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Minres$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid}{Multigrid}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1solver_1_1Multigrid}{Multigrid} methods have a hierarchy of many levels, whose corase level is a subset of the fine level, of the problem. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01Multigrid_01_4}{workspace\+\_\+traits$<$ Multigrid $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1PipeCg}{Pipe\+Cg}}
\begin{DoxyCompactList}\small\item\em PIPE\+\_\+\+CG or the pipelined conjugate gradient method is an iterative type Krylov subspace method which is suitable for symmetric positive definite methods. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01PipeCg_3_01ValueType_01_4_01_4}{workspace\+\_\+traits$<$ Pipe\+Cg$<$ Value\+Type $>$ $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1ApplyWithInitialGuess}{Apply\+With\+Initial\+Guess}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1solver_1_1ApplyWithInitialGuess}{Apply\+With\+Initial\+Guess} provides a way to give the input guess for apply function. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableApplyWithInitialGuess}{Enable\+Apply\+With\+Initial\+Guess}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1solver_1_1EnableApplyWithInitialGuess}{Enable\+Apply\+With\+Initial\+Guess} providing default operation for \doxylink{classgko_1_1solver_1_1ApplyWithInitialGuess}{Apply\+With\+Initial\+Guess} with correct validation and log. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits}{workspace\+\_\+traits}}
\begin{DoxyCompactList}\small\item\em Traits class providing information on the type and location of workspace vectors inside a solver. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1EnablePreconditionable}{Enable\+Preconditionable}}
\begin{DoxyCompactList}\small\item\em Mixin providing default operation for \doxylink{classgko_1_1Preconditionable}{Preconditionable} with correct value semantics. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1SolverBase}{Solver\+Base}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableSolverBase}{Enable\+Solver\+Base}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOp}{Lin\+Op} deriving from this CRTP class stores a system matrix. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1IterativeBase}{Iterative\+Base}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface stores a stopping criterion factory. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase}{Enable\+Iterative\+Base}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOp}{Lin\+Op} deriving from this CRTP class stores a stopping criterion factory and allows applying with a guess. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver}{Enable\+Preconditioned\+Iterative\+Solver}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface stores a system matrix and stopping criterion factory. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1enable__iterative__solver__factory__parameters}{enable\+\_\+iterative\+\_\+solver\+\_\+factory\+\_\+parameters}}
\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1enable__preconditioned__iterative__solver__factory__parameters}{enable\+\_\+preconditioned\+\_\+iterative\+\_\+solver\+\_\+factory\+\_\+parameters}}
\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1has__with__criteria}{has\+\_\+with\+\_\+criteria}}
\begin{DoxyCompactList}\small\item\em Helper structure to test if the \doxylink{classgko_1_1solver_1_1Factory}{Factory} of Solver\+Type has a function {\ttfamily with\+\_\+criteria}. \end{DoxyCompactList}\item 
struct {\bfseries has\+\_\+with\+\_\+criteria$<$ Solver\+Type, std::\+void\+\_\+t$<$ decltype(\+Solver\+Type::\+build().\+with\+\_\+criteria(std::\+shared\+\_\+ptr$<$ const stop::\+\+Criterion\+Factory $>$()))$>$ $>$}
\begin{DoxyCompactList}\small\item\em Helper structure to test if the \doxylink{classgko_1_1solver_1_1Factory}{Factory} of Solver\+Type has a function {\ttfamily with\+\_\+criteria}.    \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1UpperTrs}{Upper\+Trs}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1solver_1_1UpperTrs}{Upper\+Trs} is the triangular solver which solves the system U x = b, when U is an upper triangular matrix. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1LowerTrs}{Lower\+Trs}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1solver_1_1LowerTrs}{Lower\+Trs} is the triangular solver which solves the system L x = b, when L is a lower triangular matrix. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01LowerTrs_3_01ValueType_00_01IndexType_01_4_01_4}{workspace\+\_\+traits$<$ Lower\+Trs$<$ Value\+Type, Index\+Type $>$ $>$}}
\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1workspace__traits_3_01UpperTrs_3_01ValueType_00_01IndexType_01_4_01_4}{workspace\+\_\+traits$<$ Upper\+Trs$<$ Value\+Type, Index\+Type $>$ $>$}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum class \doxymbox{\hyperlink{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8a}{initial\+\_\+guess\+\_\+mode}} \{ \doxymbox{\hyperlink{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aad02c4c4cde7ae76252540d116a40f23a}{zero}}
, \doxymbox{\hyperlink{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aa83ff9f9e3dd7561d3dd91204cf546b7e}{rhs}}
, \doxymbox{\hyperlink{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aa1f5f6080965ed6d0a90e6b9ec599e441}{provided}}
 \}
\begin{DoxyCompactList}\small\item\em Give a initial guess mode about the input of the apply method. \end{DoxyCompactList}\item 
enum class \doxymbox{\hyperlink{namespacegko_1_1solver_a68b5a3da69a6acb5f0bb656a96e4eb0a}{trisolve\+\_\+algorithm}} \{ {\bfseries sparselib}
, {\bfseries syncfree}
 \}
\begin{DoxyCompactList}\small\item\em A helper for algorithm selection in the triangular solvers. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
bool \doxymbox{\hyperlink{group__LinOp_ga92a31864b7c45b24d228a35a8a090b83}{apply\+\_\+uses\+\_\+initial\+\_\+guess}} () const override
\begin{DoxyCompactList}\small\item\em Iterative refinement (IR) is an iterative method that uses another coarse method to approximate the error of the current solution via the current residual. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{namespacegko_1_1solver_aeca59c548688fc75b0aa2b259390fb3b}{get\+\_\+solver}} () const
\begin{DoxyCompactList}\small\item\em Returns the solver operator used as the inner solver. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{namespacegko_1_1solver_a5aded6d72b7e8360b700550820177ac2}{set\+\_\+solver}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ new\+\_\+solver)
\begin{DoxyCompactList}\small\item\em Sets the solver operator used as the inner solver. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \& \doxymbox{\hyperlink{namespacegko_1_1solver_ae5760acd16e9a702da395d689f237b33}{operator=}} (const \doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \&)
\begin{DoxyCompactList}\small\item\em Copy-\/assigns an IR solver. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \& \doxymbox{\hyperlink{namespacegko_1_1solver_a7314ef07762498d79a85db3f307f6b47}{operator=}} (\doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \&\&)
\begin{DoxyCompactList}\small\item\em Move-\/assigns an IR solver. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} (const Ir \&)
\begin{DoxyCompactList}\small\item\em Copy-\/constructs an IR solver. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_1_1solver_a43c0b5316dce555a7d5d0fb51513cfd0}{Ir}} (Ir \&\&)
\begin{DoxyCompactList}\small\item\em Move-\/constructs an IR solver. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_1_1solver_a6417786bd0dc512a920e636d0e1fccec}\label{namespacegko_1_1solver_a6417786bd0dc512a920e636d0e1fccec} 
const \doxymbox{\hyperlink{structgko_1_1solver_1_1parameters__type}{parameters\+\_\+type}} \& {\bfseries get\+\_\+parameters} () const
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{namespacegko_1_1solver_a119c83519cc74418854407f8530110c8}\label{namespacegko_1_1solver_a119c83519cc74418854407f8530110c8} 
constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries gcr\+\_\+default\+\_\+krylov\+\_\+dim} = 100u
\item 
\Hypertarget{namespacegko_1_1solver_a39b458ab377c785ee54f5e4cbe7ab1a6}\label{namespacegko_1_1solver_a39b458ab377c785ee54f5e4cbe7ab1a6} 
constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries default\+\_\+krylov\+\_\+dim} = 100u
\item 
\Hypertarget{namespacegko_1_1solver_abf1b223774579cbd96c407da1d8ced01}\label{namespacegko_1_1solver_abf1b223774579cbd96c407da1d8ced01} 
constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries gmres\+\_\+default\+\_\+krylov\+\_\+dim} = 100u
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The ginkgo Solve namespace. 

The ginkgo Solver namespace. 

\label{doc-enum-members}
\Hypertarget{namespacegko_1_1solver_doc-enum-members}
\doxysubsection{Enumeration Type Documentation}
\Hypertarget{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8a}\index{gko::solver@{gko::solver}!initial\_guess\_mode@{initial\_guess\_mode}}
\index{initial\_guess\_mode@{initial\_guess\_mode}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{initial\_guess\_mode}{initial\_guess\_mode}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8a} 
enum class \doxymbox{\hyperlink{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8a}{gko::\+solver::\+initial\+\_\+guess\+\_\+mode}}\hspace{0.3cm}{\ttfamily [strong]}}



Give a initial guess mode about the input of the apply method. 

\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{zero@{zero}!gko::solver@{gko::solver}}
\index{gko::solver@{gko::solver}!zero@{zero}}
}\Hypertarget{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aad02c4c4cde7ae76252540d116a40f23a}\label{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aad02c4c4cde7ae76252540d116a40f23a} 
zero&the input is zero \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{rhs@{rhs}!gko::solver@{gko::solver}}
\index{gko::solver@{gko::solver}!rhs@{rhs}}
}\Hypertarget{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aa83ff9f9e3dd7561d3dd91204cf546b7e}\label{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aa83ff9f9e3dd7561d3dd91204cf546b7e} 
rhs&the input is right hand side \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{provided@{provided}!gko::solver@{gko::solver}}
\index{gko::solver@{gko::solver}!provided@{provided}}
}\Hypertarget{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aa1f5f6080965ed6d0a90e6b9ec599e441}\label{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aa1f5f6080965ed6d0a90e6b9ec599e441} 
provided&the input is provided \\
\hline

\end{DoxyEnumFields}
\Hypertarget{namespacegko_1_1solver_a68b5a3da69a6acb5f0bb656a96e4eb0a}\index{gko::solver@{gko::solver}!trisolve\_algorithm@{trisolve\_algorithm}}
\index{trisolve\_algorithm@{trisolve\_algorithm}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{trisolve\_algorithm}{trisolve\_algorithm}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_a68b5a3da69a6acb5f0bb656a96e4eb0a} 
enum class \doxymbox{\hyperlink{namespacegko_1_1solver_a68b5a3da69a6acb5f0bb656a96e4eb0a}{gko::\+solver::\+trisolve\+\_\+algorithm}}\hspace{0.3cm}{\ttfamily [strong]}}



A helper for algorithm selection in the triangular solvers. 

It currently only matters for the Cuda executor as there, we have a choice between the Ginkgo syncfree and cu\+SPARSE implementations. 

\label{doc-func-members}
\Hypertarget{namespacegko_1_1solver_doc-func-members}
\doxysubsection{Function Documentation}
\Hypertarget{namespacegko_1_1solver_aeca59c548688fc75b0aa2b259390fb3b}\index{gko::solver@{gko::solver}!get\_solver@{get\_solver}}
\index{get\_solver@{get\_solver}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{get\_solver()}{get\_solver()}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_aeca59c548688fc75b0aa2b259390fb3b} 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ gko::\+solver::\+get\+\_\+solver (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Returns the solver operator used as the inner solver. 

\begin{DoxyReturn}{Returns}
the solver operator used as the inner solver 
\end{DoxyReturn}
\Hypertarget{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}\index{gko::solver@{gko::solver}!Ir@{Ir}}
\index{Ir@{Ir}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{Ir()}{Ir()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0} 
gko::\+solver::\+\+Ir (\begin{DoxyParamCaption}\item[{const Ir \&}]{}{}\end{DoxyParamCaption})}



Copy-\/constructs an IR solver. 

Inherits the executor, shallow-\/copies inner solver, stopping criterion and system matrix. 

References \doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir()}}, \doxymbox{\hyperlink{namespacegko_1_1solver_a43c0b5316dce555a7d5d0fb51513cfd0}{Ir()}}, \doxymbox{\hyperlink{namespacegko_1_1solver_ae5760acd16e9a702da395d689f237b33}{operator=()}}, and \doxymbox{\hyperlink{namespacegko_1_1solver_a7314ef07762498d79a85db3f307f6b47}{operator=()}}.

\Hypertarget{namespacegko_1_1solver_a43c0b5316dce555a7d5d0fb51513cfd0}\index{gko::solver@{gko::solver}!Ir@{Ir}}
\index{Ir@{Ir}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{Ir()}{Ir()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_a43c0b5316dce555a7d5d0fb51513cfd0} 
gko::\+solver::\+\+Ir (\begin{DoxyParamCaption}\item[{Ir \&\&}]{}{}\end{DoxyParamCaption})}



Move-\/constructs an IR solver. 

Preserves the executor, moves inner solver, stopping criterion and system matrix. The moved-\/from object is empty (0x0 and nullptr inner solver, stopping criterion and system matrix) 

References \doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir()}}.

\Hypertarget{namespacegko_1_1solver_ae5760acd16e9a702da395d689f237b33}\index{gko::solver@{gko::solver}!operator=@{operator=}}
\index{operator=@{operator=}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_ae5760acd16e9a702da395d689f237b33} 
\doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \& gko::\+solver::\+operator= (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \&}]{}{}\end{DoxyParamCaption})}



Copy-\/assigns an IR solver. 

Preserves the executor, shallow-\/copies inner solver, stopping criterion and system matrix. If the executors mismatch, clones inner solver, stopping criterion and system matrix onto this executor. 

References \doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir()}}.

\Hypertarget{namespacegko_1_1solver_a7314ef07762498d79a85db3f307f6b47}\index{gko::solver@{gko::solver}!operator=@{operator=}}
\index{operator=@{operator=}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_a7314ef07762498d79a85db3f307f6b47} 
\doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \& gko::\+solver::\+operator= (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir}} \&\&}]{}{}\end{DoxyParamCaption})}



Move-\/assigns an IR solver. 

Preserves the executor, moves inner solver, stopping criterion and system matrix. If the executors mismatch, clones inner solver, stopping criterion and system matrix onto this executor. The moved-\/from object is empty (0x0 and nullptr inner solver, stopping criterion and system matrix) 

References \doxymbox{\hyperlink{namespacegko_1_1solver_a1dac6a1b61c52db896845967e899aef0}{Ir()}}.

\Hypertarget{namespacegko_1_1solver_a5aded6d72b7e8360b700550820177ac2}\index{gko::solver@{gko::solver}!set\_solver@{set\_solver}}
\index{set\_solver@{set\_solver}!gko::solver@{gko::solver}}
\doxysubsubsection{\texorpdfstring{set\_solver()}{set\_solver()}}
{\footnotesize\ttfamily \label{namespacegko_1_1solver_a5aded6d72b7e8360b700550820177ac2} 
void gko::\+solver::\+set\+\_\+solver (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{new\+\_\+solver}{}\end{DoxyParamCaption})}



Sets the solver operator used as the inner solver. 


\begin{DoxyParams}{Parameters}
{\em new\+\_\+solver} & the new inner solver \\
\hline
\end{DoxyParams}
