iccsa-20-wind

Virtual Testbed: Simulation of Air Flow Around Ship Hull and Its Effect on Ship Motions
git clone https://git.igankevich.com/iccsa-20-wind.git
Log | Files | Refs

slides.tex (11976B)


      1 \documentclass[aspectratio=169,xcolor=table]{beamer}
      2 \usepackage{polyglossia}
      3 \setdefaultlanguage{english}
      4 \usetheme{SaintPetersburg}
      5 
      6 \usepackage{booktabs}
      7 \usepackage{amsmath}
      8 \usepackage{spbu-slides}
      9 
     10 \tikzset{Arrow/.style={
     11 	solid,
     12 	arrows={-Triangle[length=0.15cm,width=0.100cm]},
     13 	draw=spbuDarkGray
     14 }}%
     15 
     16 \tikzset{Dots/.style={
     17 	draw=spbuDarkGray,
     18     line cap=round, dash pattern=on 0pt off 4\pgflinewidth
     19 }}%
     20 \setbeamertemplate{itemize items}[circle]
     21 
     22 % metadata
     23 \usepackage{textcomp}
     24 \usepackage{hyperxmp}
     25 \hypersetup{
     26 	pdfcontactemail={i.gankevich@spbu.ru},
     27 	pdfcontacturl={http://www.apmath.spbu.ru/en/staff/gankevich/index.html},
     28 	pdfcontactaddress={Unversitetskii prospekt 35},
     29 	pdfcontactcity={Petergof},
     30 	pdfcontactregion={Saint Petersburg},
     31 	pdfcontactpostcode={198504},
     32 	pdfcontactcountry={Russia},
     33 	pdflang={en},
     34 	pdfmetalang={en},
     35 	pdflicenseurl={http://creativecommons.org/licenses/by-sa/4.0/},
     36 	pdfcopyright={Copyright \textcopyright{} 2020 Anton Gavrikov\xmpcomma{} Alexander Degtyarev\xmpcomma{} Denis Egorov\xmpcomma{} Ivan Gankevich\xmpcomma{} Artemii Grigorev\xmpcomma{} Vasily Khramushin\xmpcomma{} Ivan Petriakov},
     37 	pdfsubject={Virtual Testbed: Simulation of air flow around ship hull and its effect
     38 on ship motions},
     39 }
     40 
     41 \newcommand{\VectorR}[1]{\left[\begin{array}{r}#1\end{array}\right]}
     42 \newcommand{\VectorL}[1]{\left[\begin{array}{l}#1\end{array}\right]}
     43 \newcommand{\Length}[1]{\big|#1\big|}
     44 
     45 \title{Virtual Testbed: Simulation of air flow around ship hull and its effect
     46 on ship motions}
     47 \author{%
     48     A.\:Gavrikov \and
     49     A.\:Degtyarev \and
     50     D.\:Egorov \and
     51     I.\:Gankevich\textsuperscript{*} \and
     52     A.\:Grigorev \and
     53     V.\:Khramushin \and
     54     I.\:Petriakov%
     55 }
     56 \institute{Saint Petersburg State University}
     57 \date{July 2020}
     58 
     59 \begin{document}
     60 
     61 \frame{\maketitle}
     62 
     63 \begin{frame}{Motivation}
     64     Ship motion simulators either
     65     \begin{itemize}
     66         \item do not model air flow or
     67         \item model it using slow solvers.
     68     \end{itemize}
     69     \vfill
     70     We want to
     71     \begin{itemize}
     72         \item take air flow around the ship into account,
     73         \item have high-performance solver.
     74     \end{itemize}
     75 \end{frame}
     76 
     77 \begin{frame}{Governing system of equations}
     78     Continuity and motion equation for ideal fluid
     79     \begin{columns}
     80         \begin{column}{0.45\textwidth}
     81             \begin{equation*}
     82                 \begin{aligned}
     83                     & \Delta\phi = 0; \qquad \vec\upsilon=\vec\nabla\phi; \\
     84                     & \rho\frac{\partial\phi}{\partial{}t} +
     85                       \frac{1}{2}\rho\Length{\vec\nabla\phi}^2 +
     86                       p + \rho g z = p_0
     87                 \end{aligned}
     88             \end{equation*}
     89         \end{column}
     90         \begin{column}{0.45\textwidth}
     91             \scriptsize
     92             \begin{tabular}{ll}
     93                 \(p_0\)          & atmospheric pressure \\
     94                 \(g\)            & gravitational acceleration \\
     95                 \(\rho\)         & air density \\
     96                 \(p\)            & pressure \\
     97                 \(\phi\)         & velocity potential \\
     98                 \(\vec\upsilon\) & velocity \\
     99             \end{tabular}
    100         \end{column}
    101     \end{columns}
    102     \vfill
    103     Ship hull boundary condition
    104     \begin{columns}
    105         \begin{column}{0.45\textwidth}
    106             \begin{equation*}
    107                 \vec\nabla\phi\cdot\vec{n} = 0;
    108                 \qquad
    109                 \vec{r} = \vec{S}
    110             \end{equation*}
    111         \end{column}
    112         \begin{column}{0.45\textwidth}
    113             \scriptsize
    114             \begin{equation*}
    115                 \begin{aligned}
    116                     & \vec{r} = \left(x,y,z\right) \\
    117                     & \vec{S}=\vec{S}\left(a,b,t\right); \quad a,b\in{}A=[0,1];
    118                     \quad \vec{n}=\frac{\partial\vec S}{\partial a}\!\times\!\frac{\partial\vec S}{\partial b}
    119                 \end{aligned}
    120             \end{equation*}
    121         \end{column}
    122     \end{columns}
    123 \end{frame}
    124 
    125 \begin{frame}{The solution for uniform translational motion}
    126     The law of reflection\newline
    127     \vskip\baselineskip
    128     \begin{center}
    129         \begin{tikzpicture}[x=1mm,y=1mm]
    130             \draw plot [smooth] coordinates
    131             {(9.673,28.585) (17.173,35.433) (21.194,36.020) (27.064,35.433) (32.172,24.129)};
    132             \node at (20,30) {\tiny{}ship hull};
    133             \path[Arrow] (16.194,41.020) -- (21.194,36.020) {};
    134             \draw[Dots] (11.194,46.020) -- (21.194,36.020) {};
    135             \node[left] at (11.194,46.020) {\tiny{}incident air particle trajectory};
    136             \node[left] at (16.194,41.020) {\(\vec\upsilon_{\phantom{r}}\)};
    137             \path[Arrow] (21.194,36.020) -- (26.194,41.020) {};
    138             \draw[Dots] (21.194,36.020) -- (31.194,46.020) {};
    139             \node[right] at (31.194,46.020) {\tiny{}reflected air particle trajectory};
    140             \node[right] at (26.194,41.020) {\(\vec\upsilon_r =
    141             \vec\upsilon - 2\left(\vec\upsilon\cdot\vec{n}\right)\vec{n}\)};
    142             \path[Arrow] (21.194,36.020) -- (21.194,41.020) {};
    143             \node[above] at (21.194,41.020) {\(\vec{n}\)};
    144         \end{tikzpicture}
    145     \end{center}
    146     \vfill
    147     The solution \emph{on} the boundary
    148     \begin{equation*}
    149         \phi = \vec\upsilon\cdot\vec{r} + C \left(\vec\upsilon_r\cdot\vec{r}\right)
    150         \qquad\Rightarrow\qquad
    151         \vec\nabla\phi = \vec\upsilon + C\vec\upsilon_r =
    152         \vec\upsilon + \vec\upsilon_r
    153         \qquad
    154         \text{\tiny{}(full derivation is in the paper)}
    155     \end{equation*}
    156     The solution \emph{near} the boundary
    157     \begin{equation*}
    158     \vec\nabla\phi =
    159     \vec\upsilon +
    160     \iint\limits_{a,b\,\in{}A}
    161     \left(
    162         \frac{1}{s} \vec\upsilon_r
    163         - \frac{2}{s^2} \left(\vec\upsilon_r\cdot\vec{r}\right) \left(\vec{r}-\vec{S}\right)
    164     \right)
    165     da\,db;
    166     \qquad
    167     s = 1+\Length{\vec{r}-\vec{S}}^2.
    168     \end{equation*}
    169 \end{frame}
    170 
    171 \begin{frame}{Verification using potential flow around a cylinder}
    172     \centering
    173     \begin{tikzpicture}[x=1cm,y=-1.2cm]
    174         \node[text width=4.4cm,fill=spbuWhite2] (s1) at (0,0) {{\tiny{}Known solution in Cartesian form\strut{}}\newline \(\phi(x,y) = U x \left(1 + \frac{R^2}{x^2+y^2}\right)\)};
    175         \node[text width=3.25cm,fill=spbuWhite2] (s2) at (8,0.5) {{\tiny{}Velocity on the boundary}\newline\(\vec\nabla\phi = \frac{2 U}{R^2}\VectorR{y^2 \\ -x y\phantom{^2}}\)};
    176         \node[text width=4.4cm,fill=spbuWhite2] (s3) at (0,1) {{\tiny{}Our solution\strut{}}\newline\(\phi = \vec\upsilon\cdot\vec{r} + \vec\upsilon_r\cdot\vec{r}\)};
    177         \node at (8,1.25) {\tiny{}(full derivation is in the paper)};
    178         \path[Arrow] (s1.east) -- node[above]{\tiny{}\(x^2+y^2=R^2\)} (s1.east -| s2.west) ;
    179         \path[Arrow] (s3.east) -- node[below]{\tiny{}\(\vec{n}=(x/R,y/R)\), \(\vec\upsilon=(U,0)\)} (s3.east -| s2.west) ;
    180     \end{tikzpicture}
    181     \vfill
    182     \begin{columns}
    183         \begin{column}{0.32\textwidth}
    184             \centering
    185             Known solution
    186             \includegraphics{build/gnuplot/cylinder-1.eps}
    187         \end{column}
    188         \begin{column}{0.32\textwidth}
    189             \centering
    190             Our solution
    191             \includegraphics{build/gnuplot/cylinder-2.eps}
    192         \end{column}
    193         \begin{column}{0.32\textwidth}
    194             \footnotesize
    195             \begin{itemize}
    196                 \item Two solutions are equivalent \emph{on} the boundary!
    197                 \item Max. difference near the boundary is 11\% of maximum velocity.
    198             \end{itemize}
    199         \end{column}
    200     \end{columns}
    201 \end{frame}
    202 
    203 \begin{frame}{Ship roll angle and velocity}
    204     \begin{columns}
    205         \begin{column}{0.25\textwidth}
    206             \centering
    207             Roll angle
    208             \includegraphics{build/gnuplot/ship-roll.eps}
    209         \end{column}
    210         \begin{column}{0.25\textwidth}
    211             \centering
    212             Velocity
    213             \includegraphics{build/gnuplot/ship-velocity.eps}
    214         \end{column}
    215         \begin{column}{0.45\textwidth}
    216             \footnotesize
    217             \begin{itemize}
    218                 \item
    219                     We need \(\approx{}35\) m/s wind (a hurricane!) to produce 1\textdegree{} static roll angle.
    220                 \item We need to introduce reflection ratio \(\alpha\) for symmetric ships:
    221                     \begin{equation*}
    222                         \vec\upsilon_r = \vec\upsilon -
    223                         2 \alpha \left(\vec\upsilon\cdot\vec{n}\right)\vec{n}
    224                     \end{equation*}
    225                     \begin{tabular}{ll}
    226                         \(\alpha=0\) & no reflection \\
    227                         \(\alpha=1\) & full reflection \\
    228                     \end{tabular}
    229             \end{itemize}
    230             \includegraphics[scale=0.5]{build/gnuplot/aurora.eps}
    231         \end{column}
    232     \end{columns}
    233 \end{frame}
    234 
    235 \begin{frame}{Performance benchmarks in Virtual Testbed}
    236     \small
    237     Average time in milliseconds that is needed to compute wind field on the
    238     ship hull and near the ship hull.
    239     \vfill
    240     \begin{tabular}{l@{\hskip 3mm}r@{\hskip 2mm}r@{\hskip 3mm}r@{\hskip 2mm}r@{\hskip 3mm}r@{\hskip 2mm}rl}
    241 		\toprule
    242 				 & \multicolumn{2}{c}{Diogen}
    243 				 & \multicolumn{2}{c}{Aurora}
    244 				 & \multicolumn{2}{c}{MICW} \\
    245 		\cmidrule(r){2-3}
    246 		\cmidrule(r){4-5}
    247 		\cmidrule(r){6-7}
    248 		Node     & OpenMP & OpenCL 
    249                  & OpenMP & OpenCL 
    250                  & OpenMP & OpenCL  \\
    251 		\midrule
    252 		Duck  
    253                  &      114  &    14.00
    254                  &      164  &    16
    255                  &      314  &    29
    256                  & laptop
    257                  \\
    258 		GPUlab  
    259 		         &       62  &     1.35            
    260                  &       90  &     2
    261 		         &      175  &     3
    262                  & desktop
    263                  \\
    264 		Capybara &       33  &     0.87            
    265 		         &       48  &     1
    266 		         &       99  &     6
    267                  & server
    268                  \\
    269 		\bottomrule
    270 	\end{tabular}
    271     \vfill
    272     \begin{tikzpicture}[x=1cm,y=1cm]
    273         \node at (-4,0) {\includegraphics[scale=0.50]{build/ships/diogen.eps}};
    274         \node at (0,0) {\includegraphics[scale=0.50]{build/ships/aurora.eps}};
    275         \node at (4,0) {\includegraphics[scale=0.50]{build/ships/micw.eps}};
    276     \end{tikzpicture}
    277     \begin{tikzpicture}[remember picture,overlay]%
    278         \node[anchor=south east] at (current page.south east)
    279         {\tiny{}More information on Virtual Testbed:
    280         \href{https://vtestbed.cmmshq.ru/}{https://vtestbed.cmmshq.ru/}};
    281     \end{tikzpicture}
    282 \end{frame}
    283 
    284 \begin{frame}{Conclusion and future work}
    285     \begin{itemize}
    286         \item The proposed solution is equivalent to the known
    287             formula for potential flow around a cylinder.
    288         \item High computational performance, especially on graphical accelerators.
    289         \item Future work is to incorporate turbulence and circular motion into the model.
    290     \end{itemize}
    291 \end{frame}
    292 
    293 \begin{frame}
    294     \centering
    295 	\begin{tabular}{lllrr}
    296 		\toprule
    297 		     &     &     & \multicolumn{2}{c}{GPU GFLOPS} \\
    298 		\cmidrule(r){4-5}
    299 		Node           & CPU              & GPU            & Single & Double \\
    300 		\midrule
    301         Duck   & Intel i7-3630QM  & NVIDIA GT740M  &  622   &     \\
    302 		GPUlab         & AMD FX-8370      & NVIDIA GTX1060 & 4375   & 137 \\
    303 		Capybara       & Intel E5-2630 v4 & NVIDIA P5000   & 8873   & 277 \\
    304 		\bottomrule
    305 	\end{tabular}
    306 \end{frame}
    307 
    308 \begin{frame}
    309 	\vskip\baselineskip
    310 	\vskip\baselineskip
    311 	\vskip\baselineskip
    312 	\vskip\baselineskip
    313 	\tiny\vfill
    314     Copyright \textcopyright{} 2020 Anton Gavrikov, Alexander Degtyarev, Denis
    315     Egorov, Ivan Gankevich, Artemii Grigorev, Vasily Khramushin, Ivan Petriakov
    316 	\texttt{\href{mailto:i.gankevich@spbu.ru}{i.gankevich@spbu.ru}}. \\
    317 	\vskip\baselineskip
    318 	\vskip\baselineskip
    319 	This work is licensed under a \textit{Creative Commons Attribution-ShareAlike 4.0
    320 	International License}. The copy of the license is available at
    321 	\url{https://creativecommons.org/licenses/by-sa/4.0/}.
    322 \end{frame}
    323 
    324 \end{document}