commit 1462d359e67eead161c71d420d0c482e344a28aa
parent 706ec447f682a301514c5c2d9a58805e034f5e92
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Sat, 23 Jun 2018 16:59:24 +0300
Translate slides to English.
Diffstat:
6 files changed, 937 insertions(+), 195 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,6 +1,7 @@
THESIS_RU = arma-thesis-ru
THESIS_EN = arma-thesis
SLIDES_RU = arma-slides-ru
+SLIDES_EN = arma-slides
NOTES_RU = arma-notes-ru
REVIEW_RU = arma-review-ru
ABSTRACT_RU = arma-abstract-ru
@@ -15,7 +16,7 @@ FLAGS = \
export TEXINPUTS=$(PWD)//:
-all: build build/$(THESIS_RU).pdf build/$(THESIS_EN).pdf build/$(SLIDES_RU).pdf build/$(NOTES_RU).pdf
+all: build build/$(THESIS_RU).pdf build/$(THESIS_EN).pdf build/$(SLIDES_RU).pdf build/$(NOTES_RU).pdf build/$(SLIDES_EN).pdf
build/$(THESIS_RU).pdf: build/$(THESIS_RU).tex preamble.tex bib/*
-latexmk $(FLAGS) -f $<
@@ -23,7 +24,10 @@ build/$(THESIS_RU).pdf: build/$(THESIS_RU).tex preamble.tex bib/*
build/$(THESIS_EN).pdf: build/$(THESIS_EN).tex preamble.tex bib/*
-latexmk $(FLAGS) -f $<
-build/$(SLIDES_RU).pdf: build/$(SLIDES_RU).tex slides-preamble.tex math.tex fonts.tex org.tex
+build/$(SLIDES_RU).pdf: build/$(SLIDES_RU).tex slides-preamble.tex math.tex fonts.tex org.tex slides-titlepage-ru.tex
+ -latexmk $(FLAGS) -f $<
+
+build/$(SLIDES_EN).pdf: build/$(SLIDES_EN).tex slides-preamble.tex math.tex fonts.tex org.tex slides-titlepage.tex
-latexmk $(FLAGS) -f $<
build/$(NOTES_RU).pdf: build/$(NOTES_RU).tex build/$(SLIDES_RU).pdf slides-preamble.tex math.tex fonts.tex
@@ -48,6 +52,10 @@ build/$(SLIDES_RU).tex: $(SLIDES_RU).org
org export $< beamer
mv $(SLIDES_RU).tex $@
+build/$(SLIDES_EN).tex: $(SLIDES_EN).org
+ org export $< beamer
+ mv $(SLIDES_EN).tex $@
+
build/$(REVIEW_RU).tex: $(REVIEW_RU).org
org export $< latex
mv $(REVIEW_RU).tex $@
@@ -60,6 +68,7 @@ clean:
rm -f build/$(THESIS_EN)*
rm -f build/$(THESIS_RU)*
rm -f build/$(SLIDES_RU)*
+ rm -f build/$(SLIDES_EN)*
rm -f build/$(NOTES_RU)*
rm -f build/$(REVIEW_RU)*
diff --git a/arma-slides-ru.org b/arma-slides-ru.org
@@ -4,6 +4,7 @@
#+LANGUAGE: ru
#+LATEX_CLASS: beamer
#+LATEX_CLASS_OPTIONS: [14pt,aspectratio=169]
+#+LATEX_HEADER_EXTRA: \input{slides-titlepage-ru}
#+LATEX_HEADER_EXTRA: \input{slides-preamble}
#+BEAMER_THEME: SaintPetersburg
#+OPTIONS: todo:nil title:nil ':t toc:nil H:2
@@ -119,10 +120,10 @@
{\scriptsize{}белый шум};
\node[fill=none,baseline,anchor=north west,below=of phi,yshift=0.2cm]
(phiLabel)
- {\scriptsize{}коэф. АР};
+ {\scriptsize{}коэффициенты АР};
\node[fill=none,baseline,anchor=north west,below=of theta,yshift=0.2cm]
(thetaLabel)
- {\scriptsize{}коэф. СС};
+ {\scriptsize{}коэффициенты СС};
\path[->,thick] (zetaLabel.south -| zeta1.north) edge (zeta1.north);
\path[->,thick] (zetaLabel.south -| zeta2.north west)
edge [transform canvas={xshift=2mm}]
@@ -244,8 +245,8 @@ digraph G {
edge [arrowsize=0.66,color="#404040"]
bgcolor="#F5F6F5"
- function [label="Формула\nпрофиля волны",height="0.40"]
- discrete_function [label="Дискретный\nпрофиль волны",height="0.40"]
+ function [label="Формула\nповерхности волны",height="0.40"]
+ discrete_function [label="Дискретная\nповерхность волны",height="0.40"]
field_data [label="Натурные\nданные",width="1.1",height="0.40"]
theorem [label="Теорема Винера—Хинчина",height="0.20"]
acf [label="АКФ",height="0.20"]
@@ -261,15 +262,6 @@ digraph G {
#+RESULTS:
[[file:build/acf-pipeline-ru.pdf]]
-**** Column 2 :noexport:
-:PROPERTIES:
-:BEAMER_col: 0.37
-:END:
-
-\begin{equation*}
-\hat{\gamma} = |\hat{\zeta}|^2
-\end{equation*}
-
*** Separator
:PROPERTIES:
:BEAMER_env: ignoreheading
@@ -393,103 +385,6 @@ arma.acf_plot(df, 0, zlim=c(0,1.0), expand=0.5, border=NA)
натурных данных. Модель способна воспроизводить плоские волны, волны Стокса и
нерегулярное волнение, автоковариационные функции которых показаны на слайде.
-** Определение коэффициентов :noexport:
-:PROPERTIES:
-:BEAMER_act: <presentation>
-:END:
-#+begin_export latex
-\framesubitile{Модель АР}
- \small%
- Решить СЛАУ (трехмерные уравнения Юла---Уокера) относительно $\Phi$:
- \begin{equation*}
- \Gamma
- \left[
- \begin{array}{l}
- \Phi_{0,0,0}\\
- \Phi_{0,0,1}\\
- \vdotswithin{\Phi_{0,0,0}}\\
- \Phi_{p_1,p_2,p_3}
- \end{array}
- \right]
- =
- \left[
- \begin{array}{l}
- K_{0,0,0}-\Var{\epsilon}\\
- K_{0,0,1}\\
- \vdotswithin{K_{0,0,0}}\\
- K_{p_1,p_2,p_3}
- \end{array}
- \right],
- \qquad
- \Gamma=
- \left[
- \begin{array}{llll}
- \Gamma_0 & \Gamma_1 & \cdots & \Gamma_{p_1} \\
- \Gamma_1 & \Gamma_0 & \ddots & \vdotswithin{\Gamma_0} \\
- \vdotswithin{\Gamma_0} & \ddots & \ddots & \Gamma_1 \\
- \Gamma_{p_1} & \cdots & \Gamma_1 & \Gamma_0
- \end{array}
- \right],
- \end{equation*}
- \begin{equation*}
- \Gamma_i =
- \left[
- \begin{array}{llll}
- \Gamma^0_i & \Gamma^1_i & \cdots & \Gamma^{p_2}_i \\
- \Gamma^1_i & \Gamma^0_i & \ddots & \vdotswithin{\Gamma^0_i} \\
- \vdotswithin{\Gamma^0_i} & \ddots & \ddots & \Gamma^1_i \\
- \Gamma^{p_2}_i & \cdots & \Gamma^1_i & \Gamma^0_i
- \end{array}
- \right]
- \qquad
- \Gamma_i^j=
- \left[
- \begin{array}{llll}
- K_{i,j,0} & K_{i,j,1} & \cdots & K_{i,j,p_3} \\
- K_{i,j,1} & K_{i,j,0} & \ddots &x \vdotswithin{K_{i,j,0}} \\
- \vdotswithin{K_{i,j,0}} & \ddots & \ddots & K_{i,j,1} \\
- K_{i,j,p_3} & \cdots & K_{i,j,1} & K_{i,j,0}
- \end{array}
- \right].
- \end{equation*}
-#+end_export
-
-** Определение коэффициентов :noexport:
-:PROPERTIES:
-:BEAMER_act: <presentation>
-:END:
-#+BEAMER: \framesubitile{Модель СС}
-#+BEAMER: \small
-Решить систему нелинейных уравнений
-\begin{equation*}
- K_{i,j,k} =
- \left[
- \displaystyle
- \sum\limits_{l=i}^{q_1}
- \sum\limits_{m=j}^{q_2}
- \sum\limits_{n=k}^{q_3}
- \Theta_{l,m,n}\Theta_{l-i,m-j,n-k}
- \right]
- \Var{\epsilon}
-\end{equation*}
-относительно \(\Theta\) с помощью метода простой итерации:
-\begin{equation*}
- \theta_{i,j,k} =
- -\frac{K_{0,0,0}}{\Var{\epsilon}}
- +
- \sum\limits_{l=i}^{q_1}
- \sum\limits_{m=j}^{q_2}
- \sum\limits_{n=k}^{q_3}
- \Theta_{l,m,n} \Theta_{l-i,m-j,n-k}.
-\end{equation*}
-
-** Критерии выбора моделей АР и СС :noexport:
-Использовать модель АР для стоячих волн и модель СС для прогрессивных.
-#+latex: \newline\newline
-Экспериментальный результат:
-- модели расходятся, если делать наоборот;
-- характеристики взволнованной поверхности соответствуют реальным.
-
** Верификация модели АРСС
:PROPERTIES:
:BEAMER_act: <presentation>
@@ -910,72 +805,6 @@ arma.plot_velocity_potential_field(
волнения, воспроизведенного моделью АРСС, новое решение показывает в среднем на
20% большие значения потенциала скорости вблизи гребней волн.
-** Сравнение с линейной теорией :noexport:
-:PROPERTIES:
-:BEAMER_act: <presentation>
-:END:
-
-*** Columns
-:PROPERTIES:
-:BEAMER_env: columns
-:BEAMER_opt: T
-:END:
-
-**** Линейная теория
-:PROPERTIES:
-:BEAMER_env: block
-:BEAMER_col: 0.4
-:END:
-
-#+begin_export latex
-\includegraphics<1>{velocity-ref-1}
-\includegraphics<2>{velocity-ref-2}
-\includegraphics<3>{velocity-ref-4}
-#+end_export
-
-**** Новая формула
-:PROPERTIES:
-:BEAMER_env: block
-:BEAMER_col: 0.4
-:END:
-
-#+begin_export latex
-\includegraphics<1>{velocity-1}
-\includegraphics<2>{velocity-2}
-\includegraphics<3>{velocity-4}
-#+end_export
-
-** Сравнение с формулой для ВМА :noexport:
-:PROPERTIES:
-:BEAMER_act: <presentation>
-:END:
-
-*** Columns
-:PROPERTIES:
-:BEAMER_env: columns
-:BEAMER_opt: T
-:END:
-
-**** Малая амплитуда
-:PROPERTIES:
-:BEAMER_env: block
-:BEAMER_col: 0.45
-:END:
-[[file:graphics/slides/low-amp-color.eps]]
-
-**** Большая амплитуда
-:PROPERTIES:
-:BEAMER_env: block
-:BEAMER_col: 0.45
-:END:
-[[file:graphics/slides/high-amp-color.eps]]
-
-** Выводы :noexport:
-Метод подходит для
-- дискретно заданной $\zeta(x,y,t)$,
-- волн произвольных амплитуд,
-- произвольной глубины $h=\text{const}$.
-
* Программный комплекс
** Программная реализация
@@ -1319,10 +1148,9 @@ title(xlab="Размер взволнованной поверхности", yla
:END:
#+beamer: \label{slide-validation}
-#+beamer: \small
- Конференции: ISSW'14, HPCS'15, HPCS'16, HPCS'17.
-- Глава в книге The Ocean in Motion (Springer Oceanography).
+- Глава в книге /The Ocean in Motion/ (Springer Oceanography).
*** Columns
:PROPERTIES:
@@ -1332,7 +1160,7 @@ title(xlab="Размер взволнованной поверхности", yla
**** LAMP4
:PROPERTIES:
-:BEAMER_col: 0.30
+:BEAMER_col: 0.25
:BEAMER_env: block
:END:
@@ -1341,7 +1169,7 @@ title(xlab="Размер взволнованной поверхности", yla
**** Ascheduler
:PROPERTIES:
-:BEAMER_col: 0.30
+:BEAMER_col: 0.25
:BEAMER_env: block
:END:
@@ -1350,7 +1178,7 @@ title(xlab="Размер взволнованной поверхности", yla
**** HPCS'15
:PROPERTIES:
-:BEAMER_col: 0.30
+:BEAMER_col: 0.25
:BEAMER_env: block
:END:
diff --git a/arma-slides.org b/arma-slides.org
@@ -0,0 +1,895 @@
+#+TITLE: Simulation modelling of irregular waves for marine object dynamics programmes
+#+AUTHOR: Ivan Gankevich
+#+DATE: St. Petersburg, 2018
+#+LANGUAGE: en
+#+LATEX_CLASS: beamer
+#+LATEX_CLASS_OPTIONS: [14pt,aspectratio=169]
+#+LATEX_HEADER_EXTRA: \input{slides-titlepage}
+#+LATEX_HEADER_EXTRA: \input{slides-preamble}
+#+BEAMER_THEME: SaintPetersburg
+#+OPTIONS: todo:nil title:nil ':t toc:nil H:2
+#+STARTUP: indent
+#+PROPERTY: header-args:R :results graphics :exports results :eval no-export
+
+# Novel modelling of irregular waves for simulating marine object dynamics
+
+#+begin_export latex
+\setbeamertemplate{title page}{%
+ \centering%
+ \vskip1cm\spbuInsertField{title}%
+ \ifx\insertsubtitle\empty\else%
+ \vskip0.5\baselineskip%
+ \spbuInsertField{subtitle}%
+ \fi%
+ \vfill\spbuInsertField{author}%
+ \vfill\spbuInsertField{institute}%
+ \vfill\inserttitlegraphic%
+ \vfill\spbuInsertField{date}%
+}
+\setbeamerfont{block title}{size=\small}
+\setbeamerfont{note page}{size=\footnotesize}
+\setjobnamebeamerversion{arma-slides}
+\mode*
+#+end_export
+
+* Introduction
+:PROPERTIES:
+:BEAMER_env: ignoreheading
+:END:
+
+** Title page
+:PROPERTIES:
+:BEAMER_env: fullframe
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-title}
+#+beamer: \maketitle
+
+** Problem statement
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-problem}
+
+Develop
+- three-dimensional simulation model for sea waves,
+- method for computing pressure field under wavy surface,
+- software suite for shared and distributed memory systems
+which are /alternative/ to their counterparts from linear wave theory.
+
+* Three-dimensional ARMA model
+
+** Three-dimensional ARMA model
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-arma}
+
+\begin{equation*}
+ \rectemph{zeta1}{\zeta_{i,j,k}} =
+ \sum\limits_{l=0}^{p_1}
+ \sum\limits_{m=0}^{p_2}
+ \sum\limits_{n=0}^{p_3}
+ \rectemph{phi}{\Phi_{l,m,n}} \rectemph{zeta2}{\zeta_{i-l,j-m,k-n}}
+ +
+ \sum\limits_{l=0}^{q_1}
+ \sum\limits_{m=0}^{q_2}
+ \sum\limits_{n=0}^{q_3}
+ \rectemph{theta}{\Theta_{l,m,n}} \rectemph{eps}{\epsilon_{i-l,j-m,k-n}}
+\end{equation*}
+
+#+begin_export latex
+\begin{tikzpicture}[remember picture,overlay]
+\node[fill=none,baseline,anchor=south west,xshift=1.1cm,yshift=-1.75cm]
+ (zetaLabel) at (current page.north west)
+ {\scriptsize{}wavy surface elevation};
+\node[fill=none,anchor=south east,xshift=-2cm,yshift=-1.75cm]
+ (epsLabel) at (current page.north east)
+ {\scriptsize{}white noise};
+\node[fill=none,baseline,anchor=north west,below=of phi,yshift=0.2cm]
+ (phiLabel)
+ {\scriptsize{}AR coefficients};
+\node[fill=none,baseline,anchor=north west,below=of theta,yshift=0.2cm]
+ (thetaLabel)
+ {\scriptsize{}MA coefficients};
+\path[->,thick] (zetaLabel.south -| zeta1.north) edge (zeta1.north);
+\path[->,thick] (zetaLabel.south east)
+ edge [transform canvas={xshift=2mm}]
+ (zeta2.north west);
+\path[->,thick] (epsLabel.south -| eps.north west)
+ edge [transform canvas={xshift=2mm}]
+ (eps.north west);
+\path[->,thick] (phiLabel.north -| phi.south west)
+ edge [transform canvas={xshift=2.5mm}]
+ (phi.south west);
+\path[->,thick] (thetaLabel.north -| theta.south west)
+ edge [transform canvas={xshift=2.5mm}]
+ (theta.south west);
+\end{tikzpicture}
+#+end_export
+
+#+BEAMER: \vspace{0.5cm}\pause
+
+#+begin_src dot :exports results :file build/arma-pipeline.pdf
+digraph G {
+
+ node [
+ fontname="Open Sans",
+ fontsize=10,
+ margin="0.055,0",
+ shape=box,
+ fillcolor="#E5E6E5",
+ style="filled",
+ height="0.37",
+ color="#404040"
+ ]
+ graph [nodesep="0.25",ranksep="0.30",rankdir="LR" margin=0]
+ edge [arrowsize=0.66,color="#404040"]
+ bgcolor="#F5F6F5"
+
+ acf [label="ACF"]
+ yule_walker_equations [label="Yule—Walker\nequations"]
+ nonlinear_equations [label="Nonlinear\nequations"]
+ ar_process [label="AR\nmodel"]
+ ma_process [label="MA\nmodel"]
+ arma_process [label="ARMA\nmodel"]
+
+ acf->yule_walker_equations->ar_process->arma_process
+ acf->nonlinear_equations->ma_process->arma_process
+
+}
+#+end_src
+
+#+RESULTS:
+[[file:build/arma-pipeline.pdf]]
+
+** Wavy sea surface ACF
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-acf}
+
+*** Columns
+:PROPERTIES:
+:BEAMER_env: columns
+:END:
+
+**** Column 1
+:PROPERTIES:
+:BEAMER_col: 1.00
+:END:
+
+#+latex: \vspace{-0.5cm}
+#+begin_src dot :exports results :file build/acf-pipeline.pdf
+digraph G {
+
+ node [
+ fontname="Open Sans",
+ fontsize=10,
+ margin="0.055,0",
+ shape=box,
+ fillcolor="#E5E6E5",
+ style="filled",
+ color="#404040"
+ ]
+ graph [nodesep="0.25",ranksep="0.20",rankdir="TB" margin=0]
+ edge [arrowsize=0.66,color="#404040"]
+ bgcolor="#F5F6F5"
+
+ function [label="Wavy surface\nformula",height="0.40"]
+ discrete_function [label="Discrete\nwavy surface",height="0.40"]
+ field_data [label="Field\ndata",width="1.1",height="0.40"]
+ theorem [label="Wiener—Khinchin theorem",height="0.20"]
+ acf [label="ACF",height="0.20"]
+
+ function->theorem
+ discrete_function->theorem
+ field_data->theorem
+ theorem->acf
+
+}
+#+end_src
+
+#+RESULTS:
+[[file:build/acf-pipeline.pdf]]
+
+*** Separator
+:PROPERTIES:
+:BEAMER_env: ignoreheading
+:END:
+
+*** Columns
+:PROPERTIES:
+:BEAMER_env: columns
+:BEAMER_opt: T
+:END:
+
+**** Column 1
+:PROPERTIES:
+:BEAMER_col: 0.30
+:END:
+
+#+header: :width 1.7 :height 1.2 :bg #F5F6F5 :font sans
+#+begin_src R :file build/acf-propagating-plain-wave.pdf
+source(file.path("R", "common.R"))
+par(mar=c(0,0.5,0,0))
+df <- data.frame(t=rep(NA,0), x=rep(NA,0), y=rep(NA,0), z=rep(NA,0))
+n <- 20
+grid <- seq(1, n)
+alpha <- 2.13975
+beta <- 0.77341
+gamm <- 0.549017
+for (i in grid) {
+ for (j in grid) {
+ x <- i/(n-1)
+ y <- j/(n-1)
+ z <- gamm * exp(-alpha*(x+y)) * cos(beta*(x+y))
+ df[nrow(df) + 1,] <- c(0,i,j,z)
+ }
+}
+arma.wavy_plot(df, 0, zlim=c(0,0.5), expand=0.5, border=NA)
+#+end_src
+
+#+caption: Plain wave
+#+RESULTS:
+[[file:build/acf-propagating-plain-wave.pdf]]
+
+
+**** Column 2
+:PROPERTIES:
+:BEAMER_col: 0.35
+:END:
+
+#+header: :width 1.7 :height 1.2 :bg #F5F6F5 :font sans
+#+begin_src R :file build/acf-standing-plain-wave.pdf
+source(file.path("R", "common.R"))
+par(mar=c(0,0.5,0,0))
+df <- data.frame(t=rep(NA,0), x=rep(NA,0), y=rep(NA,0), z=rep(NA,0))
+n <- 20
+grid <- seq(1, n)
+alpha <- 2.31906
+beta <- -5.49873
+gamm <- 0.0680413
+for (i in grid) {
+ for (j in grid) {
+ x <- i/(n-1)
+ y <- j/(n-1)
+ z <- gamm * exp(-alpha*(x+y)) * cos(beta*x) * cos(beta*y)
+ df[nrow(df) + 1,] <- c(0,i,j,z)
+ }
+}
+arma.wavy_plot(df, 0, zlim=c(-0.05,0.05), expand=0.5, border=NA)
+#+end_src
+
+#+caption: Plain standing wave
+#+RESULTS:
+[[file:build/acf-standing-plain-wave.pdf]]
+
+**** Column 3
+:PROPERTIES:
+:BEAMER_col: 0.30
+:END:
+
+#+header: :width 1.7 :height 1.2 :bg #F5F6F5 :font sans
+#+begin_src R :file build/acf-propagating-stokes-wave.pdf
+source(file.path("R", "common.R"))
+par(mar=c(0,0.5,0,0))
+df <- data.frame(t=rep(NA,0), x=rep(NA,0), y=rep(NA,0), z=rep(NA,0))
+n <- 40
+alpha <- 0.5
+grid <- seq(1, n)
+k <- 0.77341
+t <- 0
+omega <- 0.3
+a <- 1.5
+for (i in grid) {
+ for (j in grid) {
+ x <- i/(n-1)
+ y <- j/(n-1)
+ theta <- k*(x + y) - omega*t
+ z <- a * exp(-alpha*(x+y)) * (cos(theta) + 0.5*k*a*cos(2*theta) + (3/8)*(k*a*k*a)*cos(3*theta))
+ df[nrow(df) + 1,] <- c(0,i,j,z)
+ }
+}
+arma.acf_plot(df, 0, zlim=c(0,1.0), expand=0.5, border=NA)
+#+end_src
+
+#+caption: Stokes wave
+#+RESULTS:
+[[file:build/acf-propagating-stokes-wave.pdf]]
+
+** ARMA model verification
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-arma-verification}
+
+*** Standing waves
+:PROPERTIES:
+:BEAMER_col: 0.47
+:BEAMER_opt: T
+:END:
+
+#+latex: \vspace{-1cm}
+#+header: :width 2.7 :height 2.7 :bg #F5F6F5 :font sans
+#+begin_src R :file build/standing-wave-qqplots-slides.pdf
+source(file.path("R", "common.R"))
+par(pty="s", mfrow=c(2, 2), mar=c(1,1,1,0), mgp=c(3,0.3,0), cex=0.6, fg='black', col='navy')
+arma.qqplot_grid_adj(
+ file.path("build", "arma-benchmarks", "verification-orig", "standing_wave"),
+ c("elevation", "heights_y", "lengths_y", "periods"),
+ c("elevation", "height", "length", "period"),
+ 0.1,
+ xlab="x",
+ ylab="y",
+ tck=0.04
+)
+#+end_src
+
+#+caption: Standing plain waves
+#+RESULTS:
+[[file:build/standing-wave-qqplots-slides.pdf]]
+
+
+*** Propagating waves
+:PROPERTIES:
+:BEAMER_col: 0.47
+:BEAMER_opt: T
+:END:
+
+#+latex: \vspace{-1cm}
+#+header: :width 2.7 :height 2.7 :bg #F5F6F5 :font sans
+#+begin_src R :file build/propagating-wave-qqplots-slides.pdf
+source(file.path("R", "common.R"))
+par(pty="s", mfrow=c(2, 2), mar=c(1,1,1,0), mgp=c(3,0.3,0), cex=0.6, col='navy')
+arma.qqplot_grid_adj(
+ file.path("build", "arma-benchmarks", "verification-orig", "propagating_wave"),
+ c("elevation", "heights_y", "lengths_y", "periods"),
+ c("elevation", "height", "length", "period"),
+ 0.1,
+ xlab="x",
+ ylab="y",
+ tck=0.04
+)
+#+end_src
+
+#+caption: Propagating plain waves
+#+RESULTS:
+[[file:build/propagating-wave-qqplots-slides.pdf]]
+
+
+* Pressure field under discretely given wavy surface
+
+** Velocity potential equations
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \footnotesize
+#+beamer: \label{slide-potential-flow}
+#+begin_export latex
+\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
+\vspace{-\baselineskip}%
+\begin{align*}%
+ & \nabla^2\phi = 0
+ & \text{continuity equation}
+ \\
+ & \phi_t+\frac{1}{2} |\vec{\upsilon}|^2 + g\zeta=-\frac{p}{\rho}
+ & \text{dynamic BC for }z=\zeta(x,y,t)
+ \\
+ & D\zeta = \nabla \phi \cdot \vec{n}
+ & \text{kinematic BC for }z=\zeta(x,y,t)\\
+\end{align*}%
+\vspace{-2.5\baselineskip}%
+\end{beamercolorbox}%
+%
+\pause%
+%
+\spbuArrow{}%
+\vspace{-0.2cm}%
+%
+\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
+\vspace{-\baselineskip}%
+\begin{align*}%
+ & \phi_{xx} + \phi_{yy} + \phi_{zz} = 0\\
+ & \zeta_t
+ = \underbrace{\fillrectemph{f1}{\left(\FracSqrtZetaY{\zeta_x} - \zeta_x\right)}}_{f_1} \phi_x
+ + \underbrace{\fillrectemph{f2}{\left(\FracSqrtZetaY{\zeta_y} - \zeta_y\right)}}_{f_2} \phi_y
+ - \underbrace{\fillrectemph{f3}{\FracSqrtZetaY{1}}}_{f_3} \phi_z \\
+\end{align*}%
+\vspace{-2.7\baselineskip}%
+\end{beamercolorbox}%
+%
+\pause%
+#+end_export
+
+*** Columns
+:PROPERTIES:
+:BEAMER_env: columns
+:BEAMER_opt: T
+:END:
+
+**** Column 1
+:PROPERTIES:
+:BEAMER_col: 0.47
+:END:
+#+begin_export latex
+\vspace{-\baselineskip}%
+\spbuArrow{}%
+\vspace{-1.3\baselineskip}%
+\begingroup%
+\setlength\abovedisplayskip{1mm}%
+\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
+Linear wave theory solution:%
+\begin{equation*}%
+\phi(x,y,z,t) = \mathcal{W}_1(x,y,z) \mathrel{*} \left(-\zeta_t(x,y,t)\right)
+\end{equation*}%
+\vspace{-1.5\baselineskip}%
+\end{beamercolorbox}%
+\endgroup%
+#+end_export
+
+**** Column 2
+:PROPERTIES:
+:BEAMER_col: 0.47
+:END:
+#+begin_export latex
+\vspace{-\baselineskip}%
+\spbuArrow{}%
+\vspace{-1.3\baselineskip}%
+\begingroup%
+\setlength\abovedisplayskip{1mm}%
+\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
+Generic solution:\vspace{-0.5\baselineskip}%
+\begin{equation*}%
+ \phi(x,y,z,t)
+ =
+ \mathcal{W}_2(x,y,z)
+ \mathrel{*}
+% \frac{\zeta_t(x,y,t)}{i f_1(x,y,t) + i f_2(x,y,t) - f_3(x,y,t)}
+ \frac{\zeta_t(x,y,t)}{F\left(f_1, f_2, f_3\right)}
+% & \mathcal{W}_1 \approx \mathcal{W}_2
+\end{equation*}%
+\vspace{-1.35\baselineskip}%
+\end{beamercolorbox}%
+\endgroup%
+#+end_export
+
+** Pressure computation verification
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-potential-verification}
+
+*** Columns
+:PROPERTIES:
+:BEAMER_env: columns
+:BEAMER_opt: T
+:END:
+
+**** Column 1
+:PROPERTIES:
+:BEAMER_col: 0.47
+:END:
+
+#+beamer: \vspace{-0.5cm}
+#+header: :width 2.7 :height 1.5 :bg #F5F6F5 :font sans
+#+begin_src R :file build/slides-plain-wave-velocity-field-comparison.pdf
+source(file.path("R", "velocity-potentials.R"))
+nlevels <- 41
+levels <- pretty(c(-200,200), nlevels)
+palette <- colorRampPalette(c("blue", "lightyellow", "red"))
+col <- palette(nlevels-1)
+
+par(pty="s",mgp=c(3,0.2,0),mfrow=c(1,2),mar=c(1.5,1,0,0),cex=0.66,bty="n")
+
+# linear solver
+#par(fig=c(0,0.95,0,0.5),new=TRUE)
+arma.plot_velocity_potential_field(
+ file.path("build", "arma-benchmarks", "verification-orig", "plain_wave_linear_solver"),
+ levels=levels,
+ col=col,
+ contour_lwd=0.5,
+ zeta_lwd=1,
+ sky_col='#F5F6F5',
+ axis_args=list(tck=-0.02),
+ z_min=-5,
+ title_args=list(main=" Linear wave\n theory",outer=FALSE,adj=0,line=-1.5,cex.main=0.77)
+)
+
+# high-amplitude solver
+#par(fig=c(0,0.95,0.5,1),new=TRUE)
+arma.plot_velocity_potential_field(
+ file.path("build", "arma-benchmarks", "verification-orig", "plain_wave_high_amplitude_solver"),
+ levels=levels,
+ col=col,
+ contour_lwd=0.5,
+ zeta_lwd=1,
+ sky_col='#F5F6F5',
+ axis_args=list(tck=-0.02),
+ z_min=-5,
+ title_args=list(main=" Generic\n solution",outer=FALSE,adj=0,line=-1.5,cex.main=0.77)
+)
+#+end_src
+
+#+RESULTS:
+[[file:build/slides-plain-wave-velocity-field-comparison.pdf]]
+
+**** Column 2
+:PROPERTIES:
+:BEAMER_col: 0.47
+:END:
+
+#+beamer: \vspace{-0.5cm}
+#+header: :width 2.7 :height 1.3 :bg #F5F6F5 :font sans
+#+begin_src R :file build/slides-large-and-small-amplitude-velocity-field-comparison.pdf
+source(file.path("R", "velocity-potentials.R"))
+linetypes = c("solid", "dashed")
+par(pty="s",mgp=c(3,0.3,0),mfrow=c(1,2),mar=c(1.5,1,0,0),cex=0.66,bty="n")
+arma.plot_velocity(
+ file.path("data", "velocity", "low-amp"),
+ file.path("data", "velocity", "low-amp-0"),
+ linetypes=linetypes,
+ ylim=c(-2,2),
+ axis_args=list(tck=-0.04),
+ title_args=list(main=" Small\n amplitude",outer=FALSE,adj=0,line=-1.5,cex.main=0.77),
+ legend_x="bottomright"
+)
+arma.plot_velocity(
+ file.path("data", "velocity", "high-amp"),
+ file.path("data", "velocity", "high-amp-0"),
+ linetypes=linetypes,
+ ylim=c(-2,2),
+ title_args=list(main="Large\n amplitude",outer=FALSE,adj=1,line=-1.5,cex.main=0.77),
+ axis_args=list(tck=-0.04),
+ legend_x="bottomright"
+)
+#+end_src
+
+#+RESULTS:
+[[file:build/slides-large-and-small-amplitude-velocity-field-comparison.pdf]]
+
+
+*** End column
+:PROPERTIES:
+:BEAMER_env: ignoreheading
+:END:
+
+#+header: :width 5.5 :height 1.3 :bg #F5F6F5 :font sans
+#+begin_src R :file build/slides-irregular-wave-velocity-field.pdf
+source(file.path("R", "velocity-potentials.R"))
+nlevels <- 41
+levels <- pretty(c(-40,40), nlevels)
+palette <- colorRampPalette(c("blue", "lightyellow", "red"))
+col <- palette(nlevels-1)
+
+par(mgp=c(3,0.2,0),mar=c(1.5,1,0,0),cex=0.66,bty="n")
+
+# high-amplitude solver
+arma.plot_velocity_potential_field(
+ file.path("build", "arma-benchmarks", "verification", "velocity", "our-formula"),
+ levels=levels,
+ col=col,
+ contour_lwd=0.5,
+ zeta_lwd=1,
+ sky_col='#F5F6F5',
+ axis_args=list(tck=-0.02),
+ x_max=40,
+ z_min=-5,
+ compare_to=file.path("build", "arma-benchmarks", "verification", "velocity", "linear"),
+ points_args=list(col="black",bg="black",pch=21,cex=1.5),
+ title_args=list(main=" Irregular waves",outer=FALSE,adj=0.01,line=-1.5,cex.main=0.77)
+)
+#+end_src
+
+#+RESULTS:
+[[file:build/slides-irregular-wave-velocity-field.pdf]]
+
+
+* Software suite
+
+** Software implementation
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-implementation}
+
+#+begin_export latex
+\tikzset{Ann/.style={
+ fill=none,
+ baseline,
+ font=\footnotesize\linespread{1}\selectfont,
+}}%
+\tikzset{Cube/.style={
+ rectangle,
+ text width=0.7cm,
+ text height=0.7cm,
+ draw=spbuDarkGray,
+ fill=spbuWhite2,
+ thick,
+ font=\footnotesize\linespread{1}\selectfont,
+ align=center,
+ inner sep=0.5mm
+}}%
+\tikzset{CubeText/.style={
+ fill=none,
+ baseline,
+ font=\footnotesize\linespread{1}\selectfont,
+ inner sep=0mm
+}}%
+\tikzset{DataBlock/.style={
+ rectangle,
+ draw=spbuDarkGray,
+ thick,
+ text width=2cm,
+ align=center,
+ fill=spbuWhite2,
+ font=\footnotesize\linespread{1}\selectfont,
+ inner sep=1mm
+}}%
+\tikzset{Arrow/.style={
+ very thick,
+ arrows={-Triangle[length=0.25cm,width=0.125cm]},
+ draw=spbuDarkGray
+}}%
+\tikzset{Dashed/.style={
+ very thick,
+ draw=spbuDarkGray2,
+ dashed
+}}%
+\vspace{2cm}
+\begin{tikzpicture}[x=3cm,y=1cm,remember picture]
+% nodes
+\node[DataBlock,text width=1.2cm] (umlACF) at (0,0)
+ {ACF};
+\node[DataBlock,text width=2.6cm] (umlYW) at (1.1,0.8)
+ {AR coefficients};
+\node[DataBlock,text width=2.6cm] (umlNonlin) at (1.1,-0.8)
+ {MA coefficients};
+\node[DataBlock,text width=1.5cm] (umlAR) at (2.1,0.8)
+ {AR model};
+\node[DataBlock,text width=1.5cm] (umlMA) at (2.1,-0.8)
+ {MA model};
+\node[DataBlock,text width=1.5cm] (umlARMA) at (3.1,0)
+ {ARMA model};
+\node[DataBlock] (umlPres) at (4.1,0)
+ {Pressures};
+% arrows
+\path[Arrow] (umlACF.east) -- (umlYW.west);
+\path[Arrow] (umlACF.east) -- (umlNonlin.west);
+\path[Arrow] (umlYW.east) -- (umlAR.west);
+\path[Arrow] (umlNonlin.east) -- (umlMA.west);
+\path[Arrow] (umlAR.east) -- (umlARMA.west);
+\path[Arrow] (umlMA.east) -- (umlARMA.west);
+\path[Arrow] (umlARMA.east) -- (umlPres.west);
+\end{tikzpicture}
+#+end_export
+
+#+begin_export latex
+\begin{tikzpicture}[remember picture,overlay]
+% cubes
+\node[Cube,anchor=north west,yshift=-1.2cm,xshift=-3.5cm]
+ (cube00) at (current page.north east) {};
+\node[Cube,right=-0.5mm of cube00] (cube01) {};
+\node[Cube,below=-0.5mm of cube00] (cube10) {};
+\node[Cube,below=-0.5mm of cube01] (cube11) {};
+% cube labels
+\node[CubeText] (cubeLabel00) at (cube00) {A};
+\node[CubeText] (cubeLabel01) at (cube01) {B};
+\node[CubeText] (cubeLabel10) at (cube10) {C};
+\node[CubeText] (cubeLabel11) at (cube11) {D};
+% cube arrows
+\path[Arrow] (cubeLabel01.west) -- (cubeLabel00.east);
+\path[Arrow] (cubeLabel10.north) -- (cubeLabel00.south);
+\path[Arrow] (cubeLabel11.north west) -- (cubeLabel00.south east);
+\path[Arrow] (cubeLabel11.north) -- (cubeLabel01.south);
+\path[Arrow] (cubeLabel11.west) -- (cubeLabel10.east);
+\end{tikzpicture}
+#+end_export
+
+#+begin_export latex
+\begin{tikzpicture}[remember picture,overlay]
+% nodes
+\node[Ann,anchor=north,below=of umlACF] (annACF)
+ {Convolution (\(2\mathcal{F}\))};
+\node[Ann,anchor=north,above=of umlYW,align=center] (annYW)
+ {Symmetric system\\of linear equations};
+\node[Ann,anchor=north,below=of umlNonlin] (annNonlin)
+ {Thomas algorithm};
+\node[Ann,anchor=north,below=of umlMA,yshift=\baselineskip] (annMA)
+ {Convolution (\(3\mathcal{F}\))};
+\node[Ann,anchor=north,below=of umlPres] (annPres)
+ {Convolution (\(4\mathcal{F}\))};
+\node[Ann,anchor=south,above=of umlAR,align=center,yshift=1.5\baselineskip] (annAR)
+ {Minimalistic job scheduler};
+\node[Ann,anchor=north,below=1mm of cube11.south west,align=center] (annARdeps)
+ {Autoregressive\\dependencies};
+% arrows
+\path[Dashed] (annACF.north -| umlACF.south) -- (umlACF.south);
+\path[Dashed] (annNonlin.north -| umlNonlin.south) -- (umlNonlin.south);
+\path[Dashed] (annYW.south -| umlYW.north) -- (umlYW.north);
+\path[Dashed] (annAR.south) -- (umlAR.north);
+\path[Dashed] (cube00.west |- annAR.east) -- (annAR.east);
+\path[Dashed] (annMA.north -| umlMA.south) -- (umlMA.south);
+\path[Dashed] (annPres.north -| umlPres.south) -- (umlPres.south);
+\end{tikzpicture}
+#+end_export
+
+** Shared memory system
+:PROPERTIES:
+:header-args:R: :results output raw :exports results
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-smp}
+
+#+beamer: \small
+#+header: :results output raw :exports results
+#+name: tab-arma-performance
+#+begin_src R :results output org :exports results
+source(file.path("R", "benchmarks.R"))
+options(arma.mark=",")
+model_names <- list(
+ ar.x="AR",
+ ma.x="MA",
+ lh.x="LH",
+ ar.y="AR",
+ ma.y="MA",
+ lh.y="LH",
+ Row.names="\\orgcmidrule{2-4}{5-6}Subroutine"
+)
+row_names <- list(
+ determine_coefficients="Coefficients",
+ validate="Validation",
+ generate_surface="Wavy surface",
+ write_all="File output",
+ copy_to_host="Copy data from GPU",
+ velocity="Pressures"
+)
+arma.print_openmp_vs_opencl(model_names, row_names)
+#+end_src
+
+#+attr_latex: :booktabs t
+#+RESULTS: tab-arma-performance
+
+{\hfill\footnotesize{}LH --- Longuet---Higgins model.}
+
+** Distributed memory system
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-mpp}
+
+*** Columns
+:PROPERTIES:
+:BEAMER_env: columns
+:BEAMER_opt: T
+:END:
+
+**** Column 1
+:PROPERTIES:
+:BEAMER_col: 0.37
+:END:
+
+#+beamer: \vspace{-1cm}
+#+header: :width 2.3 :height 3 :bg #F5F6F5 :font sans
+#+begin_src R :file build/slides-bscheduler-performance.pdf
+source(file.path("R", "benchmarks.R"))
+par(mgp=c(1.5,0.4,0), mar=c(3.2,2.5,0.5,0.7), cex=0.7)
+data <- arma.load_bscheduler_performance_data()
+arma.plot_bscheduler_performance_data(
+ data,
+ list(
+ openmp="OpenMP",
+ bsc1="Bscheduler (single node)",
+ bsc2="Bscheduler (two nodes)",
+ openmp_args=list(lty="solid", lwd=2, col='#404040', pch=19),
+ bsc1_args=list(lty="solid", lwd=2, col='#5353AC', pch=19),
+ bsc2_args=list(lty="solid", lwd=2, col='#E57575', pch=19)
+ )
+)
+title(xlab="Wavy surface size", ylab="Time, s")
+#+end_src
+
+#+RESULTS:
+[[file:build/slides-bscheduler-performance.pdf]]
+
+**** Column 2
+:PROPERTIES:
+:BEAMER_col: 0.57
+:END:
+
+#+beamer: \vspace{-1cm}
+#+name: fig-master-slave-failure
+#+header: :width 3 :height 3 :bg #F5F6F5 :font sans
+#+begin_src R :file build/slides-master-slave-failure.pdf
+source(file.path("R", "benchmarks.R"))
+par(mgp=c(1.5,0.4,0), mar=c(3,2.5,0.5,0.5), cex=0.7)
+data <- arma.load_master_slave_failure_data()
+arma.plot_master_slave_failure_data(
+ data,
+ list(
+ master="Bscheduler (master failure)",
+ slave="Bscheduler (slave failure)",
+ nofailures="Bscheduler (no failures)",
+ master_args=list(lty="solid", lwd=2, col='#E57575', pch=19),
+ slave_args=list(lty="solid", lwd=2, col='#5353AC', pch=19),
+ nofailures_args=list(lty="solid", lwd=2, col='#404040', pch=19)
+ )
+)
+title(xlab="Wavy surface size", ylab="Time, s")
+#+end_src
+
+#+RESULTS: fig-master-slave-failure
+[[file:build/slides-master-slave-failure.pdf]]
+
+* Conclusion
+:PROPERTIES:
+:BEAMER_env: ignoreheading
+:END:
+
+** Conclusion
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-conclusion}
+
+The following items were developed in the course of the study.
+- Three-dimensional model for arbitrary-amplitude waves generation.
+- Pressure field computation method without small-amplitude waves assumption.
+- Software suite for shared and distributed memory systems.
+
+** Approbation
+:PROPERTIES:
+:BEAMER_act: <presentation>
+:END:
+
+#+beamer: \label{slide-validation}
+
+- International conferences: ISSW'14, HPCS'15, HPCS'16, HPCS'17.
+- Book chapter in /The Ocean in Motion/ (Springer Oceanography).
+
+*** Columns
+:PROPERTIES:
+:BEAMER_env: columns
+:BEAMER_opt: T
+:END:
+
+**** LAMP4
+:PROPERTIES:
+:BEAMER_col: 0.25
+:BEAMER_env: block
+:END:
+
+#+ATTR_LATEX: :width \linewidth
+[[file:graphics/slides/lamp4-ar-waves.png]]
+
+**** Ascheduler
+:PROPERTIES:
+:BEAMER_col: 0.25
+:BEAMER_env: block
+:END:
+
+#+ATTR_LATEX: :width \linewidth
+[[file:graphics/slides/spark-logo.png]]
+
+**** HPCS'15
+:PROPERTIES:
+:BEAMER_col: 0.25
+:BEAMER_env: block
+:END:
+
+#+ATTR_LATEX: :width \linewidth
+[[file:graphics/slides/hpcs-15-poster-paper-award.png]]
+
+#+latex: \setbeamerfont{block title}{size=\normalsize}
+
diff --git a/slides-preamble.tex b/slides-preamble.tex
@@ -1,15 +1,3 @@
-\titlegraphic{%
- \begin{minipage}{0.9\textwidth}%
- \scriptsize%
- \begin{tabular}{p{0.45\textwidth}p{0.45\textwidth}}%
- \hfill Научный руководитель: & д.т.н. Дегтярев А.Б.\\
- \hfill Специальность 05.13.18: & мат. моделирование,\\
- & численные методы\\
- & и комплексы программ \\
- \end{tabular}%
- \end{minipage}%
-}
-
\usepackage{booktabs}
\usepackage{caption}
diff --git a/slides-titlepage-ru.tex b/slides-titlepage-ru.tex
@@ -0,0 +1,11 @@
+\titlegraphic{%
+ \begin{minipage}{0.9\textwidth}%
+ \scriptsize%
+ \begin{tabular}{p{0.45\textwidth}p{0.45\textwidth}}%
+ \hfill Научный руководитель: & д.т.н. Дегтярев А.Б.\\
+ \hfill Специальность 05.13.18: & мат. моделирование,\\
+ & численные методы и\\
+ & комплексы программ \\
+ \end{tabular}%
+ \end{minipage}%
+}
diff --git a/slides-titlepage.tex b/slides-titlepage.tex
@@ -0,0 +1,11 @@
+\titlegraphic{%
+ \begin{minipage}{0.9\textwidth}%
+ \scriptsize%
+ \begin{tabular}{p{0.45\textwidth}p{0.45\textwidth}}%
+ \hfill Supervisor & Alexander Degtyarev, ScD\\
+ \hfill Speciality 05.13.18: & mathematical modelling,\\
+ & numerical methods and\\
+ & programme complexes \\
+ \end{tabular}%
+ \end{minipage}%
+}