mobility.tex 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512
  1. % vim: set foldmethod=marker foldmarker=<<<,>>>:
  2. \section{Mobility problem} %<<<
  3. \begin{FIframe}{Mobility problem}{} %<<<
  4. \vspace{-1em}
  5. \begin{columns}
  6. \column{0.6\textwidth}
  7. \begin{itemize}
  8. \item $n$ rigid bodies ~~$\Omega = \sum\limits_{i=1}^{n} \Omega_i$
  9. \only<1>{
  10. with velocities ~$\vct{V}(\vct{x}) = \vct{v}_i + \vct{\omega}_i \times (\vct{x}-\vct{x}^c_i)$,
  11. }%
  12. \only<2>{
  13. with velocities ~{\color{red}$\vct{V}(\vct{x}) = \vct{v}_i + \vct{\omega}_i \times (\vct{x}-\vct{x}^c_i)$},
  14. }
  15. \vspace{0.8ex}
  16. and given forces $\vct{F}_i$, ~torques $\vct{T}_i$ abount $\vct{x}^c_i$.
  17. \vspace{1.4em}
  18. \item Stokesian fluid in $\Real^3 \setminus \Omega$
  19. \vspace{0.7ex}
  20. \qquad $\displaystyle \Delta \vct{u} - \nabla p = 0, ~~\nabla \cdot \vct{u} = 0,$ \\
  21. \vspace{0.6ex}
  22. \qquad $\displaystyle \vct{u} \rightarrow 0$ ~as~ $\vct{x} \rightarrow \infty$.
  23. \vspace{1.3em}
  24. \item Boundary conditions on $\partial\Omega$,
  25. \vspace{0.6ex}
  26. \only<1>{\qquad $\displaystyle \vct{u} = \vct{V} + \vct{u}_s$.}
  27. \only<2>{\qquad $\displaystyle \vct{u} = {\color{red}\vct{V}} + \vct{u}_s$.}
  28. \end{itemize}
  29. \vspace{1em}
  30. \qquad\quad
  31. \only<1>{\phantom{\color{red} unknown: $\vct{V}(\vct{u}_i, \vct{\omega}_i)$}}
  32. \only<2>{\color{red} unknown: $\vct{V}(\vct{u}_i, \vct{\omega}_i)$}
  33. \column{0.4\textwidth}
  34. \resizebox{0.98\textwidth}{!}{\begin{tikzpicture}
  35. \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[angle=90,origin=c,width=4cm]{figs/rigid-bodies.png}};
  36. \draw[ultra thick, ->] (2.19,0.95) to (3,1.5);
  37. \node at (3.25, 1.5) {$\vct{F}_1$};
  38. \node (a) at (2.0, 1.3) {};
  39. \node (b) at (2.08, 1.3) {};
  40. \draw[thick, ->] (a) to [out=140,in=60, looseness=3] (b);
  41. \draw[ultra thick, ->] (2.1,1) to (1.85,2.15);
  42. \node at (1.85, 2.3) {$\vct{T}_1$};
  43. %\draw[color=red, ultra thick] (2.7,0.9) circle (1pt);
  44. %\node at (2.5, 0.5) {\color{red} \Large $x$};
  45. %\draw[ultra thick, ->] (4.3,0.45) to (3.1,0.5);
  46. %\node [rotate=-6] at (5.55, 0.25) {log singularity};
  47. %\draw[ultra thick, ->] (10.5,-0.25) to (12.1,-0.2);
  48. %\node [rotate=-4.5] at (9.5, -0.17) {$|s-s_0|^{-\alpha}$};
  49. \end{tikzpicture}}
  50. \end{columns}
  51. \end{FIframe} %>>>
  52. \begin{FIframe}{Mobility problem - double-layer formulation}{} %<<<
  53. Represent fluid velocity: ~~$\displaystyle \vct{u} = \StokesSL[\vct{\nu}(\vct{F}_i, \vct{T}_i)] + \StokesDL[{\color{red}\vct{\sigma}}] $
  54. \vspace{0.3em}
  55. and rigid body velocity: ~~$\displaystyle \vct{V} = -\sum_{i=1}^{6n} \mathfrak{v}_i \mathfrak{v}_i^T {\color{red}\vct{\sigma}}$
  56. \vspace{1.5em}
  57. Applying boundary conditions ~ ($\displaystyle \vct{u} = \vct{V} + \vct{u}_s$ ~on~ $\partial\Omega$),
  58. \vspace{0.3em}
  59. \qquad$\qquad\displaystyle
  60. (I/2 + D) \, {\color{red}\vct{\sigma}} + \sum_{i=1}^{6n} \mathfrak{v}_i \mathfrak{v}_i^T {\color{red}\vct{\sigma}} = \vct{u}_s - S \, \vct{\nu}
  61. $
  62. \vspace{0.5em}{\em(Pozrikidis - Boundary Integral and Singularity Methods for Linearized Viscous Flow)}
  63. \vspace{0.5em}
  64. \only<2->{Second kind integral equation \quad {\color{red} $\cdots$ but doesn't work for slender bodies!}
  65. %, should be well-conditioned.\\
  66. %What can possibly go wrong?
  67. \vspace{1em}
  68. \only<3->{\color{red} $\kappa(I/2 + D) ~\sim~ 1/(\varepsilon^{2} \log \varepsilon^{-1})$}
  69. }
  70. \end{FIframe} %>>>
  71. %\begin{FIframe}{Boundary Integral Formulation}{Dirichlet BVP} %<<<
  72. % \begin{columns}
  73. % \column{0.5\textwidth}
  74. % \quad$\displaystyle \nabla^2 u - \nabla p = 0$ ~~in~~ $\mathbb{R}^3 \setminus \Omega$
  75. % \quad$\displaystyle u |_{\Gamma} = u_0$
  76. % \quad $\displaystyle u(x) \rightarrow 0 ~\text{as}~ |x|\rightarrow \infty$
  77. % \column{0.5\textwidth}
  78. % \includegraphics[width=0.99\textwidth]{figs/biest-conv}
  79. % \end{columns}
  80. % {\bf Integral equation formulation:}
  81. % \begin{columns}
  82. % \column{0.75\textwidth}
  83. % \vspace{1em}
  84. % $u = \frac{\sigma}{2} + \StokesDL[\sigma] \text{~~~~on~~~~} \Gamma$ \hfill $\kappa \sim 324$
  85. % \vspace{1em}
  86. % $u = \StokesSL[\sigma] \text{~~~~on~~~~} \Gamma$ \hfill $\kappa \sim 651$
  87. % \vspace{1em}
  88. % $u = \frac{\sigma}{2} + \StokesDL[\sigma] + \StokesSL[\sigma] \text{~~~~on~~~~} \Gamma$ \hfill $\kappa \sim 9$
  89. % \end{columns}
  90. %\end{FIframe} %>>>
  91. %\begin{FIframe}{Conditioning of layer-potential operators}{} %<<<
  92. % \vspace{1em}
  93. % \begin{columns}
  94. % \column{0.05\textwidth}
  95. % \column{0.35\textwidth}
  96. % %\quad$\displaystyle \nabla^2 u - \nabla p = 0$ ~~in~~ $\mathbb{R}^3 \setminus \Omega$
  97. % %\quad$\displaystyle u |_{\Gamma} = u_0$
  98. % %\quad $\displaystyle u(x) \rightarrow 0 ~\text{as}~ |x|\rightarrow \infty$
  99. % \vspace{1em}
  100. % $\kappa(S)$ \hfill $\sim 2.6e6$
  101. % \vspace{1em}
  102. % $\kappa(I/2 + D)$ \hfill $\sim 4.3e6$
  103. % \vspace{1em}
  104. % $\kappa(I/2 + D + 16 S)$ \hfill $\sim 80$
  105. % \column{0.1\textwidth}
  106. % \column{0.50\textwidth}
  107. % \includegraphics[width=0.99\textwidth]{figs/slender-torus}
  108. % \end{columns}
  109. % \vspace{3em}
  110. % \begin{itemize}
  111. % \item For infinite cylinder (Laplace case): ~~ $\kappa(I/2 + D) ~\sim~ 1/(\varepsilon^{2} \log \varepsilon^{-1})$
  112. % \vspace{0.5em}
  113. % \item Combined field operator well-conditioned: ~~ $I/2 + D + S ~/~ (2\varepsilon \log \varepsilon^{-1})$
  114. % \end{itemize}
  115. %\end{FIframe} %>>>
  116. \begin{FIframe}{Mobility problem - combined field formulation}{} %<<<
  117. \only<1>{
  118. Represent fluid velocity: ~~$\displaystyle \vct{u} = \StokesSL[\vct{\nu}(\vct{F}_i, \vct{T}_i)] + \StokesCF[{\color{red}\vct{\sigma}} ] $
  119. }
  120. \only<2->{
  121. \vspace{-0.7em}
  122. Represent fluid velocity: ~~$\displaystyle \vct{u} = \StokesSL[\vct{\nu}(\vct{F}_i, \vct{T}_i)] + \StokesCF[{\color{red}\vct{\sigma}} - \sum_{i=1}^{6n} \mathfrak{v}_i \mathfrak{v}_i^T {\color{red}\vct{\sigma}} ] $
  123. }
  124. \only<1>{\vspace{0.5em}}%
  125. \only<2->{\vspace{-0.65em}}%
  126. and rigid body velocity: ~~$\displaystyle \vct{V} = -\sum_{i=1}^{6n} \mathfrak{v}_i \mathfrak{v}_i^T {\color{red}\vct{\sigma}}$
  127. \vspace{0.3em}
  128. where, ~$\displaystyle \StokesCF = \StokesDL + \StokesSL / (2 \varepsilon \log \varepsilon^{-1}) $.
  129. \only<3>{
  130. \vspace{2.5em}
  131. Applying boundary conditions,
  132. \vspace{0.3em}
  133. \qquad$\qquad\displaystyle
  134. (\convop{I}/2 + \StokesCF)[{\color{red}\vct{\sigma}} - \sum_{i=1}^{6n} \mathfrak{v}_i \mathfrak{v}_i^T {\color{red}\vct{\sigma}} ] + \sum_{i=1}^{6n} \mathfrak{v}_i \mathfrak{v}_i^T {\color{red}\vct{\sigma}} = \vct{u}_s - \StokesSL[\vct{\nu}]
  135. $
  136. \vspace{1em}
  137. Second kind integral equation and well-conditioned!
  138. }
  139. \end{FIframe} %>>>
  140. \begin{FIframe}{Numerical Results - Sedimentation Flow}{} %<<<
  141. \vspace{-1.5em}
  142. \begin{columns}[t]
  143. \column{0.7\textwidth}
  144. \vspace{1ex}
  145. {\bf Time-stepping:} 5-th order adaptive SDC
  146. \vspace{1ex}
  147. {\bf 8-digits accuracy} in quadratures, GMRES solve, \\
  148. and time-stepping.
  149. \vspace{1ex}
  150. {\bf 40 CPU cores}
  151. \only<2>{
  152. \embedvideo{\includegraphics[width=0.99\textwidth]{videos/sed2-top-zoom1}}{videos/sed2-top-zoom1.avi}
  153. }
  154. \column{0.4\textwidth}
  155. \vspace{-0.5em}
  156. \only<1>{
  157. \embedvideo{\includegraphics[width=0.99\textwidth]{videos/sed2-side-color}}{videos/sed2-side-color.mov}
  158. }
  159. \only<2>{
  160. \includegraphics[width=0.99\textwidth]{videos/sed2-side-color}
  161. }
  162. \end{columns}
  163. %\embedvideo{\includegraphics[width=0.25\textwidth]{videos/mesh}}{videos/mesh.avi}
  164. % 5-th order SDC time-stepping
  165. % 7 - digits accuracy
  166. % adaptively refined mesh
  167. % block diagonal preconditioner - plot of GMRES iterations
  168. \end{FIframe} %>>>
  169. %\begin{FIframe}{Numerical Results - Sedimentation Flow}{} %<<<
  170. % \vspace{-2.0em}
  171. % \begin{center}
  172. % \resizebox{0.85\textwidth}{!}{\begin{tikzpicture}
  173. % \pgfplotsset{
  174. % xmin=0, xmax=250,
  175. % width=12cm, height=7cm,
  176. % xlabel={$T$}, xtick distance=50,
  177. % }
  178. % \begin{axis}[ymin=0, ymax=110, ylabel={$N_{iter}$}, legend style={draw=none,at={(0,1)},anchor=north west}]
  179. % \addplot [thick,color=blue] table [x={t},y={noprecond}] {data/sed2}; \addlegendentry{no-preconditioner};
  180. % \addplot [thick,color=red] table [x={t},y={precond}] {data/sed2}; \addlegendentry{block-preconditioner};
  181. % %\addplot [thick,color=green] table [x={t},y={KSPprecond}] {data/sed2}; \addlegendentry{Krylov-preconditioner};
  182. % \end{axis}
  183. % \begin{axis}[axis y line*=right, ymin=0, ymax=65000, ylabel={$N$}, legend style={draw=none,at={(0.97,0.97)},anchor=north east}]
  184. % \addplot [thick,dashed,color=black] table [x={t},y={N}] {data/sed2}; \addlegendentry{$N$};
  185. % \end{axis}
  186. % \end{tikzpicture}}
  187. % \end{center}
  188. % \vspace{-1em}
  189. % {\bf Close-to-touching:} ~~smaller time-steps, ~~more unknowns ($N$), \\
  190. % high GMRES iteration count (one-body preconditioner doesn't help). \\
  191. % {\color{red} $\sim 125 \times$ more expensive!}
  192. %\end{FIframe} %>>>
  193. %\begin{FIframe}{Accelerating GMRES Solves}{} %<<<
  194. % \vspace{0.5em}
  195. % \resizebox{.9\textwidth}{!}{\begin{tikzpicture}%<<<
  196. % % draw horizontal line
  197. % \draw[ultra thick, ->] (0,0) -- (14,0);
  198. % % draw vertical lines
  199. % \foreach \x in {2,4,6,8,10,12}
  200. % \draw[ultra thick] (\x cm,3pt) -- (\x cm,-3pt);
  201. % % draw node
  202. % \draw[ultra thick] ( 4,0) node[below=3pt] {$t_{n-2}$};
  203. % \draw[ultra thick] ( 6,0) node[below=3pt] {$t_{n-1}$};
  204. % \draw[ultra thick] ( 8,0) node[below=3pt] {$t_{n}$};
  205. % \draw[ultra thick] (10,0) node[below=3pt] {$t_{n+1}$};
  206. % \end{tikzpicture}}%>>>
  207. % \vspace{0.5em}
  208. % \begin{itemize}
  209. % \setlength\itemsep{0.5em}
  210. % \item Forward Euler: ~$n\text{-}{th}$~ time step
  211. % \begin{itemize}
  212. % \item solve BIE using GMRES:~~ $A_{y_n} \sigma_{\!n} = b_{y_n}$
  213. % \item advance to $t_{n+1}$:~~~ $y_{n+1} = y_{n} + h\, v(\sigma_{\!n})$
  214. % \end{itemize}
  215. % \only<2->{\item Use ~$\sigma_{\!n-1}$~ as initial guess to GMRES}
  216. % \only<3->{: {\color{red} doesn't work well}}
  217. % \end{itemize}
  218. % \only<4->{
  219. % \vspace{0.5em}
  220. % \begin{itemize}
  221. % \item Re-use Krylov subspace from previous time step?
  222. % \only<5->{
  223. % \begin{itemize}
  224. % \item Krylov subspace: ~~$X \leftarrow [b, ~A b, ~\cdots, ~A^{k\shortminus\!1} b]$
  225. % \item Compute QR decomposition: ~ $QR \leftarrow AX$
  226. % \item Preconditioner: ~ $P \coloneq I - Q Q^{T} + X R^{-1} Q^{T}$
  227. % \vspace{0.5em}
  228. % \item[] \qquad $P \, Ax = x$ \quad for all~~ $x \in span(X)$
  229. % \item[] \qquad ~\, $P \, y = y$ \quad for all~~ $y \perp span(X)$
  230. % \end{itemize}
  231. % }
  232. % \end{itemize}}
  233. %\end{FIframe} %>>>
  234. %\begin{FIframe}{Krylov Preconditioning with SDC}{} %<<<
  235. % \vspace{-1em}
  236. % \resizebox{.9\textwidth}{!}{\begin{tikzpicture}%<<<
  237. % % draw horizontal line
  238. % \draw[ultra thick, ->] (0,0) -- (14,0);
  239. % % draw vertical lines
  240. % \foreach \x in {1.7, 12.3}
  241. % \draw[ultra thick] (\x cm,6pt) -- (\x cm,-6pt);
  242. % \draw[ultra thick] (1.7000 ,0) node[above=5pt] {$a$};
  243. % \draw[ultra thick] (12.3000,0) node[above=5pt] {$b$};
  244. % \foreach \x in {1.9000, 2.6699, 4.5000, 7.0000, 9.5000, 11.3301, 12.1000}
  245. % \draw[ultra thick, blue] (\x cm,3pt) -- (\x cm,-3pt);
  246. % % draw node
  247. % \draw[ultra thick, blue] (1.9000 ,0) node[below=3pt] {$t_1$};
  248. % \draw[ultra thick, blue] (2.6699 ,0) node[below=3pt] {$t_2$};
  249. % \draw[ultra thick, blue] (4.5000 ,0) node[below=3pt] {$t_3$};
  250. % %\draw[ultra thick, blue] (7.0000 ,0) node[below=3pt] {$t_4$};
  251. % %\draw[ultra thick, blue] (9.5000 ,0) node[below=3pt] {$t_5$};
  252. % \draw[ultra thick, blue] (8.5,0) node[below=3pt] {$\cdots$};
  253. % %\draw[ultra thick, blue] (11.3301,0) node[below=3pt] {$t_6$};
  254. % \draw[ultra thick, blue] (12.1000,0) node[below=3pt] {$t_m$};
  255. % \only<2->{%<<<
  256. % \draw[ultra thick, DarkGreen] (1.9000 ,-1) node {$P_1$};
  257. % \draw[ultra thick, DarkGreen] (2.6699 ,-1) node {$P_2$};
  258. % \draw[ultra thick, DarkGreen] (4.5000 ,-1) node {$P_3$};
  259. % \draw[ultra thick, DarkGreen] (8.5000 ,-1) node {$\cdots$};
  260. % \draw[ultra thick, DarkGreen] (12.1000,-1) node {$P_m$};
  261. % \draw[ultra thick, DarkGreen, ->] (2.10 ,-1) -- (2.40 ,-1);
  262. % \draw[ultra thick, DarkGreen, ->] (3.00 ,-1) -- (3.50 ,-1);
  263. % \draw[ultra thick, DarkGreen, ->] (4.86 ,-1) -- (5.40 ,-1);
  264. % }%>>>
  265. % \only<3->{%<<<
  266. % \draw[ultra thick, DarkGreen, ->] (1.9000 ,-1.25) -- (1.9000 ,-1.8);
  267. % \draw[ultra thick, DarkGreen, ->] (2.6699 ,-1.25) -- (2.6699 ,-1.8);
  268. % \draw[ultra thick, DarkGreen, ->] (4.5000 ,-1.25) -- (4.5000 ,-1.8);
  269. % \draw[ultra thick, DarkGreen, ->] (12.100 ,-1.25) -- (12.100 ,-1.8);
  270. % \draw[ultra thick, DarkGreen] (1.9000 ,-2.1) node {~~\,$P^{(1)}_1$};
  271. % \draw[ultra thick, DarkGreen] (2.6699 ,-2.1) node {~~\,$P^{(1)}_2$};
  272. % \draw[ultra thick, DarkGreen] (4.5000 ,-2.1) node {~~\,$P^{(1)}_3$};
  273. % \draw[ultra thick, DarkGreen] (8.5000 ,-2.1) node {$\cdots$};
  274. % \draw[ultra thick, DarkGreen] (12.100 ,-2.1) node {~~\,$P^{(1)}_m$};
  275. % \draw[ultra thick, black, ->] (0.75 ,-0.5) -- (0.75 ,-3.5);
  276. % \draw[ultra thick, black] (0.5,-2) node[rotate=-90] {corrections};
  277. % }%>>>
  278. % \only<4->{%<<<
  279. % \draw[ultra thick, DarkGreen, ->] (1.9000 ,-2.5) -- (1.9000 ,-3.0);
  280. % \draw[ultra thick, DarkGreen, ->] (2.6699 ,-2.5) -- (2.6699 ,-3.0);
  281. % \draw[ultra thick, DarkGreen, ->] (4.5000 ,-2.5) -- (4.5000 ,-3.0);
  282. % \draw[ultra thick, DarkGreen, ->] (12.100 ,-2.5) -- (12.100 ,-3.0);
  283. % \draw[ultra thick, DarkGreen] (1.9000 ,-3.3) node {~~\,$P^{(2)}_1$};
  284. % \draw[ultra thick, DarkGreen] (2.6699 ,-3.3) node {~~\,$P^{(2)}_2$};
  285. % \draw[ultra thick, DarkGreen] (4.5000 ,-3.3) node {~~\,$P^{(2)}_3$};
  286. % \draw[ultra thick, DarkGreen] (8.5000 ,-3.3) node {$\cdots$};
  287. % \draw[ultra thick, DarkGreen] (12.100 ,-3.3) node {~~\,$P^{(2)}_m$};
  288. % %\draw[ultra thick, DarkGreen, ->] (1.9000 ,-3.7) -- (1.9000 ,-4.2);
  289. % %\draw[ultra thick, DarkGreen, ->] (2.6699 ,-3.7) -- (2.6699 ,-4.2);
  290. % %\draw[ultra thick, DarkGreen, ->] (4.5000 ,-3.7) -- (4.5000 ,-4.2);
  291. % %\draw[ultra thick, DarkGreen, ->] (12.100 ,-3.7) -- (12.100 ,-4.2);
  292. % }%>>>
  293. % \end{tikzpicture}}%>>>
  294. % \only<5->{
  295. % \vspace{1.4em}
  296. % \begin{columns}
  297. % \column{0.05\textwidth}
  298. % \column{0.45\textwidth}
  299. % GMRES iter without preconditioner:
  300. % \vspace{0.5em}
  301. % \begin{tabular}{r | r r r r r}
  302. % \parbox[t]{2mm}{\multirow{5}{*}{\rotatebox[origin=c]{-90}{correction $\rightarrow$}}}
  303. % & \multicolumn{5}{c}{sub-step $\rightarrow$} \\
  304. % \hline
  305. % & 66 & 66 & 66 & 66 & 66 \\
  306. % & 66 & 66 & 66 & 66 & 66 \\
  307. % & 66 & 66 & 66 & 66 & 66 \\
  308. % & 66 & 66 & 66 & 66 & 66 \\
  309. % \end{tabular}
  310. % \column{0.05\textwidth}
  311. % \column{0.44\textwidth}
  312. % \only<6->{
  313. % GMRES iter with preconditioner:
  314. % \vspace{0.5em}
  315. % \begin{tabular}{r | r r r r r}
  316. % \parbox[t]{2mm}{\multirow{5}{*}{\rotatebox[origin=c]{-90}{correction $\rightarrow$}}}
  317. % & \multicolumn{5}{c}{sub-step $\rightarrow$} \\
  318. % \hline
  319. % & 66 & 30 & 22 & 45 & 30 \\
  320. % & 35 & 17 & 33 & 28 & 24 \\
  321. % & 8 & 4 & 14 & 5 & 12 \\
  322. % & 1 & 1 & 2 & 2 & 4 \\
  323. % \end{tabular}}
  324. % \end{columns}
  325. % }
  326. %\end{FIframe} %>>>
  327. \begin{FIframe}{Numerical Results - Sedimentation Flow}{} %<<<
  328. \vspace{-2.0em}
  329. \begin{center}
  330. \resizebox{0.95\textwidth}{!}{\begin{tikzpicture}
  331. \pgfplotsset{
  332. xmin=0, xmax=250,
  333. width=12cm, height=7cm,
  334. xlabel={$T$}, xtick distance=50,
  335. }
  336. \begin{axis}[ymin=0, ymax=110, ylabel={$N_{iter}$}, legend style={draw=none,at={(0,1)},anchor=north west}]
  337. \addplot [thick,color=blue] table [x={t},y={noprecond}] {data/sed2}; \addlegendentry{no-preconditioner};
  338. \addplot [thick,color=red] table [x={t},y={precond}] {data/sed2}; \addlegendentry{block-preconditioner};
  339. \addplot [thick,color=DarkGreen] table [x={t},y={KSPprecond}] {data/sed2}; \addlegendentry{Krylov-preconditioner};
  340. \end{axis}
  341. \begin{axis}[axis y line*=right, ymin=0, ymax=65000, ylabel={$N$}, legend style={draw=none,at={(0.97,0.97)},anchor=north east}]
  342. \addplot [thick,dashed,color=black] table [x={t},y={N}] {data/sed2}; \addlegendentry{$N$};
  343. \end{axis}
  344. \end{tikzpicture}}
  345. \end{center}
  346. %\vspace{-1em}
  347. %{\bf Close-to-touching:} ~~smaller time-steps, ~~more unknowns ($N$), \\
  348. %high GMRES iteration count (block preconditioner doesn't help). \\
  349. %{\color{red} $\sim 125 \times$ more expensive!}
  350. \end{FIframe} %>>>
  351. %>>>
  352. %<<< Sedimentation flow
  353. \begin{FIframe}{Numerical Results - Sedimentation Flow}{} %<<<
  354. \begin{columns}
  355. \column{0.35\textwidth}
  356. \vspace{1ex}
  357. {\bf 5-th order adaptive SDC}
  358. \vspace{1ex}
  359. {\bf 8-digits accuracy} in quadratures, GMRES solve, \\
  360. and time-stepping.
  361. \vspace{1ex}
  362. {\bf 0.5 million unknowns} \\
  363. 64 rings.
  364. \vspace{1ex}
  365. {\bf 160 CPU cores}
  366. \column{0.65\textwidth}
  367. \embedvideo{\includegraphics[width=0.99\textwidth]{videos/sed64}}{videos/sed64.mov}
  368. \end{columns}
  369. \end{FIframe} %>>>
  370. %\begin{FIframe}{Numerical Results - Sedimentation Flow}{} %<<<
  371. % \vspace{-1.9em}
  372. % \centering
  373. % \only<1>{ \embedvideo{\includegraphics[width=0.94\textwidth]{videos/bacteria2_.png}}{videos/bacteria2_.mov} }%
  374. % \only<2>{ \embedvideo{\includegraphics[width=0.47\textwidth]{videos/bacteria64-density.png}}{videos/bacteria64-density.mov} }
  375. %\end{FIframe} %>>>
  376. %>>>