\doxysection{gko::\+multigrid::\+Enable\+Multigrid\+Level\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1multigrid_1_1EnableMultigridLevel}{}\label{classgko_1_1multigrid_1_1EnableMultigridLevel}\index{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}}


The \doxylink{classgko_1_1multigrid_1_1EnableMultigridLevel}{Enable\+Multigrid\+Level} gives the default implementation of \doxylink{classgko_1_1multigrid_1_1MultigridLevel}{Multigrid\+Level} with composition and provides {\ttfamily set\+\_\+multigrid\+\_\+level} function.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+multigrid/\+multigrid\+\_\+level.\+hpp$>$}



Inheritance diagram for gko::\+multigrid::\+Enable\+Multigrid\+Level\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1multigrid_1_1EnableMultigridLevel__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+multigrid::\+Enable\+Multigrid\+Level\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=338pt]{classgko_1_1multigrid_1_1EnableMultigridLevel__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1multigrid_1_1EnableMultigridLevel_a9b93d94985bc75a605f89987f7a2226c}\label{classgko_1_1multigrid_1_1EnableMultigridLevel_a9b93d94985bc75a605f89987f7a2226c} 
using {\bfseries value\+\_\+type} = Value\+Type
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1UseComposition}{gko::\+\+Use\+Composition$<$ Value\+Type $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel_afe1942cb9e7ad413f14c2837cf699e96}{get\+\_\+fine\+\_\+op}} () const override
\begin{DoxyCompactList}\small\item\em Returns the operator on fine level. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel_a660228f99b543605ccbd24f3fa0e816b}{get\+\_\+restrict\+\_\+op}} () const override
\begin{DoxyCompactList}\small\item\em Returns the restrict operator. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel_a6be3e7352bd2b57d95717caa757fbf7c}{get\+\_\+coarse\+\_\+op}} () const override
\begin{DoxyCompactList}\small\item\em Returns the operator on coarse level. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel_a27e2ddde81000fae9f6df287585b71a6}{get\+\_\+prolong\+\_\+op}} () const override
\begin{DoxyCompactList}\small\item\em Returns the prolong operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1UseComposition}{gko::\+\+Use\+Composition$<$ Value\+Type $>$}}}
\begin{DoxyCompactItemize}
\item 
std::\+shared\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1Composition}{Composition}}$<$ Value\+Type $>$ $>$ \doxymbox{\hyperlink{classgko_1_1UseComposition_a81d7f1c982c43df853ed9b9074e45409}{get\+\_\+composition}} () const
\begin{DoxyCompactList}\small\item\em Returns the composition operators. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1UseComposition_a46d5ea836edce6f0c0738d0218dd394b}{get\+\_\+operator\+\_\+at}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} index) const
\begin{DoxyCompactList}\small\item\em Returns the operator at index-\/th position of composition. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type$>$\newline
class gko::\+multigrid::\+\+Enable\+Multigrid\+Level$<$ Value\+Type $>$}
The \doxylink{classgko_1_1multigrid_1_1EnableMultigridLevel}{Enable\+Multigrid\+Level} gives the default implementation of \doxylink{classgko_1_1multigrid_1_1MultigridLevel}{Multigrid\+Level} with composition and provides {\ttfamily set\+\_\+multigrid\+\_\+level} function. 

A class inherit from \doxylink{classgko_1_1multigrid_1_1EnableMultigridLevel}{Enable\+Multigrid\+Level} should use the this-\/\texorpdfstring{$>$}{>}get\+\_\+compositions()-\/\texorpdfstring{$>$}{>}apply(...) as its own apply, which represents op(b) = prolong(coarse(restrict(b))). 

\label{doc-func-members}
\Hypertarget{classgko_1_1multigrid_1_1EnableMultigridLevel_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1multigrid_1_1EnableMultigridLevel_a6be3e7352bd2b57d95717caa757fbf7c}\index{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}!get\_coarse\_op@{get\_coarse\_op}}
\index{get\_coarse\_op@{get\_coarse\_op}!gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_coarse\_op()}{get\_coarse\_op()}}
{\footnotesize\ttfamily \label{classgko_1_1multigrid_1_1EnableMultigridLevel_a6be3e7352bd2b57d95717caa757fbf7c} 
template$<$typename Value\+Type$>$ \\
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel}{gko::\+multigrid::\+\+Enable\+Multigrid\+Level}}$<$ Value\+Type $>$::\+get\+\_\+coarse\+\_\+op (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Returns the operator on coarse level. 

\begin{DoxyReturn}{Returns}
the operator on coarse level. 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1multigrid_1_1MultigridLevel_ab843dfef8a1dc0a0c352cadc2b670a51}{gko::\+multigrid::\+\+Multigrid\+Level}}.



