iccsa-20-waves

Virtual Testbed: Simulation of Ocean Wave Reflection from the Ship Hull
git clone https://git.igankevich.com/iccsa-20-waves.git
Log | Files | Refs

slides.tex (10750B)


      1 \documentclass[aspectratio=169,xcolor=table]{beamer}
      2 \usepackage{polyglossia}
      3 \setdefaultlanguage{english}
      4 \usetheme{SaintPetersburg}
      5 
      6 \usepackage{textcomp}
      7 \usepackage{booktabs}
      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 Ivan Petriakov\xmpcomma{} Alexander Degtyarev\xmpcomma{} Denis Egorov\xmpcomma{} Ivan Gankevich\xmpcomma{} Anton Gavrikov\xmpcomma{} Artemii Grigorev\xmpcomma{} Vasily Khramushin},
     37 	pdfsubject={Virtual testbed: Simulation of ocean wave reflection from the ship hull},
     38 }
     39 
     40 \newcommand{\Jacobian}{\mathbb{J}}
     41 \newcommand{\Real}[1]{\operatorname{Re}#1}
     42 \newcommand{\Imag}[1]{\operatorname{Im}#1}
     43 \newcommand{\VectorL}[1]{\left[\begin{array}{l}#1\end{array}\right]}
     44 \newcommand{\VectorR}[1]{\left[\begin{array}{r}#1\end{array}\right]}
     45 \newcommand{\VectorH}[1]{\left(#1\right)}
     46 \newcommand{\DerivativeT}[1]{\frac{\partial{#1}}{\partial{}t}}
     47 
     48 \title{Virtual testbed: Simulation of ocean wave reflection from the ship hull}
     49 \author{%
     50     I.\:Petriakov \and
     51     A.\:Degtyarev \and
     52     D.\:Egorov \and
     53     I.\:Gankevich\textsuperscript{*} \and
     54     A.\:Gavrikov \and
     55     A.\:Grigorev \and
     56     V.\:Khramushin%
     57 }
     58 \institute{Saint Petersburg State University}
     59 \date{July 2020}
     60 
     61 \begin{document}
     62 
     63 \frame{\maketitle}
     64 
     65 \begin{frame}{Motivation}
     66     Ship motion simulators
     67     \begin{itemize}
     68         \item model ocean waves without diffraction and radiation,
     69         \item model ship resistance to flow using empirical methods (by increasing its mass).
     70     \end{itemize}
     71     \vfill
     72     We want
     73     \begin{itemize}
     74         \item diffraction and radiation,
     75         \item no empirical methods,
     76         \item high-performance solver,
     77         \item to better understand and more accurately simulate ship motions.
     78     \end{itemize}
     79 \end{frame}
     80 
     81 \begin{frame}{The law of reflection for ocean waves}
     82     \begin{columns}[T]
     83         \begin{column}{0.40\textwidth}
     84             \includegraphics[width=\textwidth]{build/inkscape/diffraction.eps}
     85             \tiny{}Near the obstacle the wave direction is tangent to the boundary.
     86         \end{column}
     87         \begin{column}{0.60\textwidth}
     88             \footnotesize
     89             Lagrangian description:
     90             \vskip\baselineskip
     91             \begin{tikzpicture}[x=1mm,y=1mm]
     92                 \draw plot [smooth] coordinates
     93                 {(9.673,28.585) (17.173,35.433) (21.194,36.020) (27.064,35.433) (32.172,24.129)};
     94                 \node at (20,30) {\tiny{}ship hull};
     95                 \path[Arrow] (16.194,41.020) -- (21.194,36.020) {};
     96                 \draw[Dots] (11.194,46.020) -- (21.194,36.020) {};
     97                 \node[left,text width=2cm,align=center] at (11.194,46.020) {\scriptsize{}incident wave direction};
     98                 \node[left,yshift=-3mm] at (16.194,41.020)
     99                 {\(\vec{d}_i=\VectorH{u,v,0}\)\strut};
    100                 \path[Arrow] (21.194,36.020) -- (26.194,41.020) {};
    101                 \draw[Dots] (21.194,36.020) -- (31.194,46.020) {};
    102                 \node[right,text width=2cm,align=center] at (31.194,46.020) {\scriptsize{}reflected wave direction};
    103                 \node[right,yshift=-3mm] at (26.194,41.020) {\(\vec{d}_r =
    104                     \vec{d}_i-\vec{d}_s = 
    105                     \vec{d}_i-2\vec{n}\left(\vec{d}_i\cdot\vec{n}\right)\)\strut};
    106                 \path[Arrow] (21.194,36.020) -- (21.194,41.020) {};
    107                 \node[above] at (21.194,41.020) {\(\vec{n}\)};
    108             \end{tikzpicture}
    109             \vskip\baselineskip
    110             \begin{tabular}{ll}
    111                 \(w_i = \exp\left( \left(i\vec{d}_i+\vec{d}_{k}\right)\cdot\vec\zeta - i\omega t\right)\) & incident wave potential \\
    112                 \(w_r = \exp\left( \left(i\vec{d}_r+\vec{d}_{k}\right)\cdot\vec\zeta - i\omega t\right)\) & reflected wave potential \\
    113                 \(w = C_1 w_i + C_2 w_r\) & total potential \\
    114             \end{tabular}
    115             \vskip\baselineskip
    116             {\tiny{}
    117                 \begin{tabular}{ll}
    118                     \(\vec{d}_k = \VectorH{0,0,k}\) & damping coefficient \\
    119                     \(u,v\) & wave numbers \\
    120                     \(k=\sqrt{u^2+v^2}\) & wave vector length \\
    121                     \(\vec\zeta=\VectorH{\alpha,\beta,\delta}\)
    122                                          & initial particle coordinates \\
    123                     \(x,y,z\) & instantaneous particle coordinates \\
    124                     \(\omega=\sqrt{gk}\) & angular frequency \\
    125                 \end{tabular}
    126             }
    127         \end{column}
    128     \end{columns}
    129 \end{frame}
    130 
    131 \begin{frame}{Governing system of equations}
    132     Continuity and motion equation for ideal fluid (Lagrangian description)
    133     \begin{equation*}
    134         \begin{aligned}
    135         & \vec\nabla\left( w_{tt} + g w_\delta + p_1/\rho \right) = 0 \\
    136         & \Delta w = 0
    137         \end{aligned}
    138     \end{equation*}
    139     Boundary condition on the ship hull panel (\(\vec\zeta_0\) is the point on the boundary):
    140     \begin{equation*}
    141         \frac{d}{d t} \vec\nabla w \cdot \vec{n} = 0;
    142         \qquad
    143         \vec{n} \cdot \left(\vec\zeta - \vec\zeta_0\right) = 0
    144     \end{equation*}
    145     The solution for single panel
    146     \begin{equation*}
    147         w = C_1 w_i + C_2 w_r
    148         \qquad
    149         C_1 = 1
    150         \qquad
    151         C_2 = \exp\left(i\vec{d}_s\cdot\zeta_0\right)
    152     \end{equation*}
    153     The solution for the whole ship
    154     \begin{equation*}
    155         w = \sum\limits_{j} K_j w_j;
    156         \qquad
    157         K_j = \frac{1}{1 + \left|\zeta-\zeta_0\right|^2}
    158     \end{equation*}
    159 \end{frame}
    160 
    161 \begin{frame}{Wave diffraction around Aurora's hull}
    162     \begin{columns}[T]
    163         \begin{column}{0.65\textwidth}
    164             \centering
    165             \includegraphics{build/gnuplot/surface-with-ship.eps}
    166         \end{column}
    167         \begin{column}{0.35\textwidth}
    168             \centering
    169             \includegraphics[scale=0.4]{build/gnuplot/aurora-non-bare.eps}
    170         \end{column}
    171     \end{columns}
    172 \end{frame}
    173 
    174 \begin{frame}{Wave diffraction around Aurora's hull (not shown)}
    175     \centering
    176     \includegraphics[width=\textwidth]{build/gnuplot/surface-with-ship-3d.eps}
    177 \end{frame}
    178 
    179 
    180 \begin{frame}{Performance benchmarks in Virtual Testbed}
    181     \small
    182     Average time in milliseconds that is needed to generate waves with reflection.
    183     \begin{tabular}{l@{\hskip 3mm}r@{\hskip 2mm}r@{\hskip 3mm}r@{\hskip 2mm}r@{\hskip 3mm}r@{\hskip 2mm}rl}
    184 		\toprule
    185 				 & \multicolumn{2}{l}{Diogen}
    186 				 & \multicolumn{2}{l}{Aurora}
    187 				 & \multicolumn{2}{l}{MICW} \\
    188 		\cmidrule(r){2-3}
    189 		\cmidrule(r){4-5}
    190 		\cmidrule(r){6-7}
    191 		Node     & OpenMP & OpenCL 
    192                  & OpenMP & OpenCL 
    193                  & OpenMP & OpenCL  \\
    194 		\midrule
    195 		Duck  
    196                  &    5462   & 48
    197                  &    7716   & 41
    198                  &    7725   & 11   
    199                  & laptop
    200                  \\
    201 		GPUlab  
    202 		         &    5529   & 11                    
    203                  &    8222   & 10   
    204                  &    6481   & \markRectangle{speedup}{3}{lightyellow}
    205                  & desktop
    206                  \\
    207 		Capybara &    2908   & 16                    
    208 		         &    2091   & 8     
    209 		         &    2786   & 4     
    210                  & server
    211                  \\
    212 		\bottomrule
    213 	\end{tabular}
    214     \begin{tikzpicture}[remember picture,overlay]%
    215     \node[below of=speedup,yshift=-0.25cm,xshift=-2cm] (labelSpeedup) {2k speedup\strut{}};
    216     \path[draw=spbuDarkGray,thick] (labelSpeedup) -- (speedup);
    217     \end{tikzpicture}
    218     \vfill
    219     \begin{columns}
    220         \begin{column}{0.55\textwidth}
    221             \begin{tikzpicture}[x=1cm,y=1cm]
    222                 \node at (1,-0.25) {\includegraphics[scale=0.50]{build/gnuplot/diogen.eps}};
    223                 \node at (0,0) {\includegraphics[scale=0.50]{build/gnuplot/aurora.eps}};
    224                 \node at (1.5,0.5) {\includegraphics[scale=0.50]{build/gnuplot/micw.eps}};
    225             \end{tikzpicture}
    226         \end{column}
    227         \begin{column}{0.35\textwidth}
    228             \footnotesize
    229             \begin{itemize}
    230                 \item Make storage order linear.
    231                 \item Use built-in vector operations.
    232                 \item Use local memory of the multiprocessor to optimise global memory
    233                     load and stores.
    234             \end{itemize}
    235         \end{column}
    236     \end{columns}
    237     \begin{tikzpicture}[remember picture,overlay]%
    238         \node[anchor=south east] at (current page.south east)
    239         {\tiny{}More information on Virtual Testbed:
    240         \href{https://vtestbed.cmmshq.ru/}{https://vtestbed.cmmshq.ru/}};
    241     \end{tikzpicture}
    242 \end{frame}
    243 
    244 \begin{frame}{Conclusion and future work}
    245     \begin{itemize}
    246         \item Diffraction alone cannot be used to take into account ship's resistance
    247             to flow (cannot replace the method of added masses).
    248         \item High computational performance, hundreds of times faster on a
    249             graphical accelerator than on a central processor.
    250         \item Future work is to incorporate radiation into the model and compare
    251             damping to the method of added masses.
    252     \end{itemize}
    253 \end{frame}
    254 
    255 \begin{frame}
    256     \centering
    257 	\begin{tabular}{lllrr}
    258 		\toprule
    259 		     &     &     & \multicolumn{2}{c}{GPU GFLOPS} \\
    260 		\cmidrule(r){4-5}
    261 		Node           & CPU              & GPU            & Single & Double \\
    262 		\midrule
    263         Duck   & Intel i7-3630QM  & NVIDIA GT740M  &  622   &     \\
    264 		GPUlab         & AMD FX-8370      & NVIDIA GTX1060 & 4375   & 137 \\
    265 		Capybara       & Intel E5-2630 v4 & NVIDIA P5000   & 8873   & 277 \\
    266 		\bottomrule
    267 	\end{tabular}
    268 \end{frame}
    269 
    270 \begin{frame}
    271     \tiny\vfill
    272     Copyright \textcopyright{} 2020 Ivan Petriakov, Alexander Degtyarev, Denis Egorov, Ivan Gankevich, Anton Gavrikov, Artemii Grigorev, Vasily Khramushin
    273     \texttt{\href{mailto:i.gankevich@spbu.ru}{i.gankevich@spbu.ru}}. \\
    274     \vskip\baselineskip
    275     \vskip\baselineskip
    276     This work is licensed under a \textit{Creative Commons Attribution-ShareAlike 4.0
    277     International License}. The copy of the license is available at
    278     \url{https://creativecommons.org/licenses/by-sa/4.0/}.
    279 \end{frame}
    280 
    281 \end{document}