\doxysection{gko::\+solver::\+Multigrid Class Reference}
\hypertarget{classgko_1_1solver_1_1Multigrid}{}\label{classgko_1_1solver_1_1Multigrid}\index{gko::solver::Multigrid@{gko::solver::Multigrid}}


\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.  




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



Inheritance diagram for gko::\+solver::\+Multigrid:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1solver_1_1Multigrid__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+solver::\+Multigrid:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1solver_1_1Multigrid__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \doxymbox{\hyperlink{structgko_1_1solver_1_1Multigrid_1_1parameters__type}{parameters\+\_\+type}}
\item 
class \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_1_1Factory}{Factory}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
bool \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_a708c25e7a2bcffb7ef0d98092d9d49e2}{apply\+\_\+uses\+\_\+initial\+\_\+guess}} () const override
\begin{DoxyCompactList}\small\item\em Return true as iterative solvers use the data in x as an initial guess or false if multigrid always set the input as zero. \end{DoxyCompactList}\item 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1multigrid_1_1MultigridLevel}{gko::\+multigrid::\+\+Multigrid\+Level}} $>$ $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_a329f84de3bf22628d198d18b0c0eeb82}{get\+\_\+mg\+\_\+level\+\_\+list}} () const
\begin{DoxyCompactList}\small\item\em Gets the list of Multigrid\+Level operators. \end{DoxyCompactList}\item 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_a86822c874e019217a3bb1c7d356b42ab}{get\+\_\+pre\+\_\+smoother\+\_\+list}} () const
\begin{DoxyCompactList}\small\item\em Gets the list of pre-\/smoother operators. \end{DoxyCompactList}\item 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_a4c7ff92d47f52b9a8b053db8b83a43df}{get\+\_\+mid\+\_\+smoother\+\_\+list}} () const
\begin{DoxyCompactList}\small\item\em Gets the list of mid-\/smoother operators. \end{DoxyCompactList}\item 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_ad0c56b5c7ad6c1093f3d13ba3a6cbe40}{get\+\_\+post\+\_\+smoother\+\_\+list}} () const
\begin{DoxyCompactList}\small\item\em Gets the list of post-\/smoother operators. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_a087f1555d94936b092fa6e8c9fc3f4c4}{get\+\_\+coarsest\+\_\+solver}} () const
\begin{DoxyCompactList}\small\item\em Gets the operator at the coarsest level. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_1_1solver_1_1multigrid_a4f89fc8a003f879d4ff2f482c2fbab68}{multigrid::\+cycle}} \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_a69ed1a6c1ac6c01f0700cdab8a5a1e1c}{get\+\_\+cycle}} () const
\begin{DoxyCompactList}\small\item\em Get the cycle of multigrid. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_a4a7d27445ab1f3228c827e9ee2c94c19}{set\+\_\+cycle}} (\doxymbox{\hyperlink{namespacegko_1_1solver_1_1multigrid_a4f89fc8a003f879d4ff2f482c2fbab68}{multigrid::\+cycle}} cycle)
\begin{DoxyCompactList}\small\item\em Set the cycle of multigrid. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1solver_1_1Multigrid_a82b23694b97d1c7b1f40792745607e38}\label{classgko_1_1solver_1_1Multigrid_a82b23694b97d1c7b1f40792745607e38} 
const \doxymbox{\hyperlink{structgko_1_1solver_1_1Multigrid_1_1parameters__type}{parameters\+\_\+type}} \& {\bfseries get\+\_\+parameters} () const
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnableLinOp}{gko::\+\+Enable\+Lin\+Op$<$ Multigrid $>$}}}
\begin{DoxyCompactItemize}
\item 
const Multigrid \texorpdfstring{$\ast$}{*} {\bfseries apply} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ x) const
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Multigrid $>$}}}
\begin{DoxyCompactItemize}
\item 
void {\bfseries convert\+\_\+to} (result\+\_\+type \texorpdfstring{$\ast$}{*}result) const override
\item 
void {\bfseries move\+\_\+to} (result\+\_\+type \texorpdfstring{$\ast$}{*}result) override
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableSolverBase}{gko::\+solver::\+\+Enable\+Solver\+Base$<$ Multigrid $>$}}}
\begin{DoxyCompactItemize}
\item 
Enable\+Solver\+Base \& {\bfseries operator=} (const Enable\+Solver\+Base \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided system matrix, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
int {\bfseries get\+\_\+num\+\_\+workspace\+\_\+ops} () const override
\item 
std::\+vector$<$ std::\+string $>$ {\bfseries get\+\_\+workspace\+\_\+op\+\_\+names} () const override
\item 
std::\+vector$<$ int $>$ {\bfseries get\+\_\+workspace\+\_\+scalars} () const override
\begin{DoxyCompactList}\small\item\em Returns the IDs of all scalars (workspace vectors with system dimension-\/independent size, usually 1 x num\+\_\+rhs). \end{DoxyCompactList}\item 
std::\+vector$<$ int $>$ {\bfseries get\+\_\+workspace\+\_\+vectors} () const override
\begin{DoxyCompactList}\small\item\em Returns the IDs of all vectors (workspace vectors with system dimension-\/dependent size, usually system\+\_\+matrix\+\_\+size x num\+\_\+rhs). \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1SolverBase}{gko::\+solver::\+\+Solver\+Base$<$ Lin\+Op $>$}}}
\begin{DoxyCompactItemize}
\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1SolverBase_a2270916c6cb8451c275c0bca44c5d09e}{get\+\_\+system\+\_\+matrix}} () const
\begin{DoxyCompactList}\small\item\em Returns the system matrix, with its concrete type, used by the solver. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase}{gko::\+solver::\+\+Enable\+Iterative\+Base$<$ Multigrid $>$}}}
\begin{DoxyCompactItemize}
\item 
Enable\+Iterative\+Base \& {\bfseries operator=} (const Enable\+Iterative\+Base \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided stopping criterion, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase_a5e96a31681a2bc03fffb2d76e7a7da12}{set\+\_\+stop\+\_\+criterion\+\_\+factory}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{stop::\+\+Criterion\+Factory}} $>$ new\+\_\+stop\+\_\+factory) override
\begin{DoxyCompactList}\small\item\em Sets the stopping criterion of the solver. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1IterativeBase}{gko::\+solver::\+\+Iterative\+Base}}}
\begin{DoxyCompactItemize}
\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{stop::\+\+Criterion\+Factory}} $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1IterativeBase_a26beb5ec985d883c22b614a8240d981d}{get\+\_\+stop\+\_\+criterion\+\_\+factory}} () const
\begin{DoxyCompactList}\small\item\em Gets the stopping criterion factory of the solver. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1solver_1_1Multigrid_acfdd9e8b866b05ad94f118c04f89c49a}\label{classgko_1_1solver_1_1Multigrid_acfdd9e8b866b05ad94f118c04f89c49a} 
static auto {\bfseries build} () -\/$>$ decltype(\doxymbox{\hyperlink{classgko_1_1EnableDefaultFactory_a1d077101d9e788e6c65f088612d14cc3}{Factory::\+create}}())
\item 
static \doxymbox{\hyperlink{structgko_1_1solver_1_1Multigrid_1_1parameters__type}{parameters\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1solver_1_1Multigrid_af95b9cf44b04f023808f2f6243588560}{parse}} (const \doxymbox{\hyperlink{classgko_1_1config_1_1pnode}{config::\+pnode}} \&config, const \doxymbox{\hyperlink{classgko_1_1config_1_1registry}{config::\+registry}} \&context, const \doxymbox{\hyperlink{classgko_1_1config_1_1type__descriptor}{config::\+type\+\_\+descriptor}} \&td\+\_\+for\+\_\+child=config::\+make\+\_\+type\+\_\+descriptor$<$$>$())
\begin{DoxyCompactList}\small\item\em Create the parameters from the property\+\_\+tree. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1solver_1_1Multigrid_aa7396906c3466536537e430f08d96968}\label{classgko_1_1solver_1_1Multigrid_aa7396906c3466536537e430f08d96968} 
class {\bfseries Enable\+Lin\+Op$<$ Multigrid $>$}
\item 
\Hypertarget{classgko_1_1solver_1_1Multigrid_a23097148bc6f8304f03c34825db59cc7}\label{classgko_1_1solver_1_1Multigrid_a23097148bc6f8304f03c34825db59cc7} 
class {\bfseries Enable\+Polymorphic\+Object$<$ Multigrid, Lin\+Op $>$}
\item 
\Hypertarget{classgko_1_1solver_1_1Multigrid_a358febcb7c1294f54d48870347482776}\label{classgko_1_1solver_1_1Multigrid_a358febcb7c1294f54d48870347482776} 
class {\bfseries Enable\+Apply\+With\+Initial\+Guess$<$ Multigrid $>$}
\end{DoxyCompactItemize}
\doxysubsubsection*{Additional Inherited Members}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Multigrid $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries result\+\_\+type}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\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. 

