% use "latex" to generate a *.dvi file, and use "dvisvgm --no-fonts" to convert to .svg
\documentclass[tikz, border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
  \begin{scope}[every node/.style={draw,thick,text ragged,font=\sffamily\scriptsize},every to/.style={draw,-stealth,very thick,dashed}]
  \node[above right,rounded corners,fill=black!10,text width=2.5cm,inner ysep=2mm] (n1c) at (0,0)
       {The user selects the solver};
  \node[below right,fill=black!5,text width=2.2cm] (n1) at (0.15,0.03)
       {\begin{minipage}{\textwidth}Power/RQI\\Subspace iteration\\Arnoldi\\Lanczos\\
       Krylov-Schur\end{minipage}};
  \node[above right,rounded corners,fill=black!10,text width=2.5cm,inner ysep=2mm] (n2c) at (6,1.4)
       {The user can specify the problem type};
  \node[below right,fill=black!5,text width=2.2cm] (n2) at (6.15,1.43)
       {\begin{minipage}{\textwidth}General\\Hermitian Definite\\Hermitian Indefinite
       \end{minipage}};
  \node[above right,rounded corners,fill=black!10,text width=2.5cm,inner ysep=2mm] (n3c) at (6,-1.0)
       {The user can specify the spectral transform};
  \node[below right,fill=black!5,text width=2.2cm] (n3) at (6.15,-0.97)
       {\begin{minipage}{\textwidth}Shift\\Shift-and-invert\\Cayley
       \end{minipage}};
  \draw[dashed,-latex] (n1c.east) to[out=65,in=120] (n2.west);
  \draw[dashed,-latex] (n2.west) to[out=-125,in=-40] (n1c.east);
  \draw[dashed,-latex] (n1.east) to[out=25,in=120] (n3.west);
  \draw[dashed,-latex] (n3.west) to[out=-115,in=-70] (n1.east);
  \end{scope}
  \begin{scope}[every node/.style={text centered,text width=2cm,font=\sffamily\scriptsize}]
  \node at (4.5,.8) {Appropriate inner product is performed};
  \node at (4.5,-1.4) {Appropriate matrix-vector product is performed};
  \end{scope}
\end{tikzpicture}
\end{document}