References \doxymbox{\hyperlink{classgko_1_1UseComposition_a46d5ea836edce6f0c0738d0218dd394b}{gko::\+\+Use\+Composition$<$ Value\+Type $>$::\+get\+\_\+operator\+\_\+at()}}.

\Hypertarget{classgko_1_1multigrid_1_1EnableMultigridLevel_afe1942cb9e7ad413f14c2837cf699e96}\index{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}!get\_fine\_op@{get\_fine\_op}}
\index{get\_fine\_op@{get\_fine\_op}!gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_fine\_op()}{get\_fine\_op()}}
{\footnotesize\ttfamily \label{classgko_1_1multigrid_1_1EnableMultigridLevel_afe1942cb9e7ad413f14c2837cf699e96} 
template$<$typename Value\+Type$>$ \\
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel}{gko::\+multigrid::\+\+Enable\+Multigrid\+Level}}$<$ Value\+Type $>$::\+get\+\_\+fine\+\_\+op (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Returns the operator on fine level. 

\begin{DoxyReturn}{Returns}
the operator on fine level. 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1multigrid_1_1MultigridLevel_a7299b4c0ce624661b90bc8ab0799101e}{gko::\+multigrid::\+\+Multigrid\+Level}}.

\Hypertarget{classgko_1_1multigrid_1_1EnableMultigridLevel_a27e2ddde81000fae9f6df287585b71a6}\index{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}!get\_prolong\_op@{get\_prolong\_op}}
\index{get\_prolong\_op@{get\_prolong\_op}!gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_prolong\_op()}{get\_prolong\_op()}}
{\footnotesize\ttfamily \label{classgko_1_1multigrid_1_1EnableMultigridLevel_a27e2ddde81000fae9f6df287585b71a6} 
template$<$typename Value\+Type$>$ \\
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel}{gko::\+multigrid::\+\+Enable\+Multigrid\+Level}}$<$ Value\+Type $>$::\+get\+\_\+prolong\+\_\+op (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Returns the prolong operator. 

\begin{DoxyReturn}{Returns}
the prolong operator. 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1multigrid_1_1MultigridLevel_a50dcc374de40eb581256e1a906040a85}{gko::\+multigrid::\+\+Multigrid\+Level}}.



References \doxymbox{\hyperlink{classgko_1_1UseComposition_a46d5ea836edce6f0c0738d0218dd394b}{gko::\+\+Use\+Composition$<$ Value\+Type $>$::\+get\+\_\+operator\+\_\+at()}}.

\Hypertarget{classgko_1_1multigrid_1_1EnableMultigridLevel_a660228f99b543605ccbd24f3fa0e816b}\index{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}!get\_restrict\_op@{get\_restrict\_op}}
\index{get\_restrict\_op@{get\_restrict\_op}!gko::multigrid::EnableMultigridLevel$<$ ValueType $>$@{gko::multigrid::EnableMultigridLevel$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_restrict\_op()}{get\_restrict\_op()}}
{\footnotesize\ttfamily \label{classgko_1_1multigrid_1_1EnableMultigridLevel_a660228f99b543605ccbd24f3fa0e816b} 
template$<$typename Value\+Type$>$ \\
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1multigrid_1_1EnableMultigridLevel}{gko::\+multigrid::\+\+Enable\+Multigrid\+Level}}$<$ Value\+Type $>$::\+get\+\_\+restrict\+\_\+op (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Returns the restrict operator. 

\begin{DoxyReturn}{Returns}
the restrict operator. 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1multigrid_1_1MultigridLevel_a937111a77e3c7ee0a2c6f710efc9a688}{gko::\+multigrid::\+\+Multigrid\+Level}}.



References \doxymbox{\hyperlink{classgko_1_1UseComposition_a46d5ea836edce6f0c0738d0218dd394b}{gko::\+\+Use\+Composition$<$ Value\+Type $>$::\+get\+\_\+operator\+\_\+at()}}.



The documentation for this class was generated from the following file:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+multigrid/\+multigrid\+\_\+level.\+hpp\end{DoxyCompactItemize}