The coarse level solves the system on the residual of fine level and fine level will use the coarse solution to correct its own result. \doxylink{classgko_1_1solver_1_1Multigrid}{Multigrid} solves the problem by relatively cheap step in each level and refining the result when prolongating back.

The main step of each level
\begin{DoxyItemize}
\item Presmooth (solve on the fine level)
\item Calculate residual
\item Restrict (reduce the problem dimension)
\item Solve residual in next level
\item Prolongate (return to the fine level size)
\item Postsmooth (correct the answer in fine level)
\end{DoxyItemize}

Ginkgo uses the index from 0 for finest level (original problem size) \texorpdfstring{$\sim$}{\string~} N for the coarsest level (the coarsest solver), and its level counts is N (N multigrid level generation). 

\label{doc-func-members}
\Hypertarget{classgko_1_1solver_1_1Multigrid_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1solver_1_1Multigrid_a708c25e7a2bcffb7ef0d98092d9d49e2}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!apply\_uses\_initial\_guess@{apply\_uses\_initial\_guess}}
\index{apply\_uses\_initial\_guess@{apply\_uses\_initial\_guess}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{apply\_uses\_initial\_guess()}{apply\_uses\_initial\_guess()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_a708c25e7a2bcffb7ef0d98092d9d49e2} 
bool gko::\+solver::\+\+Multigrid::\+apply\+\_\+uses\+\_\+initial\+\_\+guess (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}}



