algo.tex 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008
  1. % vim: set foldmethod=marker foldmarker=<<<,>>>:
  2. \section{Algorithms} %<<<
  3. \begin{FIframe}{Discretization}{} %<<<
  4. \vspace{-2.0em}
  5. \begin{columns}[t]
  6. \column{0.52\textwidth}
  7. {\bf Geometry description:}
  8. \begin{itemize}
  9. \item parameterization $s$ along fiber length
  10. \item coordinates $x_c(s)$ of centerline curve
  11. \item circular cross-section with radius $\varepsilon(s)$ %at each point along the centerline
  12. \item orientation vector $e_{1}(s)$
  13. \end{itemize}
  14. \vspace{1em}
  15. \only<2>{
  16. {\bf Discretization:}
  17. \begin{itemize}
  18. \item piecewise Chebyshev (order $q$) discretization in $s$ for $x_c(s)$, $\varepsilon(s)$, $e_{1}(s)$ %(either given or selected arbitrarily)
  19. \item Collocation nodes: tensor product of Chebyshev and Fourier discretization in angle with order $N_{\theta}$.
  20. \end{itemize}
  21. }
  22. \column{0.6\textwidth}
  23. \centering
  24. \only<1>{\includegraphics[width=0.99\textwidth]{figs/slender-body4}}
  25. \only<2>{
  26. \begin{tikzpicture}
  27. \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[height=0.99\textheight]{figs/slenderbody-discretization.png}};
  28. \node at (1.2, 6.3) {\Large $N_{\theta}$};
  29. \node (a) at (.7, 6) {};
  30. \node (b) at (-.0, 6) {};
  31. \node at (-1.0, 5.5) {\Large $q$};
  32. \node (d) at (.6, 8.8) {};
  33. \node (c) at (.1, 2.3) {};
  34. \draw[ultra thick, ->] (a) to [out=60,in=120, looseness=2] (b);
  35. \draw[ultra thick, ->] (c) to [out=110,in=230, looseness=1] (d);
  36. \end{tikzpicture}
  37. }
  38. \end{columns}
  39. \end{FIframe} %>>>
  40. \begin{FIframe}{Boundary Quadratures}{} %<<<
  41. \only<1>{%<<<
  42. $\displaystyle u(x) ~= \int_{\Gamma} \mathcal{K}(x-y)~\sigma(y)~da(y)$
  43. }%>>>
  44. \only<2->{%<<<
  45. \vspace{-0.57em}
  46. $\displaystyle u(x) ~= \int_{\Gamma} \mathcal{K}(x-y)~\sigma(y)~da(y) ~= \sum_{k=1}^{N_{panel}} \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y)$
  47. }%>>>
  48. \only<3->{%<<<
  49. $\displaystyle \phantom{u(x)} ~= \underbrace{\sum_{x \notin \mathcal{N}(\Gamma_k)} \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y)}_{\text{far-field}}~
  50. + \underbrace{\sum_{x \in \mathcal{N}(\Gamma_k)} \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y)}_{\text{near interactions}}$
  51. }%>>>
  52. \vspace{2em}
  53. \only<4>{%<<<
  54. \begin{columns}[t]
  55. \column{0.5\textwidth}
  56. {\bf Far-field}
  57. \begin{itemize}
  58. \item Tensor product quad:\\
  59. Gauss-Legendre $\times$ PTR
  60. \item Accelerate with PVFMM \\
  61. $\mathcal{O}(N^2) \rightarrow \mathcal{O}(N)$
  62. \end{itemize}
  63. \column{0.5\textwidth}
  64. {\bf Near interactions}
  65. \begin{itemize}
  66. \item Build special quadrature rules! \\
  67. %Generalized Chebyshev or \\
  68. %Generalized Gaussian
  69. \end{itemize}
  70. \end{columns}
  71. }%>>>
  72. %\only<2>{ %<<<
  73. % \vspace{2.5em}
  74. % {\bf Far field approximation:} %for $x \notin \mathcal{N}(\Gamma_k)$
  75. % %\vspace{0.5em}
  76. % %$\displaystyle \qquad \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y) ~\approx~
  77. % % \sum_{i,j} \frac{2 \pi w_i}{N_{\theta}} \mathcal{K}(x-y(s_i,\theta_j))~\sigma(s_i,\theta_j)~J(s_i,\theta_j) $
  78. % \vspace{-0.5em}
  79. % \begin{columns}
  80. % \column{0.5\textwidth}
  81. % \begin{itemize}
  82. % \item Gauss-Legendre quadrature in $s$.
  83. % \item periodic trapezoidal rule in $\theta$.
  84. % \item determine $\mathcal{N}(\Gamma_k)$ using standard \\
  85. % error estimates.
  86. % \end{itemize}
  87. % \column{0.6\textwidth}
  88. % \resizebox{.99\textwidth}{!}{\begin{tikzpicture}
  89. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=10cm]{figs/bernstein1.png}};
  90. % \node at (4.7, 3.1) {$\mathcal{N}(\Gamma_i)$};
  91. % \node at (6.0, 2.45) {\textcolor{red}{$\Gamma_i$}};
  92. % \draw [fill=orange, fill opacity=0.35] (2.20,1.70) circle (0.7cm);
  93. % \draw [fill=orange, fill opacity=0.35] (2.73,1.97) circle (0.8cm);
  94. % \draw [fill=orange, fill opacity=0.35] (3.45,2.17) circle (1.0cm);
  95. % \end{tikzpicture}}%
  96. % \end{columns}
  97. %} %>>>
  98. %\only<3>{ %<<<
  99. % % Ellipse:
  100. % %> theta=0:0.01:2*pi;
  101. % %> x=10*sin(theta);
  102. % %> y=4*cos(theta);
  103. % %> y1=y+((x).^2)*0.03;
  104. % %> hold off; imshow(I); hold on; plot(x*25+554,-y1*20+380, '.k')
  105. % \centering
  106. % \vspace{1em}
  107. % \begin{tikzpicture}
  108. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.7\textwidth]{figs/bernstein1.png}};
  109. % \node at (4.7, 3.1) {$\mathcal{N}(\Gamma_i)$};
  110. % \node at (6.0, 2.45) {\textcolor{red}{$\Gamma_i$}};
  111. % \draw [fill=orange, fill opacity=0.35] (2.20,1.70) circle (0.7cm);
  112. % \draw [fill=orange, fill opacity=0.35] (2.73,1.97) circle (0.8cm);
  113. % \draw [fill=orange, fill opacity=0.35] (3.45,2.17) circle (1.0cm);
  114. % \end{tikzpicture}~~%
  115. % \begin{tikzpicture}
  116. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.31\textwidth, height=0.31\textwidth]{figs/morton.png}};
  117. % \draw [fill=cyan, fill opacity=0.25] (1.655,3.80) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  118. % \draw [fill=cyan, fill opacity=0.25] (1.655,2.73) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  119. % \draw [fill=cyan, fill opacity=0.25] (1.655,1.65) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  120. % \draw [fill=cyan, fill opacity=0.25] (2.730,3.80) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  121. % \draw [fill=cyan, fill opacity=0.25] (2.730,2.73) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  122. % \draw [fill=cyan, fill opacity=0.25] (2.730,1.65) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  123. % \draw [fill=cyan, fill opacity=0.25] (3.805,3.80) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  124. % \draw [fill=cyan, fill opacity=0.25] (3.805,2.73) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  125. % \draw [fill=cyan, fill opacity=0.25] (3.805,1.65) +(-14.5pt,-14.5pt) rectangle +(14.5pt,14.5pt) ;
  126. % \draw [fill=red, fill opacity=0.99] (2.5,2.5) circle (0.09cm);
  127. % \draw [fill=orange, fill opacity=0.5] (2.5,2.5) circle (1.1cm);
  128. % \end{tikzpicture}
  129. %} %>>>
  130. % singular, near and far field evaluation
  131. % finding near-neighbors, Morton ordering, Bernstein ellipse
  132. \end{FIframe} %>>>
  133. \begin{FIframe}{Generating Special Quadrature Rules}{} %<<<
  134. \resizebox{.99\textwidth}{!}{\begin{tikzpicture}[thick]
  135. \tikzstyle{wave} = [thick, blue, domain=0:2, samples=200]
  136. \tikzstyle{box} = [draw, fill=blue!10, rounded corners, minimum width=2.0cm, minimum height=0.9cm, align=center, blur shadow={shadow blur steps=5}]
  137. \tikzstyle{arrow} = [thick,->,>=stealth, draw=black]
  138. \tikzstyle{input} = [align=center]
  139. \draw[wave] plot (\x+0.5,{0.5+0.2*sin(\x*5 r)});
  140. \draw[wave] plot (\x+0.6,{0.0+0.2*sin(\x*9 r)});
  141. \draw[wave] plot (\x+0.7,{-0.5+0.2*sin(\x*15 r)});
  142. \node[input] at (1.6, -1) {Integrands};
  143. \node[box] (magic) at (5, 0) {Magic};
  144. \draw[arrow] (2.9,0) -- (magic);
  145. \draw[arrow] (magic) -- (7.1,0);
  146. \draw[thick] (7.5,0) -- (9.5,0);
  147. \node[circle,fill=blue,inner sep=1.2pt] at (7.5,0) {};
  148. \node[circle,fill=blue,inner sep=1.2pt] at (7.7,0) {};
  149. \node[circle,fill=blue,inner sep=1.2pt] at (8.1,0) {};
  150. \node[circle,fill=blue,inner sep=1.2pt] at (8.9,0) {};
  151. \node[circle,fill=blue,inner sep=1.2pt] at (9.3,0) {};
  152. \node[circle,fill=blue,inner sep=1.2pt] at (9.5,0) {};
  153. \node at (9.2,0.25) {\small $x_i$, $w_i$};
  154. \node[input] at (8.5, -0.8) {Quadrature \\ nodes \& weights};
  155. \node at (12.8,0.4) {Generalized Gaussian Quad.};
  156. \node at (12.5,-0.1) {Bremer, Gimbutas and};
  157. \node at (12.3,-0.6) {Rokhlin - SISC 2010};
  158. \end{tikzpicture}}
  159. \vspace{1em}
  160. \only<2>{
  161. \centering
  162. $\displaystyle \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y) ~=~ \int_{s} \int_{\theta} \mathcal{K}(x-y(s,\theta))~\sigma(s,\theta)~J(s,\theta)~d\theta~ds$
  163. \resizebox{.7\textwidth}{!}{\begin{tikzpicture}
  164. \begin{scope} [rotate=-90]
  165. \node[anchor=south west,inner sep=0] at (3.7,0) {\includegraphics[angle=-90,width=9.25cm]{figs/slenderbody-discretization.png}};
  166. \node (a) at (.7, 6) {};
  167. \node (b) at (-.0, 6) {};
  168. \node (d) at (.6, 8.8) {};
  169. \node (c) at (.1, 2.3) {};
  170. \draw[ultra thick, ->] (a) to [out=60,in=120, looseness=2] (b);
  171. \draw[ultra thick, ->] (c) to [out=110,in=230, looseness=1] (d);
  172. \node at (1.2, 6.3) {\Large $\theta$};
  173. \node at (-1.0, 5.5) {\Large $s$};
  174. \end{scope}
  175. \end{tikzpicture}}
  176. }
  177. \only<3-4>{%<<<
  178. \centering
  179. $\displaystyle \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y) ~=~ \int_{s} {\color{red} \int_{\theta}}\, \mathcal{K}(x-y(s,\theta))~\sigma(s,\theta)~J(s,\theta)~{\color{red} d\theta}~ds$
  180. %\begin{columns}
  181. % \column{0.7\textwidth}
  182. \begin{center} %<<<
  183. \resizebox{.7\textwidth}{!}{\begin{tikzpicture}
  184. \path [draw=none,fill=white!0,even odd rule] (4,0) circle (1.5) (4,0) circle (0.75);
  185. \only<4->{\path [draw=none,fill=blue!30,even odd rule] (4,0) circle (1.5) (4,0) circle (0.75);}
  186. %\only<3->{\path [draw=none,fill=brown!80,even odd rule] (4,0) circle (0.75) (4,0) circle (0.375);}
  187. %\only<3->{\path [draw=none,fill=green!80,even odd rule] (4,0) circle (0.375) (4,0) circle (0.1875);}
  188. \draw[color=red, ultra thick] (0,0) ellipse (4cm and 1cm);
  189. \only<4->{
  190. \draw[fill=black, thick] (-4,0) circle (1pt);
  191. \draw[fill=black, thick] ( 4,0) circle (1pt);
  192. \draw[fill=black, thick] (0,-1) circle (1pt);
  193. \draw[fill=black, thick] (0, 1) circle (1pt);
  194. \draw[fill=black, thick] (-2.828,-0.7071) circle (1pt);
  195. \draw[fill=black, thick] (-2.828, 0.7071) circle (1pt);
  196. \draw[fill=black, thick] ( 2.571,-0.7660) circle (1pt);
  197. \draw[fill=black, thick] ( 2.571, 0.7660) circle (1pt);
  198. \draw[fill=black, thick] (3.464,-.5) circle (1pt);
  199. \draw[fill=black, thick] (3.464, .5) circle (1pt);
  200. \draw[fill=black, thick] (3.759,-.3420) circle (1pt);
  201. \draw[fill=black, thick] (3.759, .3420) circle (1pt);
  202. \draw[fill=black, thick] (3.939,-.1736) circle (1pt);
  203. \draw[fill=black, thick] (3.939, .1736) circle (1pt);
  204. \draw[fill=black, thick] (3.985,-.0872) circle (1pt);
  205. \draw[fill=black, thick] (3.985, .0872) circle (1pt);
  206. }
  207. \only<4->{\draw[fill=blue!30,draw=none] (180:0.75)+(4,0) arc (180:0:0.75) -- (0:1.5)+(4,0) arc (0:180:1.5) -- cycle;}
  208. %\only<3->{\draw[fill=brown!80,draw=none] (180:0.375)+(4,0) arc (180:0:0.375) -- (0:0.75)+(4,0) arc (0:180:0.75) -- cycle;}
  209. %\only<3->{\draw[fill=green!80,draw=none] (180:0.1875)+(4,0) arc (180:0:0.1875) -- (0:0.375)+(4,0) arc (0:180:0.375) -- cycle;}
  210. \draw[color=blue, ultra thick] (4.7,-0.8) circle (1pt);
  211. \node at (5, -0.8) {\color{blue} \Large $x$};
  212. %\node at (5, -0.8) {\color{blue} \Large $x_i$};
  213. \node at (-4.6, 0) {\color{red} \Large $y(\theta)$};
  214. \node at (0, -0.5) {\Large $\theta$};
  215. \node (c) at (-1, -0.75) {};
  216. \node (d) at ( 1, -0.75) {};
  217. \draw[ultra thick, ->] (c) to [out=-5,in=185, looseness=1] (d);
  218. \end{tikzpicture}}
  219. \end{center} %>>>
  220. % \column{0.3\textwidth}
  221. % $\displaystyle \int_{\theta} \mathcal{K}(x-y(\theta))~\sigma(\theta)~d\theta$
  222. %\end{columns}
  223. \vspace{-0.5em}
  224. \only<4->{\small
  225. \!\!\!\!\!$\sim 48$ quadrature nodes for $n_0 = 8$ ~and~ 10-digits accuracy. \\
  226. \!\!\!\!\!$\sim 26M$ modal Green's function evaluations/sec/core (Skylake 2.4GHz)
  227. }
  228. }%>>>
  229. \only<5->{%<<<
  230. \centering
  231. $\displaystyle \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y) ~=~ {\color{red} \int_{s}} \int_{\theta} \mathcal{K}(x-y(s,\theta))~\sigma(s,\theta)~J(s,\theta)~d\theta~{\color{red} ds}$
  232. \vspace{1em}
  233. \only<5>{\begin{tikzpicture}%<<<
  234. \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/s-quad/adap-quad.png}};
  235. \draw[color=red, ultra thick] (2.7,0.9) circle (1pt);
  236. \node at (2.5, 0.5) {\color{red} \Large $x$};
  237. \draw[ultra thick, ->] (3.2,-0.0) to (2.8,0.65);
  238. \node [rotate=0] at (3.5, -0.25) {special quadrature};
  239. \node [rotate=0] at (3.5, -0.70) {for $p(s) \log(s) + q(s)$};
  240. \draw[ultra thick, ->] (7.1,0.1) to (5.5,0.3);
  241. \node [rotate=-4.5] at (9.5, -0.17) {dyadic ref. GL panel quad};
  242. \end{tikzpicture}}%>>>
  243. \only<6->{%<<<
  244. \begin{tikzpicture}%<<<
  245. \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/s-quad/special-quad.png}};
  246. \draw[color=red, ultra thick] (2.49,0.89) circle (1pt);
  247. \node at (2.4, 0.45) {\color{red} \Large $x$};
  248. \end{tikzpicture}%>>>
  249. \vspace{1em}
  250. \begin{itemize}
  251. \item[] {\em Instead build special quadrature rules!}
  252. \item replace composite panel quadratures with a single quadrature.
  253. %\item integrand doesn't have closed form expression, but we can still generate quadrature rules!
  254. \item Separate rules for different aspect ratios ($1$ -- $10^4$ in powers of 2)
  255. \end{itemize}
  256. }%>>>
  257. }%>>>
  258. \end{FIframe}%>>>
  259. %\begin{FIframe}{Boundary Quadratures}{} %<<<
  260. % \vspace{-1em}
  261. % {\bf Near interactions:} for $x \in \mathcal{N}(\Gamma_k)$
  262. % \vspace{0.3em}
  263. % $\displaystyle \int_{\Gamma_k} \mathcal{K}(x-y)~\sigma(y)~da(y) ~=~ \int_{s} \int_{\theta} \mathcal{K}(x-y(s,\theta))~\sigma(s,\theta)~J(s,\theta)~d\theta~ds$
  264. % \vspace{1.5em}
  265. % \begin{columns}
  266. % \column{0.5\textwidth}
  267. % {\bf Inner integral in $\theta$:}
  268. % \begin{itemize}
  269. % \item potential from a ring source \\
  270. % nearly singular as $x \longrightarrow \Gamma_k$.
  271. % \end{itemize}
  272. % \column{0.47\textwidth}
  273. % \resizebox{.99\textwidth}{!}{\begin{tikzpicture} %<<<
  274. % \path [draw=none,fill=white!0,even odd rule] (4,0) circle (1.5) (4,0) circle (0.75);
  275. % \draw[color=red, ultra thick] (0,0) ellipse (4cm and 1cm);
  276. % \draw[color=blue, ultra thick] (4.7,-0.8) circle (1pt);
  277. % \node at (5, -0.8) {\color{blue} \Large $x$};
  278. % %\node at (5, -0.8) {\color{blue} \Large $x_i$};
  279. % \node at (-4.6, 0) {\color{red} \Large $y(\theta)$};
  280. % \node at (0, -0.5) {\Large $\theta$};
  281. % \node (c) at (-1, -0.75) {};
  282. % \node (d) at ( 1, -0.75) {};
  283. % \draw[ultra thick, ->] (c) to [out=-5,in=185, looseness=1] (d);
  284. % \end{tikzpicture}} %>>>
  285. % \end{columns}
  286. % \vspace{2em}
  287. % {\bf Outer integral in $s$:}
  288. % %\begin{itemize}
  289. % % \item singular if $x \in \Gamma_k$ with logarithmic singularity at $s = s_0$.
  290. % % \item $1/|s-s_0|^{\alpha}$ decay as $|s-s_0| \longrightarrow \infty$
  291. % %\end{itemize}
  292. % \vspace{0.7em}
  293. % \begin{tikzpicture}%<<<
  294. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/s-quad/surf.png}};
  295. % \draw[color=red, ultra thick] (2.7,0.9) circle (1pt);
  296. % \node at (2.5, 0.5) {\color{red} \Large $x$};
  297. % \draw[ultra thick, ->] (4.3,0.45) to (3.1,0.5);
  298. % \node [rotate=-6] at (5.55, 0.25) {log singularity};
  299. % \draw[ultra thick, ->] (10.5,-0.25) to (12.1,-0.2);
  300. % \node [rotate=-4.5] at (9.5, -0.17) {$|s-s_0|^{-\alpha}$};
  301. % \end{tikzpicture}%>>>
  302. %\end{FIframe} %>>>
  303. %\begin{FIframe}{Fast Modal Green's Function Evaluation}{} %<<<
  304. % \vspace{-1em}
  305. % \begin{columns}
  306. % \column{0.7\textwidth}
  307. % \begin{center} %<<<
  308. % \resizebox{.99\textwidth}{!}{\begin{tikzpicture}
  309. % \path [draw=none,fill=white!0,even odd rule] (4,0) circle (1.5) (4,0) circle (0.75);
  310. % \only<2->{\path [draw=none,fill=blue!30,even odd rule] (4,0) circle (1.5) (4,0) circle (0.75);}
  311. % \only<3->{\path [draw=none,fill=brown!80,even odd rule] (4,0) circle (0.75) (4,0) circle (0.375);}
  312. % \only<3->{\path [draw=none,fill=green!80,even odd rule] (4,0) circle (0.375) (4,0) circle (0.1875);}
  313. % \draw[color=red, ultra thick] (0,0) ellipse (4cm and 1cm);
  314. % \only<2->{
  315. % \draw[fill=black, thick] (-4,0) circle (1pt);
  316. % \draw[fill=black, thick] ( 4,0) circle (1pt);
  317. % \draw[fill=black, thick] (0,-1) circle (1pt);
  318. % \draw[fill=black, thick] (0, 1) circle (1pt);
  319. % \draw[fill=black, thick] (-2.828,-0.7071) circle (1pt);
  320. % \draw[fill=black, thick] (-2.828, 0.7071) circle (1pt);
  321. % \draw[fill=black, thick] ( 2.571,-0.7660) circle (1pt);
  322. % \draw[fill=black, thick] ( 2.571, 0.7660) circle (1pt);
  323. % \draw[fill=black, thick] (3.464,-.5) circle (1pt);
  324. % \draw[fill=black, thick] (3.464, .5) circle (1pt);
  325. % \draw[fill=black, thick] (3.759,-.3420) circle (1pt);
  326. % \draw[fill=black, thick] (3.759, .3420) circle (1pt);
  327. % \draw[fill=black, thick] (3.939,-.1736) circle (1pt);
  328. % \draw[fill=black, thick] (3.939, .1736) circle (1pt);
  329. % \draw[fill=black, thick] (3.985,-.0872) circle (1pt);
  330. % \draw[fill=black, thick] (3.985, .0872) circle (1pt);
  331. % }
  332. % \only<2->{\draw[fill=blue!30,draw=none] (180:0.75)+(4,0) arc (180:0:0.75) -- (0:1.5)+(4,0) arc (0:180:1.5) -- cycle;}
  333. % \only<3->{\draw[fill=brown!80,draw=none] (180:0.375)+(4,0) arc (180:0:0.375) -- (0:0.75)+(4,0) arc (0:180:0.75) -- cycle;}
  334. % \only<3->{\draw[fill=green!80,draw=none] (180:0.1875)+(4,0) arc (180:0:0.1875) -- (0:0.375)+(4,0) arc (0:180:0.375) -- cycle;}
  335. % \draw[color=blue, ultra thick] (4.7,-0.8) circle (1pt);
  336. % \node at (5, -0.8) {\color{blue} \Large $x$};
  337. % %\node at (5, -0.8) {\color{blue} \Large $x_i$};
  338. % \node at (-4.6, 0) {\color{red} \Large $y(\theta)$};
  339. % \node at (0, -0.5) {\Large $\theta$};
  340. % \node (c) at (-1, -0.75) {};
  341. % \node (d) at ( 1, -0.75) {};
  342. % \draw[ultra thick, ->] (c) to [out=-5,in=185, looseness=1] (d);
  343. % \end{tikzpicture}}
  344. % \end{center} %>>>
  345. % \column{0.3\textwidth}
  346. % $\displaystyle \int_{\theta} \mathcal{K}(x-y(\theta))~\sigma(\theta)~d\theta$
  347. % \end{columns}
  348. % %\vspace{-1em}
  349. % %\begin{center} %<<<
  350. % %\begin{tikzpicture}
  351. % % \draw[color=red, ultra thick] (0,0) ellipse (4cm and 1cm);
  352. % % \draw[color=blue, ultra thick] (4.7,-0.8) circle (1pt);
  353. % % \node at (5, -0.8) {\color{blue} \Large $x$};
  354. % % \node at (-4.6, 0) {\color{red} \Large $y(\theta)$};
  355. % % \node at (0, -0.5) {\Large $\theta$};
  356. % % \node (c) at (-1, -0.75) {};
  357. % % \node (d) at ( 1, -0.75) {};
  358. % % \draw[ultra thick, ->] (c) to [out=-5,in=185, looseness=1] (d);
  359. % %\end{tikzpicture}
  360. % %\end{center} %>>>
  361. % %$\qquad \displaystyle \int_{\theta} \mathcal{K}(x-y(\theta))~\sigma(\theta)~d\theta ~=~ \sum_n \mathcal{K}_n(x) \widehat{\sigma_n}$
  362. % %where, $y(\theta)$ is a circular source loop, and $\mathcal{K}_n(x) = \int_{\theta} e^{-in\theta} \mathcal{K}(x-y(\theta))~d\theta$ are the modal Green's functions.
  363. % \vspace{0.5em}
  364. % \begin{itemize}
  365. % \item Analytic representation in special functions - Young, Hao, Martinsson JCP-2012
  366. % \begin{itemize}
  367. % \item modal Green's functions -- method of choice for axisymmetric problems.
  368. % \end{itemize}
  369. % \only<2->{
  370. % \vspace{1em}
  371. % \item Build special quadrature rules!
  372. % \begin{itemize}
  373. % \item \eg~ generalized Gaussian quadratures: ~~Bremer, Gimbutas and Rokhlin - SISC 2010.
  374. % \only<3->{
  375. % \vspace{0.75em}
  376. % \item Different rule for each nested annular region (up to $10^{-6}$ from source). %(and different accuracy tolerance $\epsilon$).
  377. % \vspace{0.5em}
  378. % \!\!\!\!\!$\sim 48$ quadrature nodes for $n_0 = 8$ ~and~ 10-digits accuracy. \\
  379. % \!\!\!\!\!$\sim 26M$ modal Green's function evaluations/sec/core (Skylake 2.4GHz)
  380. % }
  381. % \end{itemize}
  382. % }
  383. % \end{itemize}
  384. %\end{FIframe} %>>>
  385. %\begin{FIframe}{Fast Modal Green's Function Evaluation}{} %<<<
  386. % \vspace{-1.5em}
  387. % \begin{center} %<<<
  388. % \begin{tikzpicture}
  389. % \path [draw=none,fill=blue!30,even odd rule] (4,0) circle (1.5) (4,0) circle (0.75);
  390. % \only<2->{\path [draw=none,fill=brown!80,even odd rule] (4,0) circle (0.75) (4,0) circle (0.375);}
  391. % \only<2->{\path [draw=none,fill=green!80,even odd rule] (4,0) circle (0.375) (4,0) circle (0.1875);}
  392. % \draw[color=red, ultra thick] (0,0) ellipse (4cm and 1cm);
  393. % \draw[fill=blue!30,draw=none] (180:0.75)+(4,0) arc (180:0:0.75) -- (0:1.5)+(4,0) arc (0:180:1.5) -- cycle;
  394. % \only<2->{\draw[fill=brown!80,draw=none] (180:0.375)+(4,0) arc (180:0:0.375) -- (0:0.75)+(4,0) arc (0:180:0.75) -- cycle;}
  395. % \only<2->{\draw[fill=green!80,draw=none] (180:0.1875)+(4,0) arc (180:0:0.1875) -- (0:0.375)+(4,0) arc (0:180:0.375) -- cycle;}
  396. % \draw[color=blue, ultra thick] (4.7,-0.8) circle (1pt);
  397. % \node at (5, -0.8) {\color{blue} \Large $x$};
  398. % \node at (-4.6, 0) {\color{red} \Large $y(\theta)$};
  399. % \node at (0, -0.5) {\Large $\theta$};
  400. % \node (c) at (-1, -0.75) {};
  401. % \node (d) at ( 1, -0.75) {};
  402. % \draw[ultra thick, ->] (c) to [out=-5,in=185, looseness=1] (d);
  403. % \end{tikzpicture}
  404. % \end{center} %>>>
  405. % \vspace{-1em}
  406. % \begin{itemize}
  407. % \item Build special quadrature rule ${\color{red}(w_i, \theta_i)}$ such that,
  408. % \qquad\qquad $\displaystyle \int_{\theta} e^{-in\theta} \mathcal{K}(x-y(\theta))~d\theta ~\approx~ \sum_i {\color{red} w_i} e^{-in\theta_i} \mathcal{K}(x-y({\color{red}\theta_i}))$
  409. % for all Fourier modes ($n \leq n_0$) and all targets $x$ in the annulus.
  410. % \vspace{1em}
  411. % \only<2->{
  412. % \item Different rule for each nested annular region (up to $10^{-6}$ from source). %(and different accuracy tolerance $\epsilon$).
  413. % \vspace{1em}
  414. % \!\!\!\!\!$\sim 48$ quadrature nodes for $n_0 = 8$ ~and~ 10-digits accuracy. \\
  415. % \!\!\!\!\!$\sim 26M$ modal Green's function evaluations/sec/core (Skylake 2.4GHz)
  416. % }
  417. % \end{itemize}
  418. %\end{FIframe} %>>>
  419. %\begin{FIframe}{Generalized Chebyshev Quadratures}{} %<<<
  420. % \vspace{-2em}
  421. % \begin{columns}
  422. % \column{0.5\textwidth}
  423. % \begin{itemize}
  424. % \item Generate several integrands:
  425. % \end{itemize}
  426. % $\qquad\qquad f_i(\theta) = e^{-i n_{i} \theta} \mathcal{K}(x_i - y(\theta))$
  427. % \column{0.5\textwidth}
  428. % \begin{center} %<<<
  429. % \resizebox{.99\textwidth}{!}{\begin{tikzpicture}
  430. % \path [draw=none,fill=blue!30,even odd rule] (4,0) circle (1.5) (4,0) circle (0.75);
  431. % \draw[color=red, ultra thick] (0,0) ellipse (4cm and 1cm);
  432. % \draw[fill=blue!30,draw=none] (180:0.75)+(4,0) arc (180:0:0.75) -- (0:1.5)+(4,0) arc (0:180:1.5) -- cycle;
  433. % \draw[color=blue, ultra thick] (4.7,-0.8) circle (1pt);
  434. % \node at (5, -0.8) {\color{blue} \Large $x_i$};
  435. % \node at (-4.6, 0) {\color{red} \Large $y(\theta)$};
  436. % \node at (0, -0.5) {\Large $\theta$};
  437. % \node (c) at (-1, -0.75) {};
  438. % \node (d) at ( 1, -0.75) {};
  439. % \draw[ultra thick, ->] (c) to [out=-5,in=185, looseness=1] (d);
  440. % \end{tikzpicture}}
  441. % \end{center} %>>>
  442. % \end{columns}
  443. % \only<2->{
  444. % \vspace{0.25em}
  445. % \begin{itemize}
  446. % \item Build an adaptive quadrature rule $(\theta_j, w_j)$ to integrate products $f_i f_k$.
  447. % \vspace{0.75em}
  448. % \only<3->{\item Set matrix $\displaystyle A_{ij} = f_{i}(\theta_j) \sqrt{w_j}$ ~~ and compute its truncated SVD: ~~$A = U \Sigma V^{*}$.}
  449. % \vspace{0.75em}
  450. % \only<4->{\item Compute a column pivoted QR decomposition of $V^{*}$.}
  451. % \vspace{0.75em}
  452. % \only<5->{\item Select nodes corresponding to pivot columns $\{\theta_{j_1}, \cdots, \theta_{j_k}\}$ and \\
  453. % solve least squares problem for the quadrature weights.}
  454. % \end{itemize}
  455. % }
  456. % \vspace{1em}
  457. % \only<6>{
  458. % $\approx 48$ quadrature nodes for $n_0 = 8$ ~and~ 10-digits accuracy. \\
  459. % $\approx 13M$ (complex) modal Green's function evaluations/sec/core (Skylake 2.4GHz)
  460. % }
  461. % % Chebyshev quadrature algorithm
  462. % % modal green's function evaluation rate
  463. %\end{FIframe} %>>>
  464. %\begin{FIframe}{Quadratures for Outer Integral}{} %<<<
  465. % {\bf Near Interactions:} $x$ is off-surface or adjacent panel
  466. % \begin{itemize}
  467. % \item panel (Gauss-Lengendre) quadrature with dyadic refienement.
  468. % \end{itemize}
  469. % \begin{tikzpicture}%<<<
  470. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/s-quad/surf.png}};
  471. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/s-quad/adap-quad.png}};
  472. % \draw[color=red, ultra thick] (2.7,0.5) circle (1pt);
  473. % \node at (2.7, 0.25) {\color{red} \Large $x$};
  474. % \draw[ultra thick, ->] (7.1,0.1) to (5.5,0.3);
  475. % \node [rotate=-4.5] at (9.5, -0.17) {dyadic ref. GL panel quad};
  476. % \end{tikzpicture}%>>>
  477. % \only<2->{
  478. % \vspace{1em}
  479. % {\bf Singular Interactions:} $x$ is on-surface
  480. % \only<2>{\begin{tikzpicture}%<<<
  481. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/s-quad/adap-quad.png}};
  482. % \draw[color=red, ultra thick] (2.7,0.9) circle (1pt);
  483. % \node at (2.5, 0.5) {\color{red} \Large $x$};
  484. % \draw[ultra thick, ->] (3.2,-0.0) to (2.8,0.65);
  485. % \node [rotate=0] at (3.5, -0.25) {special quadrature};
  486. % \node [rotate=0] at (3.5, -0.70) {for $p(s) \log(s) + q(s)$};
  487. % \draw[ultra thick, ->] (7.1,0.1) to (5.5,0.3);
  488. % \node [rotate=-4.5] at (9.5, -0.17) {dyadic ref. GL panel quad};
  489. % \end{tikzpicture}}%>>>
  490. % \only<3->{%<<<
  491. % \begin{tikzpicture}%<<<
  492. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/s-quad/special-quad.png}};
  493. % \draw[color=red, ultra thick] (2.49,0.89) circle (1pt);
  494. % \node at (2.4, 0.45) {\color{red} \Large $x$};
  495. % \end{tikzpicture}%>>>
  496. % {\em Instead build special quadrature rules!}
  497. % \begin{itemize}
  498. % \item replace composite panel quadratures with a single quadrature.
  499. % %\item integrand doesn't have closed form expression, but we can still generate quadrature rules!
  500. % \item Separate rules for different aspect ratios ($1$ -- $10^4$ in powers of 2)
  501. % \end{itemize}
  502. % }%>>>
  503. % }
  504. % % speedup over adaptive quadrature
  505. %\end{FIframe} %>>>
  506. %\begin{FIframe}{Overall Algorithm}{} %<<<
  507. % %TODO: Summary
  508. % \vspace{1em}
  509. % {\bf Discretization:} piecewise polynomial $\times$ Fourier.
  510. % \vspace{1em}
  511. % {\bf Far-field interactions:} standard quadratures (GL $\times$ PTR) + FMM
  512. % \vspace{1em}
  513. % {\bf Near interactions:}
  514. % \begin{itemize}
  515. % \item special quadratures for modal Green's function and singular integral in $s$.
  516. % \item dyadic refined Gauss-Legendre quadrature in $s$ for non-singular case.
  517. % \item build local correction matrix instead of computing on-the-fly.
  518. % \end{itemize}
  519. %\end{FIframe} %>>>
  520. %\begin{frame} %<<<
  521. % \centering
  522. % \huge Numerical Results
  523. %\end{frame} %>>>
  524. %\begin{FIframe}{Numerical Results - comparison with BIEST}{} %<<<
  525. % \begin{columns}
  526. % \column{0.5\textwidth}
  527. % {\bf Green's identity (Laplace):}
  528. % $\Delta u = 0$, ~~ then for ~~ $x \in \Gamma$,
  529. % \vspace{-1em}
  530. % \[ u(x) = \frac{u(x)}{2} + \StokesSL[\partial_{n} u](x) - \StokesDL[u](x) \]
  531. % \column{0.5\textwidth}
  532. % \begin{tikzpicture}
  533. % \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.99\textwidth]{figs/biest-conv}}; % R0 = 2, r = 0.5
  534. % \draw [red, ultra thick, ->|](1.15,3.35) -- (1.30,2.99);
  535. % \node at (1.65, 2.50) {\color{red} $0.5$};
  536. % \draw [red, ultra thick, ->|](2.13,1.65) -- (1.98,2.01);
  537. % \draw [red, ultra thick, ->](3.5,1.9) -- (6.1,1.9);
  538. % \node at (4.25, 2.12) {\color{red} $1.0$};
  539. % \end{tikzpicture}
  540. % \end{columns}
  541. % \only<1>{
  542. % \vspace{1em}
  543. % {\bf Boundary Integral Equation Solver for Taylor States (BIEST)\footnotemark}
  544. % \begin{itemize}
  545. % \item quadrature for general toroidal surfaces with uniform grid.
  546. % \item partition-of-unity to separate singular part of boundary integral.
  547. % \item polar coordinate transform for singular integral.
  548. % \end{itemize}
  549. % }
  550. % \only<2>{
  551. % \centering
  552. % \vspace{1em}
  553. % \begin{tabular}{r r r r | c r r r r}
  554. % \hline
  555. % \multicolumn{4}{c|}{Slender-body Quadrature} & \multicolumn{5}{c}{BIEST\footnotemark} \\
  556. % $N$ & $\left\|e\right\|_{\infty}$ & $T_{setup}$ & $T_{eval}$ & $~$ & $N$ & $\left\|e\right\|_{\infty}$ & $T_{setup}$ & $T_{eval}$ \\
  557. % \hline
  558. % 320 & 1.5e-04 & 0.032 & 0.0004 & $~$ & 507 & 2.0e-03 & 0.1319 & 0.0017 \\
  559. % 720 & 3.5e-06 & 0.094 & 0.0013 & $~$ & 1323 & 4.0e-06 & 1.4884 & 0.0042 \\
  560. % 1280 & 5.4e-09 & 0.228 & 0.0033 & $~$ & 2523 & 4.3e-09 & 6.6825 & 0.0313 \\
  561. % 2000 & 2.5e-10 & 0.501 & 0.0079 & $~$ & 4107 & 3.5e-10 & 15.4711 & 0.0862 \\
  562. % \hline
  563. % \end{tabular}
  564. % }
  565. % \footnotetext[1]{JCP 2019 - Malhotra, Cerfon, Imbert-Gérard, O'Neil ({\href{https://github.com/dmalhotra/BIEST}{\textcolor{blue}{https://github.com/dmalhotra/BIEST}}})}
  566. % % Slenderbody - Green's identity test
  567. % % N Setup Eval Error Nelem FourierOrder
  568. % % 80 3.8000e-03 2.0000e-04 1.55153e-01 2 4
  569. % % 80 5.8000e-03 2.0000e-04 5.71073e-03 2 4
  570. % % 320 2.4900e-02 4.0000e-04 6.80325e-03 4 8
  571. % % 320 3.1500e-02 4.0000e-04 1.57426e-04 4 8
  572. % % 720 8.0700e-02 1.3000e-03 2.77260e-05 6 12
  573. % % 720 9.3700e-02 1.3000e-03 3.52629e-06 6 12
  574. % % 720 1.1270e-01 1.3000e-03 3.25405e-07 6 12
  575. % % 1280 2.2890e-01 3.3000e-03 5.48754e-09 8 16
  576. % % 2000 4.3300e-01 7.8000e-03 3.79014e-10 10 20
  577. % % 2000 5.0100e-01 7.9000e-03 2.57239e-10 10 20
  578. % % 2880 8.5870e-01 1.6100e-02 2.73956e-10 12 24
  579. % % 3920 1.3213e+00 2.9200e-02 3.88062e-10 14 28
  580. % % 5120 2.0569e+00 4.8900e-02 6.05052e-10 16 32
  581. % % 5120 2.5004e+00 5.0600e-02 6.57478e-10 16 32
  582. % % BIEST - Green's identity test
  583. % % N T_setup T_eval Error M q N1 N2
  584. % % 507 0.0677 0.0017 6.7e-03 6 4 39 13
  585. % % 507 0.0669 0.0017 6.7e-03 6 4 39 13
  586. % % 507 0.1319 0.0017 2.0e-03 6 6 39 13
  587. % % 507 0.3398 0.0016 5.1e-05 6 10 39 13
  588. % % 867 0.4813 0.0017 4.1e-05 6 12 51 12
  589. % % 1323 1.4884 0.0042 4.0e-06 8 16 63 17
  590. % % 1875 4.0895 0.0177 8.7e-08 12 18 75 25
  591. % % 2523 6.6825 0.0313 4.3e-09 14 20 87 29
  592. % % 3267 10.4136 0.0581 1.1e-09 16 22 99 33
  593. % % 4107 15.4711 0.0862 3.5e-10 18 24 111 37
  594. % % 5043 22.0902 0.1253 1.0e-10 20 26 123 41
  595. % % 6075 30.8523 0.1972 4.1e-11 22 28 135 45
  596. %\end{FIframe} %>>>
  597. %%\begin{FIframe}{Numerical Results}{} %<<<
  598. %% \vspace{-1.5em}
  599. %% \begin{columns}[t]
  600. %% \column{0.66\textwidth}
  601. %% \embedvideo{\includegraphics[width=0.99\textwidth]{videos/tangle}}{videos/tangle.mov}
  602. %% \vspace{-1ex}
  603. %% \begin{columns}
  604. %% \column{0.59\textwidth}
  605. %% Exterior Laplace BVP:
  606. %%
  607. %% \quad $\displaystyle \Delta u = 0, \quad u |_{\Gamma} = 1,$
  608. %% \quad $\displaystyle u(x) \rightarrow 0 ~\text{as}~ |x|\rightarrow 0$
  609. %% \column{0.39\textwidth}
  610. %% wire radius = \\
  611. %% ~~1.5e-3~to~4e-3
  612. %% \vspace{1ex}
  613. %% wire length = 16
  614. %% \end{columns}
  615. %% \column{0.33\textwidth}
  616. %% \includegraphics[width=0.99\textwidth]{figs/tangle-cross-section-potential-laplace.png}
  617. %% \vspace{1ex}
  618. %% \includegraphics[width=0.99\textwidth]{figs/tangle-cross-section-error-laplace.png}
  619. %% \end{columns}
  620. %% % Geometry = Tangle
  621. %% % points / s / core
  622. %% % with fourier order
  623. %% % Stokes and Laplace
  624. %% % with different accuracy
  625. %% % BVP-solve
  626. %%\end{FIframe} %>>>
  627. %%\begin{FIframe}{Numerical Results - Laplace BVP}{} %<<<
  628. %% \vspace{-1em}
  629. %% \begin{columns}
  630. %% \column{0.23\textwidth}
  631. %% \quad$\displaystyle \Delta u = 0$
  632. %% \quad$\displaystyle u |_{\Gamma} = 1$
  633. %% \vspace{1ex}
  634. %% \quad $\displaystyle u(x) \rightarrow 0$ \\
  635. %% \quad as~ $\displaystyle |x|\rightarrow \infty$
  636. %% \column{0.76\textwidth}
  637. %% %\includegraphics[width=0.56\textwidth]{figs/tangle}
  638. %% \includegraphics[width=0.49\textwidth]{figs/tangle-cross-section-potential-laplace.png}
  639. %% \includegraphics[width=0.49\textwidth]{figs/tangle-cross-section-error-laplace.png}
  640. %% \end{columns}
  641. %% \resizebox{1.05\textwidth}{!}{\begin{tabular}{r r r r | r r | r r | r r}
  642. %% \hline
  643. %% & & & & & & \multicolumn{2}{c |}{1-core} & \multicolumn{2}{c }{40-cores} \\
  644. %% $N$ & $N_{panel}$ & $N_{\theta}$ & $\epsilon_{_{GMRES}}$ & $N_{iter}$ & $\left\|e\right\|_{\infty}$ & $T_{setup}~~(N/T_{setup})$ & $T_{solve}$ & $T_{setup}$ & $T_{solve}$ \\
  645. %% \hline
  646. %% 2.8e3 & 70 & 4 & 1e-02 & 4 & 4.2e-02 & 0.13 ~~~~~~(2.1e4) & 0.03 & 0.020 & 0.013 \\
  647. %% %4.9e3 & 122 & 4 & 1e-03 & 7 & 4.9e-03 & 0.23 ~~~~~~(2.1e4) & 0.16 & 0.020 & 0.027 \\
  648. %% 1.4e4 & 172 & 8 & 1e-04 & 10 & 1.0e-03 & 0.72 ~~~~~~(1.9e4) & 1.81 & 0.051 & 0.094 \\
  649. %% 3.0e4 & 252 & 12 & 1e-05 & 14 & 3.1e-05 & 1.82 ~~~~~~(1.6e4) & 12.25 & 0.091 & 2.527 \\
  650. %% 3.1e4 & 262 & 12 & 1e-07 & 20 & 2.4e-07 & 2.47 ~~~~~~(1.2e4) & 18.97 & 0.213 & 4.239 \\
  651. %% 6.5e4 & 272 & 24 & 1e-09 & 28 & 1.1e-09 & 7.74 ~~~~~~(8.4e3) & 114.05 & 0.325 & 7.136 \\
  652. %% %7.7e4 & 276 & 28 & 1e-11 & 35 & 6.6e-11 & 11.75 ~~~~~~(6.5e3) & 200.05 & 0.539 & 10.690 \\
  653. %% \hline
  654. %% \end{tabular}}
  655. %% % Tangle BVP - Laplace
  656. %% % geom gmres_tol tol N Nelem FourierOrder iter MaxError L2-error T_setup setup-rate T_solve T_setup T_solve
  657. %% % tangle50 1e-2 1e-3 2800 70 4 4 4.2e-2 9.2e-4 0.1302 21505 0.0314 0.0200 0.0131
  658. %% % tangle100 1e-3 1e-4 4880 122 4 7 4.9e-3 6.9e-5 0.2338 20873 0.1617 0.0195 0.0272
  659. %% % tangle150 1e-4 1e-5 13760 172 8 10 1.0e-3 8.5e-6 0.7216 19069 1.8098 0.0514 0.0940
  660. %% % tangle230 1e-5 1e-6 30240 252 12 14 3.1e-5 8.1e-7 1.8162 16650 12.2452 0.0905 2.5270
  661. %% % tangle240 1e-7 1e-8 31440 262 12 20 2.4e-7 8.2e-9 2.4693 12732 18.9716 0.2125 4.2385
  662. %% % tangle250 1e-9 1e-10 65280 272 24 28 1.1e-9 4.5e-11 7.7427 8431 114.0527 0.3250 7.1356
  663. %% % tangle254 1e-11 1e-12 77280 276 28 35 6.6e-11 5.5e-13 11.7547 6574 200.0480 0.5391 10.6896
  664. %%\end{FIframe} %>>>
  665. \begin{FIframe}{Numerical Results - Stokes BVP}{} %<<<
  666. \vspace{-1.5em}
  667. \embedvideo{\includegraphics[width=0.6\textwidth]{videos/tangle}}{videos/tangle.mov}
  668. \includegraphics[width=0.39\textwidth]{figs/tangle-stokes-streamlines.png}
  669. \vspace{-1.0em}
  670. \begin{columns}[t]
  671. \column{0.25\textwidth}
  672. {\bf Exterior Stokes Dirichlet BVP:}
  673. \quad $\displaystyle \Delta {\bm u} - \nabla p = 0,$
  674. \quad $\displaystyle \nabla \cdot {\bm u} = 0,$
  675. \column{0.4\textwidth}
  676. \vspace{1.2em}
  677. \quad $\displaystyle {\bm u} |_{\Gamma} = {\bm u_0},$
  678. \quad $\displaystyle u(x) \rightarrow 0 ~\text{as}~ |x|\rightarrow 0 ,$
  679. \column{0.33\textwidth}
  680. \vspace{1.2em}
  681. wire radius =
  682. ~1.5e-3~to~4e-3
  683. \vspace{0.2ex}
  684. wire length = 16
  685. %\includegraphics[width=0.99\textwidth]{figs/tangle-stokes-streamlines.png}
  686. %\vspace{1ex}
  687. %\includegraphics[width=0.99\textwidth]{figs/tangle-cross-section-error-stokes.png}
  688. \end{columns}
  689. \vspace{1.0em}
  690. {\bf BIE formulation:}\quad
  691. $
  692. \displaystyle (I/2 + D + S~/~({\color{red}2 \varepsilon \log \varepsilon^{-1}}) ) \, {\bm \sigma} = {\bm u_0}
  693. $
  694. % Geometry = Tangle
  695. % points / s / core
  696. % with fourier order
  697. % Stokes and Laplace
  698. % with different accuracy
  699. % BVP-solve
  700. \end{FIframe} %>>>
  701. \begin{FIframe}{Numerical Results - Stokes BVP}{} %<<<
  702. \centering
  703. \vspace{-1.5em}
  704. \includegraphics[width=0.35\textwidth]{figs/tangle-stokes-streamlines.png}
  705. \hspace{5em}
  706. \includegraphics[width=0.40\textwidth]{figs/tangle-cross-section-error-stokes.png}
  707. %\resizebox{1.05\textwidth}{!}{\begin{tabular}{r r r r | r r | r r | r r} % old results
  708. % \hline
  709. % & & & & & & \multicolumn{2}{c |}{1-core} & \multicolumn{2}{c }{40-cores} \\
  710. % $N$ & $N_{panel}$ & $N_{\theta}$ & $\epsilon_{_{GMRES}}$ & $N_{iter}$ & $\left\|e\right\|_{\infty}$ & $T_{setup}~~(N/T_{setup})$ & $T_{solve}$ & $T_{setup}$ & $T_{solve}$ \\
  711. % \hline
  712. % %8.4e3 & 70 & 4 & 1e-02 & 6 & 2.1e-01 & 0.18 ~~~~~~(4.5e4) & 0.1 & 0.024 & 0.02 \\
  713. % 1.5e4 & 122 & 4 & 1e-03 & 10 & 1.9e-02 & 0.33 ~~~~~~(4.4e4) & 0.7 & 0.024 & 0.05 \\
  714. % %4.1e4 & 172 & 8 & 1e-04 & 16 & 1.7e-02 & 1.22 ~~~~~~(3.3e4) & 9.8 & 0.077 & 1.84 \\
  715. % 9.1e4 & 252 & 12 & 1e-05 & 21 & 1.7e-04 & 3.31 ~~~~~~(2.7e4) & 61.2 & 0.197 & 5.25 \\
  716. % 9.4e4 & 262 & 12 & 1e-07 & 33 & 4.1e-06 & 4.43 ~~~~~~(2.1e4) & 104.3 & 0.224 & 7.69 \\
  717. % 2.0e5 & 272 & 24 & 1e-09 & 43 & 1.4e-08 & 17.70 ~~~~~~(1.1e4) & 586.0 & 0.796 & 22.94 \\
  718. % 2.3e5 & 276 & 28 & 1e-11 & 54 & 4.1e-09 & 27.67 ~~~~~~(8.4e3) & 1034.2 & 1.229 & 38.85 \\
  719. % \hline
  720. %\end{tabular}}
  721. \resizebox{1.05\textwidth}{!}{\begin{tabular}{r r r r | r r | r r | r r}
  722. \hline
  723. & & & & & & \multicolumn{2}{c |}{1-core} & \multicolumn{2}{c }{40-cores} \\
  724. $N$ & $N_{panel}$ & $N_{\theta}$ & $\epsilon_{_{GMRES}}$ & $N_{iter}$ & $\left\|e\right\|_{\infty}$ & $T_{setup}~~(N/T_{setup})$ & $T_{solve}$ & $T_{setup}$ & $T_{solve}$ \\
  725. \hline
  726. 1.0e4 & 49 & 8 & 1e-02 & 5 & 3.5e-02 & 0.193 ~~~~~~(5.4e4) & 0.130 & 0.042 & 0.017 \\
  727. 2.6e4 & 103 & 12 & 1e-05 & 22 & 5.5e-05 & 0.572 ~~~~~~(4.5e4) & 4.039 & 0.045 & 0.215 \\
  728. 4.7e4 & 157 & 20 & 1e-07 & 33 & 6.6e-07 & 1.416 ~~~~~~(3.3e4) & 19.518 & 0.134 & 1.162 \\
  729. 8.3e4 & 227 & 24 & 1e-08 & 38 & 4.5e-08 & 3.623 ~~~~~~(2.3e4) & 78.907 & 0.324 & 3.689 \\
  730. 2.2e5 & 457 & 40 & 1e-10 & 49 & 2.9e-10 & 21.949 ~~~~~~(1.0e4) & 746.966 & 4.458 & 48.494 \\
  731. %4.8e5 & 893 & 48 & 1e-11 & 54 & 2.4e-11 & 84.363 ~~~~~~(5.7e3) & 3788.948 & 15.177 & 227.747 \\
  732. \hline
  733. \end{tabular}}
  734. % Tangle BVP - Stokes
  735. % geom gmres_tol tol N Nelem FourierOrder iter MaxError L2-error T_setup setup-rate T_solve T_setup T_solve
  736. % tangle50 1e-2 1e-3 8400 70 4 6 2.1e-01 2.2e-03 0.1856 45259 0.1589 0.0248 0.0234
  737. % tangle100 1e-3 1e-4 14640 122 4 10 1.9e-02 1.0e-04 0.3313 44190 0.7745 0.0243 0.0565
  738. % tangle150 1e-4 1e-5 41280 172 8 16 1.7e-02 1.6e-05 1.2295 33575 9.8059 0.0770 1.8448
  739. % tangle230 1e-5 1e-6 90720 252 12 21 1.7e-04 9.0e-07 3.3138 27376 61.2092 0.1975 5.2584
  740. % tangle240 1e-7 1e-8 94320 262 12 33 4.1e-06 7.6e-09 4.4355 21265 104.3853 0.2241 7.6990
  741. % tangle250 1e-9 1e-10 195840 272 24 43 1.4e-08 1.1e-10 17.7085 11059 586.0695 0.7960 22.9405
  742. % tangle254 1e-11 1e-12 231840 276 28 54 4.1e-09 6.9e-12 27.6771 8377 1034.2305 1.2298 38.8589
  743. \end{FIframe} %>>>
  744. \begin{FIframe}{Numerical Results - close-to-touching}{} %<<<
  745. \centering
  746. \only<1>{
  747. \begin{tikzpicture}
  748. \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.9\textwidth]{figs/touching.png}};
  749. \node[anchor=south west,inner sep=0] at (10,-1.7) {\includegraphics[width=0.4\textwidth]{figs/touching-zoom.png}};
  750. \draw[red,ultra thick,rounded corners] (5.75,2.55) rectangle (6.65,3.65);
  751. \draw[red,ultra thick,rounded corners] (10,-1.7) rectangle (14.98,2.95);
  752. \draw [red, ultra thick, ->|](0.7,0.7) -- (1.03,1.03);
  753. \draw [red, ultra thick, ->|](1.57,1.57) -- (1.24,1.24);
  754. \node at (1.75, 1.85) {\color{red} $0.125$};
  755. \draw [red, ultra thick, ->](3.4,2.9) -- (3.4,0.18);
  756. \node at (3.8, 1.7) {\color{red} $1.0$};
  757. \node at (7.95, 3.3) {\color{red} gap $= 0.003$};
  758. \node at (7.7, 2.8) {\color{red} $N_\theta = 88$};
  759. \end{tikzpicture}
  760. }
  761. %\only<2>{
  762. % \includegraphics[width=0.8\textwidth]{figs/close-to-touching-streamlines}
  763. %}
  764. \end{FIframe} %>>>
  765. \begin{FIframe}{Numerical Results - close-to-touching}{} %<<<
  766. \centering
  767. \includegraphics[width=0.55\textwidth]{figs/touching.png}
  768. \includegraphics[width=0.4\textwidth]{figs/close-to-touching-streamlines}
  769. \begin{tabular}{r r | r r | r r | r r}
  770. \hline
  771. & & & & \multicolumn{2}{c |}{1-core} & \multicolumn{2}{c }{40-cores} \\
  772. $N$ & $\epsilon_{_{GMRES}}$ & $N_{iter}$ & $\left\|e\right\|_{\infty}$ & $T_{setup}~~(N/T_{setup})$ & $T_{solve}$ & $T_{setup}$ & $T_{solve}$ \\
  773. \hline
  774. %6.5e4 & 1e-01 & 2 & 1.3e-01 & 5.6 ~~~~~~(1.1e+4) & 3.2 & 0.85 & 0.5 \\
  775. 6.5e4 & 1e-02 & 4 & 2.1e-02 & 8.1 ~~~~~~(8.0e+3) & 6.5 & 1.28 & 1.4 \\
  776. %6.5e4 & 1e-03 & 7 & 1.6e-02 & 10.8 ~~~~~~(6.0e+3) & 11.8 & 1.73 & 2.3 \\
  777. %6.5e4 & 1e-04 & 13 & 9.3e-03 & 13.6 ~~~~~~(4.7e+3) & 22.6 & 2.13 & 4.8 \\
  778. 6.5e4 & 1e-05 & 24 & 2.4e-03 & 16.8 ~~~~~~(3.8e+3) & 42.9 & 2.50 & 7.7 \\
  779. %6.5e4 & 1e-06 & 34 & 3.4e-05 & 19.9 ~~~~~~(3.2e+3) & 62.5 & 2.80 & 10.9 \\
  780. 6.5e4 & 1e-07 & 43 & 2.8e-06 & 23.5 ~~~~~~(2.7e+3) & 81.6 & 3.31 & 12.8 \\
  781. %6.5e4 & 1e-08 & 49 & 2.6e-07 & 27.4 ~~~~~~(2.3e+3) & 96.2 & 3.72 & 14.8 \\
  782. %6.5e4 & 1e-09 & 54 & 9.3e-08 & 31.4 ~~~~~~(2.1e+3) & 109.3 & 3.91 & 16.3 \\
  783. 6.5e4 & 1e-10 & 59 & 5.4e-08 & 35.6 ~~~~~~(1.8e+3) & 122.9 & 4.06 & 19.2 \\
  784. %6.5e4 & 1e-11 & 64 & 5.0e-09 & 40.5 ~~~~~~(1.6e+3) & 137.1 & 4.56 & 20.2 \\
  785. %6.5e4 & 1e-12 & 69 & 5.0e-10 & 45.6 ~~~~~~(1.4e+3) & 152.2 & 5.00 & 22.3 \\
  786. 6.5e4 & 1e-13 & 72 & 1.3e-10 & 49.9 ~~~~~~(1.3e+3) & 162.6 & 5.27 & 23.2 \\
  787. \hline
  788. \end{tabular}
  789. % N gmres_tol tol iter MaxError L2-error T_setup setup-rate T_solve T_setup T_solve
  790. % 64560 1e-01 1e-2 2 1.3e-01 3.2e-02 5.6700 3.1944 0.8531 0.4806
  791. % 64560 1e-02 1e-3 4 2.1e-02 2.5e-03 8.1061 6.5360 1.2818 1.3614
  792. % 64560 1e-03 1e-4 7 1.6e-02 3.1e-04 10.8099 11.8118 1.7274 2.2869
  793. % 64560 1e-04 1e-5 13 9.3e-03 2.4e-05 13.6997 22.5707 2.1291 4.8351
  794. % 64560 1e-05 1e-6 24 2.4e-03 3.7e-06 16.8026 42.8992 2.5001 7.6538
  795. % 64560 1e-06 1e-7 34 3.4e-05 2.2e-07 19.9488 62.5492 2.8044 10.8931
  796. % 64560 1e-07 1e-8 43 2.8e-06 1.4e-08 23.5213 81.6355 3.3077 12.7662
  797. % 64560 1e-08 1e-9 49 2.6e-07 1.9e-09 27.4751 96.2095 3.7236 14.7706
  798. % 64560 1e-09 1e-10 54 9.3e-08 5.5e-10 31.4113 109.2922 3.9118 16.2876
  799. % 64560 1e-10 1e-11 59 5.4e-08 2.3e-10 35.6971 122.8530 4.0588 19.2035
  800. % 64560 1e-11 1e-12 64 5.0e-09 2.2e-11 40.5914 137.0600 4.5563 20.2282
  801. % 64560 1e-12 1e-13 69 5.0e-10 2.5e-12 45.6508 152.2238 4.9972 22.3425
  802. % 64560 1e-13 1e-14 72 1.3e-10 1.5e-12 49.9494 162.6172 5.2653 23.2362
  803. \end{FIframe} %>>>
  804. %>>>