Return true as iterative solvers use the data in x as an initial guess or false if multigrid always set the input as zero. 

\begin{DoxyReturn}{Returns}
bool it is related to parameters variable zero\+\_\+guess 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_1_1solver_a82d21321745fbd3dc65c276d5838bb8aa1f5f6080965ed6d0a90e6b9ec599e441}{gko::\+solver::\+provided}}.

\Hypertarget{classgko_1_1solver_1_1Multigrid_a087f1555d94936b092fa6e8c9fc3f4c4}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!get\_coarsest\_solver@{get\_coarsest\_solver}}
\index{get\_coarsest\_solver@{get\_coarsest\_solver}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{get\_coarsest\_solver()}{get\_coarsest\_solver()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_a087f1555d94936b092fa6e8c9fc3f4c4} 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ gko::\+solver::\+\+Multigrid::\+get\+\_\+coarsest\+\_\+solver (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the operator at the coarsest level. 

\begin{DoxyReturn}{Returns}
the coarsest operator 
\end{DoxyReturn}
\Hypertarget{classgko_1_1solver_1_1Multigrid_a69ed1a6c1ac6c01f0700cdab8a5a1e1c}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!get\_cycle@{get\_cycle}}
\index{get\_cycle@{get\_cycle}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{get\_cycle()}{get\_cycle()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_a69ed1a6c1ac6c01f0700cdab8a5a1e1c} 
\doxymbox{\hyperlink{namespacegko_1_1solver_1_1multigrid_a4f89fc8a003f879d4ff2f482c2fbab68}{multigrid::\+cycle}} gko::\+solver::\+\+Multigrid::\+get\+\_\+cycle (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the cycle of multigrid. 

\begin{DoxyReturn}{Returns}
the \doxylink{namespacegko_1_1solver_1_1multigrid_a4f89fc8a003f879d4ff2f482c2fbab68}{multigrid::\+cycle} 
\end{DoxyReturn}
\Hypertarget{classgko_1_1solver_1_1Multigrid_a329f84de3bf22628d198d18b0c0eeb82}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!get\_mg\_level\_list@{get\_mg\_level\_list}}
\index{get\_mg\_level\_list@{get\_mg\_level\_list}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{get\_mg\_level\_list()}{get\_mg\_level\_list()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_a329f84de3bf22628d198d18b0c0eeb82} 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1multigrid_1_1MultigridLevel}{gko::\+multigrid::\+\+Multigrid\+Level}} $>$ $>$ gko::\+solver::\+\+Multigrid::\+get\+\_\+mg\+\_\+level\+\_\+list (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the list of Multigrid\+Level operators. 

\begin{DoxyReturn}{Returns}
the list of Multigrid\+Level operators 
\end{DoxyReturn}
\Hypertarget{classgko_1_1solver_1_1Multigrid_a4c7ff92d47f52b9a8b053db8b83a43df}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!get\_mid\_smoother\_list@{get\_mid\_smoother\_list}}
\index{get\_mid\_smoother\_list@{get\_mid\_smoother\_list}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{get\_mid\_smoother\_list()}{get\_mid\_smoother\_list()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_a4c7ff92d47f52b9a8b053db8b83a43df} 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ gko::\+solver::\+\+Multigrid::\+get\+\_\+mid\+\_\+smoother\+\_\+list (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the list of mid-\/smoother operators. 

\begin{DoxyReturn}{Returns}
the list of mid-\/smoother operators 
\end{DoxyReturn}
\Hypertarget{classgko_1_1solver_1_1Multigrid_ad0c56b5c7ad6c1093f3d13ba3a6cbe40}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!get\_post\_smoother\_list@{get\_post\_smoother\_list}}
\index{get\_post\_smoother\_list@{get\_post\_smoother\_list}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{get\_post\_smoother\_list()}{get\_post\_smoother\_list()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_ad0c56b5c7ad6c1093f3d13ba3a6cbe40} 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ gko::\+solver::\+\+Multigrid::\+get\+\_\+post\+\_\+smoother\+\_\+list (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the list of post-\/smoother operators. 

\begin{DoxyReturn}{Returns}
the list of post-\/smoother operators 
\end{DoxyReturn}
\Hypertarget{classgko_1_1solver_1_1Multigrid_a86822c874e019217a3bb1c7d356b42ab}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!get\_pre\_smoother\_list@{get\_pre\_smoother\_list}}
\index{get\_pre\_smoother\_list@{get\_pre\_smoother\_list}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{get\_pre\_smoother\_list()}{get\_pre\_smoother\_list()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_a86822c874e019217a3bb1c7d356b42ab} 
std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ gko::\+solver::\+\+Multigrid::\+get\+\_\+pre\+\_\+smoother\+\_\+list (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the list of pre-\/smoother operators. 

\begin{DoxyReturn}{Returns}
the list of pre-\/smoother operators 
\end{DoxyReturn}
\Hypertarget{classgko_1_1solver_1_1Multigrid_af95b9cf44b04f023808f2f6243588560}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!parse@{parse}}
\index{parse@{parse}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{parse()}{parse()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_af95b9cf44b04f023808f2f6243588560} 
\doxymbox{\hyperlink{structgko_1_1solver_1_1Multigrid_1_1parameters__type}{parameters\+\_\+type}} gko::\+solver::\+\+Multigrid::\+parse (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1config_1_1pnode}{config::\+pnode}} \&}]{config}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1config_1_1registry}{config::\+registry}} \&}]{context}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1config_1_1type__descriptor}{config::\+type\+\_\+descriptor}} \&}]{td\+\_\+for\+\_\+child}{ = {\ttfamily config:\+:\+make\+\_\+type\+\_\+descriptor$<$$>$()}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create the parameters from the property\+\_\+tree. 

Because this is directly tied to the specific type, the value/\+index type settings within config are ignored and type\+\_\+descriptor is only used for children configs.


\begin{DoxyParams}{Parameters}
{\em config} & the property tree for setting \\
\hline
{\em context} & the registry \\
\hline
{\em td\+\_\+for\+\_\+child} & the type descriptor for children configs\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
parameters
\end{DoxyReturn}
\begin{DoxyNote}{Note}
\doxylink{classgko_1_1solver_1_1Multigrid}{Multigrid} does not support the selector option in file config 
\end{DoxyNote}
\Hypertarget{classgko_1_1solver_1_1Multigrid_a4a7d27445ab1f3228c827e9ee2c94c19}\index{gko::solver::Multigrid@{gko::solver::Multigrid}!set\_cycle@{set\_cycle}}
\index{set\_cycle@{set\_cycle}!gko::solver::Multigrid@{gko::solver::Multigrid}}
\doxysubsubsection{\texorpdfstring{set\_cycle()}{set\_cycle()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1Multigrid_a4a7d27445ab1f3228c827e9ee2c94c19} 
void gko::\+solver::\+\+Multigrid::\+set\+\_\+cycle (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_1_1solver_1_1multigrid_a4f89fc8a003f879d4ff2f482c2fbab68}{multigrid::\+cycle}}}]{cycle}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the cycle of multigrid. 


\begin{DoxyParams}{Parameters}
{\em \doxylink{namespacegko_1_1solver_1_1multigrid_a4f89fc8a003f879d4ff2f482c2fbab68}{multigrid::\+cycle}} & the new cycle \\
\hline
\end{DoxyParams}


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