arma-thesis

git clone https://git.igankevich.com/arma-thesis.git
Log | Files | Refs | LICENSE

commit db69bb3fccdf5982a557531c93f8ff36cf9bdfa7
parent 8ddfe57c47f749a0dd4a1811ad294f727363b09e
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Sat, 23 Jun 2018 11:26:31 +0300

Make targets language-specific.

Diffstat:
Makefile | 71++++++++++++++++++++++++++++++++++++++++-------------------------------
arma-abstract-ru.org | 45+++++++++++++++++++++++++++++++++++++++++++++
arma-review-ru.org | 248+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
arma-review.org | 248-------------------------------------------------------------------------------
arma-slides-ru.org | 1341+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
arma-slides.org | 1341-------------------------------------------------------------------------------
arma-thesis-ru.org | 2++
arma-thesis.org | 2++
gost.cls | 2+-
9 files changed, 1679 insertions(+), 1621 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,9 +1,12 @@ -PHD_RU = arma-thesis-ru -PHD_EN = arma-thesis -SLIDES = arma-slides -SLIDES_WITH_NOTES = $(SLIDES)-with-notes -REVIEW = arma-review -FLAGS = -interaction=nonstopmode \ +THESIS_RU = arma-thesis-ru +THESIS_EN = arma-thesis +SLIDES_RU = arma-slides-ru +NOTES_RU = arma-notes-ru +REVIEW_RU = arma-review-ru +ABSTRACT_RU = arma-abstract-ru + +FLAGS = \ + -interaction=nonstopmode \ -output-directory=build \ -pdf \ -xelatex \ @@ -12,45 +15,51 @@ FLAGS = -interaction=nonstopmode \ export TEXINPUTS=$(PWD)//: -all: build/$(PHD_RU).pdf build/$(PHD_EN).pdf build/$(SLIDES).pdf build/$(SLIDES_WITH_NOTES).pdf +all: build build/$(THESIS_RU).pdf build/$(THESIS_EN).pdf build/$(SLIDES_RU).pdf build/$(NOTES_RU).pdf + +build/$(THESIS_RU).pdf: build/$(THESIS_RU).tex preamble.tex bib/* + -latexmk $(FLAGS) -f $< -build/$(PHD_RU).pdf: $(PHD_RU).tex preamble.tex bib/* - latexmk $(FLAGS) -f $(PHD_RU).tex - true +build/$(THESIS_EN).pdf: build/$(THESIS_EN).tex preamble.tex bib/* + -latexmk $(FLAGS) -f $< -build/$(PHD_EN).pdf: $(PHD_EN).tex preamble.tex bib/* - latexmk $(FLAGS) -f $(PHD_EN).tex - true +build/$(SLIDES_RU).pdf: build/$(SLIDES_RU).tex slides-preamble.tex math.tex fonts.tex org.tex + -latexmk $(FLAGS) -f $< -build/$(SLIDES).pdf: $(SLIDES).tex slides-preamble.tex math.tex - latexmk $(FLAGS) -f $(SLIDES).tex - true +build/$(NOTES_RU).pdf: build/$(NOTES_RU).tex build/$(SLIDES_RU).pdf slides-preamble.tex math.tex fonts.tex + -latexmk $(FLAGS) -f $< -build/$(SLIDES_WITH_NOTES).pdf: $(SLIDES_WITH_NOTES).tex slides-preamble.tex math.tex - latexmk $(FLAGS) -f $(SLIDES_WITH_NOTES).tex - true +build/$(REVIEW_RU).pdf: build/$(REVIEW_RU).tex preamble.tex math.tex fonts.tex + -latexmk $(FLAGS) -f $< -build/$(REVIEW).pdf: $(REVIEW).tex preamble.tex math.tex fonts.tex - latexmk $(FLAGS) -f $(REVIEW).tex - true +build/$(ABSTRACT_RU).odt: $(ABSTRACT_RU).org + org export $< odt + mv -v $(ABSTRACT_RU).odt build/$(ABSTRACT_RU).odt -$(PHD_EN).tex: $(PHD_EN).org +build/$(THESIS_EN).tex: $(THESIS_EN).org org export $< latex -$(PHD_RU).tex: $(PHD_RU).org +build/$(THESIS_RU).tex: $(THESIS_RU).org org export $< latex -$(SLIDES).tex: $(SLIDES).org +build/$(SLIDES_RU).tex: $(SLIDES_RU).org org export $< beamer -$(REVIEW).tex: $(REVIEW).org +build/$(REVIEW_RU).tex: $(REVIEW_RU).org org export $< latex -$(SLIDES_WITH_NOTES).tex: $(SLIDES).tex - sed -r -e 's/\\documentclass\[(.*)\]\{(.*)\}/\\documentclass[\1]{article}\\usepackage[\1]{beamerarticle}\\include{fonts}/g' < $< > $@ +build/$(NOTES_RU).tex: build/$(SLIDES_RU).tex + sed -r -e 's/\\documentclass\[(.*)\]\{(.*)\}/\\documentclass[\1]{article}\\usepackage{beamerarticle}\\include{fonts}/g' < $< > $@ #sed -r -e 's/\\documentclass\[(.*)\]\{(.*)\}/\\documentclass[\1,notes]{\2}/g' < $< > $@ clean: - rm -f build/$(PHD_EN)* - rm -f build/$(PHD_RU)* - rm -f build/$(SLIDES)* + rm -f build/$(THESIS_EN)* + rm -f build/$(THESIS_RU)* + rm -f build/$(SLIDES_RU)* + rm -f build/$(NOTES_RU)* + rm -f build/$(REVIEW_RU)* + +build: + @mkdir -p build + +.PHONY: clean all build diff --git a/arma-abstract-ru.org b/arma-abstract-ru.org @@ -0,0 +1,45 @@ +#+title: ГАНКЕВИЧ ИВАН ГЕННАДЬЕВИЧ +#+subtitle: Тема диссертации: “Имитационное моделирование нерегулярного волнения для программ динамики морских объектов” +#+language: ru +#+options: toc:nil author:nil date:nil + +* РЕФЕРАТ ДИССЕРТАЦИИ + +Программы, моделирующие поведение судна на морских волнах, широко применяются +для расчета качки судна, оценки величины воздействия внешних сил на плавучую +платформу или другой морской объект, а также для оценки вероятности +опрокидывания судна при заданных погодных условиях; однако, большинство из них +используют линейную теорию для моделирования морского волнения, в рамках которой +сложно воспроизвести определенные особенности ветро-волнового климата. Цель +данного исследования заключается в изучении и разработке математических моделей +и численных методов, которые бы позволили выйти за рамки линейной теории волн в +задаче имитационного моделирования морского волнения и стать альтернативами +моделям и методам, основанных на этой теории. В рамках данного исследования была +разработана трехмерная имитационная математическая модель морского волнения на +основе статистической модели авторегрессии скользящего среднего, метод +вычисления поля давлений под взволнованной морской поверхностью на основе +решения уравнений для несжимаемой невязкой жидкости методом Фурье и программный +комплекс, реализующий модель и метод, для систем с общей и распределенной +памятью. Разработанные средства позволяют моделировать волны произвольных +амплитуд и профилей и определять величину их воздействия на морские объекты, а +программный комплекс является основой для построения виртуального +полигона\nbsp{}--- универсального инструмента моделирования поведения морских +объектов в открытом океане. + +* КОДЫ ГРНТИ + +27.31.44 Краевые задачи. Общая теория\\ +27.35.21 Математические модели гидродинамики\\ +27.41.19 Численные методы решения дифференциальных и интегральных уравнений\\ +27.43.51 Применение теоретико-вероятностных и статистических методов\\ +29.17.19 Жидкости\\ +37.25.21 Ветровые, длинные неприливные и внутренние волны\\ +50.41.25 Прикладное программное обеспечение + +* КЛЮЧЕВЫЕ СЛОВА + +авторегрессия, скользящее среднее, быстрое преобразование Фурье, потенциальное +течение, метод Фурье, имитационное моделирование, нерегулярное волнение, +стохастический процесс, взволнованная поверхность, поле потенциала скорости, +поле давлений, линейная теория волн, теория волн малой амплитуды + diff --git a/arma-review-ru.org b/arma-review-ru.org @@ -0,0 +1,248 @@ +#+title: Ответы на вопросы рецензентов диссертации “Имитационное моделирование нерегулярного волнения для программ динамики морских объектов” +#+language: ru +#+options: num:nil toc:nil author:nil date:nil +#+latex_header_extra: \input{preamble} + +* Овсянников Дмитрий Александрович + +#+begin_quote +В формулах 18 и 24 потерян знаменатель в правой части уравнения, который, +однако, присутствует в формуле из приложения 10.2. +#+end_quote + +В формулах 18 и 24 действительно потерян знаменатель в правой части уравнения. +Эта ошибка была замечена уже после сдачи работы. Тестирование программного +комплекса с исправленной формулой не показало качественно новых результатов. + +#+begin_quote +Так ли нужен знаменатель в этих формулах, содержащий квадраты пространственных +производных, которые малы для океанских волн, поскольку их длина в несколько раз +больше их высоты? +#+end_quote + +Для океанских волн знаменатель увеличивает значения потенциала скорости ближе к +гребню волны примерно на 20%. Хотя значения квадратов производных незначительны, +они суммируются, что в итоге увеличивает значение потенциала. Форма поля +скоростей при этом сохраняется (за исключением участков вблизи гребня). + +#+begin_quote +Разница между выведенной в работе формулой для поля потенциала скорости и +формулой из линейной теории волн показана на обыкновенных синусоидах, а не на +морских волнах (рис. 7). На сколько велика разница в форме и магнитуде поля +потенциала скорости для волн, соотношение высоты и длины которых соответствует +реальным морским волнам? +#+end_quote + +Для океанских волн знаменатель увеличивает значения потенциала скорости ближе к +гребню волны примерно на 20%. Хотя значения квадратов производных незначительны, +они суммируются, что в итоге увеличивает значение потенциала. Форма поля +скоростей при этом сохраняется (за исключением участков вблизи гребня). + +* Кореньков Владимир Васильевич + +#+begin_quote +Сформулированные во Введении "Положения, выносимые на защиту", более нигде в +диссертации не упоминаюся и не совсем точно соответствуют выводам, приводимым в +конце диссертации. +#+end_quote + +Положения, выносимые на защиту, соответствуют основным главам диссертации. +Развернутое описание по каждому из положений представлено в заключении. +Неточное соответствие выводам объясняется тем, что в выводах описано то, что +было сделано фактически, и как это можно применить на практике. + +#+begin_quote +Анализ алгоритмов, систем планирования и обеспечения надежного функционирования +параллельных приложений выполнен недостаточно глубоко. +#+end_quote + +Действительно, в мире существует множество систем планирования, алгоритмов и +систем обеспечения надежности. В данной работе множество систем обеспечения +надежности сведено к двум системам: системы, которые основаны на контрольных +точках восстановления (SLURM), и систем, основанные на выборочном перезапуске +задач (Apache Spark, Hadoop), а алгоритмам планирования уделяется недостаточно +внимания. Причиной этому служит узкая специализация разработанного планировщика +задач: в данной работе он применяется только для задачи генерации взволнованной +морской поверхности и вычисления поля давлений. Создание универсального +планировщика, безусловно, потребует более тщательный анализ существующих систем +и алгоритмов. + +* Константинос Спироу (Kostas Spyrou) + +#+begin_quote +My understanding, although this is not completely clear from the text and I +intend to have it clarified during the presentation, is that the AR model is +basically a difference equation where a current property (e.g. wave elevation) +at a given location is determined from information at a number of earlier time +instants, with addition of a single stochastic impulse. In other words there is +no space-related information involved in this scheme. On the other hand, the MA +supplement of the ARMA model holds the spatial information (but not time) and +for this reason it is vital for obtaining a progressing wave. If I understand +correctly, the white noise of the MA model is handled through a convolution +integral which the author suggests that it can be +#+end_quote + +В данной работе обе модели используют все три координаты (две пространственные и +одну временную). Авторегрессионная модель используется для генерации стоячих +волн, а модель скользящего среднего --- для генерации прогрессивных. Комбинация +моделей возможна в одномерном случае при условии пересчета коэффициентов по +специальной формуле. Аналогичная формула для трехмерного случая мне не известна. +Комбинацию можно провести и без формулы, но тогда характеристики на входе не +будут соответствовать характеристикам на выходе. Термин "модель АРСС" в данной +работе носит собирательный характер и включает в себя модель авторегрессии и +модель скользящего среднего. + +#+begin_quote +I would like to know how one can optimally select the required number of earlier +points in time and in space, respectively for the AR and MA processes. Is there +any rule that the author would suggest? +#+end_quote + +Итеративный метод вычисления коэффициентов для трехмерной модели авторегрессии +действительно существует, но не рассмотрен в данной работе. Метод на каждом шаге +вычисляет значения коэффициентов и увеличивает размерность матрицы на единицу. +Цикл завершается, когда дисперсия процесса достигает заданной с некоторой +точностью. Метод использует структуру автоковариационной матрицы, чтобы не +повторять одни и те же вычисления на каждом шаге, и может быть использован для +автоматического определения порядка модели авторегрессии. + +Итеративный метод вычисления коэффициентов скользящего среднего мне не известен. + +Универсальным методом, который работает для обоих моделей, является вычислением +заведомо большего количества коэффициентов и отбрасывания коэффициентов близких +к нулю и находящихся на правой границе многомерного массива коэффициентов. + +#+begin_quote +The 3d formulation of the governing equations of the ARMA model are given in +section 3.2. However the author is advised to provide more explanations on how +this model works computationally. For example, the impression is created that +the AR model uses space-related information too. It is essential to explain what +exactly has been implemented and verified. +#+end_quote + +В данной работе обе модели используют все три координаты (две пространственные и +одну временную). + +В работе верифицированы распределения подъема поверхности, высоты, периода и +длины волн. Для модели авторегрессии верифицируются характеристики стоячих +нерегулярных плоских волн. Для модели скользящего среднего верифицируются +характеристики прогрессивных нерегулярных плоских волн. + +#+begin_quote +The use of the non-linear intertialess tansform (NIT) is invoked in the +paragraph with header “scientific novelty” (page 150) without any introduction +justifying the use of this technique. +#+end_quote + +Нелинейное безынерционные преобразование (НБП) основано на том, что +распределение подъемов реальной взволнованной морской поверхности имеет +ненулевую асимметрию и эксцесс. Этот факт описан в книге Рожкова "Теория +вероятностей случайных событий, величин и функций с гидрометеорологическими +примерами". Ненулевой эксцесс и асимметрия можно моделировать напрямую, подавая +на вход модели автоковариационную функцию неплоской волны. + +#+begin_quote +The calculation of the AR and MA processes coefficients (pages 157 to 162) is +presented in an algorithmic manner, the reader cannot see the logic behind these +computations. Some further explanations should be added, perhaps in an appendix. +#+end_quote + +Алгоритмы вычисления коэффициентов АР и СС описаны в книге Бокса и Дженкинса +"Анализ и прогнозирование временных рядов". Формулы для обоих алгоритмов +выводятся путем домножения основного уравнения на дисперсию процесса и взятия +математического ожидания от обоих частей уравнения. + +#+begin_quote +Due to the stochastic nature of the ARMA scheme, one-to-one comparison with a +Longuet-Higgins deterministic wave realization, or indeed with a real wave +produced in a tank, seems not possible. It will be good if the author could +commend further on how his method could be validated in principle, beyond of +course the level of producing waves that look realistic. +#+end_quote + +Модель АРСС моделирует взволнованную морскую поверхность как единое целое. В +связи с этим оценке поддаются только интегральные характеристики. Верификацию +можно усилить с помощью записи четырехмерного поля подъемов поверхности с +посредством датчиков, расставленных в открытом море в виде сетки. Затем для +полученной поверхности вычисляется автоковариационная функция и генерируется +аналогичная поверхность с помощью модели АРСС. После этого характеристики обоих +поверхностей сопоставляются. Для проверки можно использовать статистики более +высокого порядка, например, условное распределения высот волн в зависимости от +их периодов и длин. + +* Котина Елена Дмитриевна + +#+begin_quote +[...] в работе говорится о том, что модель АРСС не основана на линейной теории +волн, однако формулы автоковариционных функций выводятся только для синусоид. +Возможно ли вычислить автоковариационную функцию для других волн, например для +волны Стокса? +#+end_quote + +Да, это возможно. Можно использовать автоковариационную функцию любого волнения, +для которого можно записать потенциал скорости. + +* Сотникова Маргарита Викторовна + +#+begin_quote +В тексте диссертации упоминаются источники литературы, однако нет единого обзора +литературы. +#+end_quote + +Обзор литературы приведен во вводных разделах основных глав диссертации (главы +3--5). В каждом разделе рассматриваются слабо связанные друг с другом работы, +поэтому было решено не объединять их в единую главу. + +#+begin_quote +В работе отмечается, что для различных типов волн необходимо использовать +различные варианты моделей. Так для стоячих волн предлагается использовать АР +модель, а для прогрессивных волн – модель СС. Однако не обсуждается вопрос о +том, насколько точно можно представить различные спектры морского волнения с +помощью моделей АР и СС? То есть, каковы ограничения предлагаемого подхода к +моделированию волнения? +#+end_quote + +Модели авторегрессии (АР) и скользящего среднего (СС) воспроизводят +взволнованную поверхность, автоковариационная функция которой соответствует +автоковариационной функции, поданной на вход этих моделей. Теорема +Винера---Хинчина устанавливает однозначное соответствие спектра и +автоковариационной функции процесса, поэтому спектр на входе соответствует +спектру на выходе. + +Выбор автоковариационных функций ограничен теми функциями, для которых модели АР +и СС сходятся. Заранее определить сходимость невозможно, но экспериментально +установлено, что модели сходятся для плоских волн и волн Стокса. + +#+begin_quote +В работе предлагается порядки АРСС модели (количество коэффициентов процесса +скользящего среднего и процесса авторегрессии) выбирать вручную. Представляется +возможным рассмотрение вариантов оптимизационных постановок задач, позволяющих +автоматически находить указанные параметры, например, приближая заданные +спектральные характеристики волнения. +#+end_quote + +Итеративный метод вычисления коэффициентов для трехмерной модели авторегрессии +действительно существует, но не рассмотрен в данной работе. Метод на каждом шаге +вычисляет значения коэффициентов и увеличивает размерность матрицы на единицу. +Цикл завершается, когда дисперсия процесса достигает заданной с некоторой +точностью. Метод использует структуру автоковариационной матрицы, чтобы не +повторять одни и те же вычисления на каждом шаге, и может быть использован для +автоматического определения порядка модели авторегрессии. + +Итеративный метод вычисления коэффициентов скользящего среднего мне не известен. + +Универсальным методом, который работает для обоих моделей, является вычислением +заведомо большего количества коэффициентов и отбрасывания коэффициентов близких +к нулю и находящихся на правой границе многомерного массива коэффициентов. + +#+begin_quote +В работе рассматриваются модели АР и СС для моделирования морского волнения. +Однако, естественно, что более точное представление можно было бы получить, +используя АРСС модель. Исследование данных вопросов представляется значимым для +повышения адекватности разрабатываемых моделей реальным процессам. +#+end_quote + +Метод пересчета значений коэффициентов, который необходим для соответствия +автоковариационной функции результирующей взволнованной поверхности заданной, +описан Боксом и Дженкинсом только для одномерной модели АРСС. Обобщение данного +метода является одним из направлений дальнейших исследований. diff --git a/arma-review.org b/arma-review.org @@ -1,248 +0,0 @@ -#+title: Ответы на вопросы рецензентов диссертации “Имитационное моделирование нерегулярного волнения для программ динамики морских объектов” -#+language: ru -#+options: num:nil toc:nil author:nil date:nil -#+latex_header_extra: \input{preamble} - -* Овсянников Дмитрий Александрович - -#+begin_quote -В формулах 18 и 24 потерян знаменатель в правой части уравнения, который, -однако, присутствует в формуле из приложения 10.2. -#+end_quote - -В формулах 18 и 24 действительно потерян знаменатель в правой части уравнения. -Эта ошибка была замечена уже после сдачи работы. Тестирование программного -комплекса с исправленной формулой не показало качественно новых результатов. - -#+begin_quote -Так ли нужен знаменатель в этих формулах, содержащий квадраты пространственных -производных, которые малы для океанских волн, поскольку их длина в несколько раз -больше их высоты? -#+end_quote - -Для океанских волн знаменатель увеличивает значения потенциала скорости ближе к -гребню волны примерно на 20%. Хотя значения квадратов производных незначительны, -они суммируются, что в итоге увеличивает значение потенциала. Форма поля -скоростей при этом сохраняется (за исключением участков вблизи гребня). - -#+begin_quote -Разница между выведенной в работе формулой для поля потенциала скорости и -формулой из линейной теории волн показана на обыкновенных синусоидах, а не на -морских волнах (рис. 7). На сколько велика разница в форме и магнитуде поля -потенциала скорости для волн, соотношение высоты и длины которых соответствует -реальным морским волнам? -#+end_quote - -Для океанских волн знаменатель увеличивает значения потенциала скорости ближе к -гребню волны примерно на 20%. Хотя значения квадратов производных незначительны, -они суммируются, что в итоге увеличивает значение потенциала. Форма поля -скоростей при этом сохраняется (за исключением участков вблизи гребня). - -* Кореньков Владимир Васильевич - -#+begin_quote -Сформулированные во Введении "Положения, выносимые на защиту", более нигде в -диссертации не упоминаюся и не совсем точно соответствуют выводам, приводимым в -конце диссертации. -#+end_quote - -Положения, выносимые на защиту, соответствуют основным главам диссертации. -Развернутое описание по каждому из положений представлено в заключении. -Неточное соответствие выводам объясняется тем, что в выводах описано то, что -было сделано фактически, и как это можно применить на практике. - -#+begin_quote -Анализ алгоритмов, систем планирования и обеспечения надежного функционирования -параллельных приложений выполнен недостаточно глубоко. -#+end_quote - -Действительно, в мире существует множество систем планирования, алгоритмов и -систем обеспечения надежности. В данной работе множество систем обеспечения -надежности сведено к двум системам: системы, которые основаны на контрольных -точках восстановления (SLURM), и систем, основанные на выборочном перезапуске -задач (Apache Spark, Hadoop), а алгоритмам планирования уделяется недостаточно -внимания. Причиной этому служит узкая специализация разработанного планировщика -задач: в данной работе он применяется только для задачи генерации взволнованной -морской поверхности и вычисления поля давлений. Создание универсального -планировщика, безусловно, потребует более тщательный анализ существующих систем -и алгоритмов. - -* Константинос Спироу (Kostas Spyrou) - -#+begin_quote -My understanding, although this is not completely clear from the text and I -intend to have it clarified during the presentation, is that the AR model is -basically a difference equation where a current property (e.g. wave elevation) -at a given location is determined from information at a number of earlier time -instants, with addition of a single stochastic impulse. In other words there is -no space-related information involved in this scheme. On the other hand, the MA -supplement of the ARMA model holds the spatial information (but not time) and -for this reason it is vital for obtaining a progressing wave. If I understand -correctly, the white noise of the MA model is handled through a convolution -integral which the author suggests that it can be -#+end_quote - -В данной работе обе модели используют все три координаты (две пространственные и -одну временную). Авторегрессионная модель используется для генерации стоячих -волн, а модель скользящего среднего --- для генерации прогрессивных. Комбинация -моделей возможна в одномерном случае при условии пересчета коэффициентов по -специальной формуле. Аналогичная формула для трехмерного случая мне не известна. -Комбинацию можно провести и без формулы, но тогда характеристики на входе не -будут соответствовать характеристикам на выходе. Термин "модель АРСС" в данной -работе носит собирательный характер и включает в себя модель авторегрессии и -модель скользящего среднего. - -#+begin_quote -I would like to know how one can optimally select the required number of earlier -points in time and in space, respectively for the AR and MA processes. Is there -any rule that the author would suggest? -#+end_quote - -Итеративный метод вычисления коэффициентов для трехмерной модели авторегрессии -действительно существует, но не рассмотрен в данной работе. Метод на каждом шаге -вычисляет значения коэффициентов и увеличивает размерность матрицы на единицу. -Цикл завершается, когда дисперсия процесса достигает заданной с некоторой -точностью. Метод использует структуру автоковариационной матрицы, чтобы не -повторять одни и те же вычисления на каждом шаге, и может быть использован для -автоматического определения порядка модели авторегрессии. - -Итеративный метод вычисления коэффициентов скользящего среднего мне не известен. - -Универсальным методом, который работает для обоих моделей, является вычислением -заведомо большего количества коэффициентов и отбрасывания коэффициентов близких -к нулю и находящихся на правой границе многомерного массива коэффициентов. - -#+begin_quote -The 3d formulation of the governing equations of the ARMA model are given in -section 3.2. However the author is advised to provide more explanations on how -this model works computationally. For example, the impression is created that -the AR model uses space-related information too. It is essential to explain what -exactly has been implemented and verified. -#+end_quote - -В данной работе обе модели используют все три координаты (две пространственные и -одну временную). - -В работе верифицированы распределения подъема поверхности, высоты, периода и -длины волн. Для модели авторегрессии верифицируются характеристики стоячих -нерегулярных плоских волн. Для модели скользящего среднего верифицируются -характеристики прогрессивных нерегулярных плоских волн. - -#+begin_quote -The use of the non-linear intertialess tansform (NIT) is invoked in the -paragraph with header “scientific novelty” (page 150) without any introduction -justifying the use of this technique. -#+end_quote - -Нелинейное безынерционные преобразование (НБП) основано на том, что -распределение подъемов реальной взволнованной морской поверхности имеет -ненулевую асимметрию и эксцесс. Этот факт описан в книге Рожкова "Теория -вероятностей случайных событий, величин и функций с гидрометеорологическими -примерами". Ненулевой эксцесс и асимметрия можно моделировать напрямую, подавая -на вход модели автоковариационную функцию неплоской волны. - -#+begin_quote -The calculation of the AR and MA processes coefficients (pages 157 to 162) is -presented in an algorithmic manner, the reader cannot see the logic behind these -computations. Some further explanations should be added, perhaps in an appendix. -#+end_quote - -Алгоритмы вычисления коэффициентов АР и СС описаны в книге Бокса и Дженкинса -"Анализ и прогнозирование временных рядов". Формулы для обоих алгоритмов -выводятся путем домножения основного уравнения на дисперсию процесса и взятия -математического ожидания от обоих частей уравнения. - -#+begin_quote -Due to the stochastic nature of the ARMA scheme, one-to-one comparison with a -Longuet-Higgins deterministic wave realization, or indeed with a real wave -produced in a tank, seems not possible. It will be good if the author could -commend further on how his method could be validated in principle, beyond of -course the level of producing waves that look realistic. -#+end_quote - -Модель АРСС моделирует взволнованную морскую поверхность как единое целое. В -связи с этим оценке поддаются только интегральные характеристики. Верификацию -можно усилить с помощью записи четырехмерного поля подъемов поверхности с -посредством датчиков, расставленных в открытом море в виде сетки. Затем для -полученной поверхности вычисляется автоковариационная функция и генерируется -аналогичная поверхность с помощью модели АРСС. После этого характеристики обоих -поверхностей сопоставляются. Для проверки можно использовать статистики более -высокого порядка, например, условное распределения высот волн в зависимости от -их периодов и длин. - -* Котина Елена Дмитриевна - -#+begin_quote -[...] в работе говорится о том, что модель АРСС не основана на линейной теории -волн, однако формулы автоковариционных функций выводятся только для синусоид. -Возможно ли вычислить автоковариационную функцию для других волн, например для -волны Стокса? -#+end_quote - -Да, это возможно. Можно использовать автоковариационную функцию любого волнения, -для которого можно записать потенциал скорости. - -* Сотникова Маргарита Викторовна - -#+begin_quote -В тексте диссертации упоминаются источники литературы, однако нет единого обзора -литературы. -#+end_quote - -Обзор литературы приведен во вводных разделах основных глав диссертации (главы -3--5). В каждом разделе рассматриваются слабо связанные друг с другом работы, -поэтому было решено не объединять их в единую главу. - -#+begin_quote -В работе отмечается, что для различных типов волн необходимо использовать -различные варианты моделей. Так для стоячих волн предлагается использовать АР -модель, а для прогрессивных волн – модель СС. Однако не обсуждается вопрос о -том, насколько точно можно представить различные спектры морского волнения с -помощью моделей АР и СС? То есть, каковы ограничения предлагаемого подхода к -моделированию волнения? -#+end_quote - -Модели авторегрессии (АР) и скользящего среднего (СС) воспроизводят -взволнованную поверхность, автоковариационная функция которой соответствует -автоковариационной функции, поданной на вход этих моделей. Теорема -Винера---Хинчина устанавливает однозначное соответствие спектра и -автоковариационной функции процесса, поэтому спектр на входе соответствует -спектру на выходе. - -Выбор автоковариационных функций ограничен теми функциями, для которых модели АР -и СС сходятся. Заранее определить сходимость невозможно, но экспериментально -установлено, что модели сходятся для плоских волн и волн Стокса. - -#+begin_quote -В работе предлагается порядки АРСС модели (количество коэффициентов процесса -скользящего среднего и процесса авторегрессии) выбирать вручную. Представляется -возможным рассмотрение вариантов оптимизационных постановок задач, позволяющих -автоматически находить указанные параметры, например, приближая заданные -спектральные характеристики волнения. -#+end_quote - -Итеративный метод вычисления коэффициентов для трехмерной модели авторегрессии -действительно существует, но не рассмотрен в данной работе. Метод на каждом шаге -вычисляет значения коэффициентов и увеличивает размерность матрицы на единицу. -Цикл завершается, когда дисперсия процесса достигает заданной с некоторой -точностью. Метод использует структуру автоковариационной матрицы, чтобы не -повторять одни и те же вычисления на каждом шаге, и может быть использован для -автоматического определения порядка модели авторегрессии. - -Итеративный метод вычисления коэффициентов скользящего среднего мне не известен. - -Универсальным методом, который работает для обоих моделей, является вычислением -заведомо большего количества коэффициентов и отбрасывания коэффициентов близких -к нулю и находящихся на правой границе многомерного массива коэффициентов. - -#+begin_quote -В работе рассматриваются модели АР и СС для моделирования морского волнения. -Однако, естественно, что более точное представление можно было бы получить, -используя АРСС модель. Исследование данных вопросов представляется значимым для -повышения адекватности разрабатываемых моделей реальным процессам. -#+end_quote - -Метод пересчета значений коэффициентов, который необходим для соответствия -автоковариационной функции результирующей взволнованной поверхности заданной, -описан Боксом и Дженкинсом только для одномерной модели АРСС. Обобщение данного -метода является одним из направлений дальнейших исследований. diff --git a/arma-slides-ru.org b/arma-slides-ru.org @@ -0,0 +1,1341 @@ +#+TITLE: Имитационное моделирование нерегулярного волнения для программ динамики морских объектов +#+AUTHOR: Иван Ганкевич +#+DATE: Санкт-Петербург, 2018 +#+LANGUAGE: ru +#+LATEX_CLASS: beamer +#+LATEX_CLASS_OPTIONS: [14pt,aspectratio=169] +#+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 + +#+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 + +* Введение +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +** Титульный лист +:PROPERTIES: +:BEAMER_env: fullframe +:BEAMER_act: <presentation> +:END: + +#+beamer: \label{slide-title} +#+beamer: \maketitle + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-title} + +Здравствуйте, уважаемые члены совета, коллеги и гости. Меня зовут Иван Ганкевич. +Моя диссертация посвящена имитационному моделированию морского волнения. +Диссертация выполнена под руководством д.т.н.\nbsp{}Дегтярева Александра +Борисовича. + +** Постановка задачи +:PROPERTIES: +:BEAMER_act: <presentation> +:END: + +#+beamer: \label{slide-problem} + +Разработать +- трехмерную имитационную модель морского волнения, +- метод вычисления поля давлений под взволнованной поверхностью, +- программный комплекс для систем с общей и распределенной памятью, +которые являются /альтернативами/ аналогам, разработанным в рамках +линейной теории волн. + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-problem} + +Цель исследования заключалась в изучении и разработке математических моделей и +численных методов, которые бы позволили выйти за рамки линейной теории волн в +задаче имитационного моделирования морского волнения и стать альтернативами +моделям и методам, основанных на этой теории. + +В рамках данного исследования была разработана +- трехмерная имитационная математическая модель морского волнения, +- метод вычисления поля давлений под взволнованной морской поверхностью и +- программный комплекс, реализующий модель и метод, для систем с общей и + распределенной памятью. + +* Трехмерная модель АРСС + +** Трехмерная модель АРСС +: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*} + +#+BEAMER: \vspace{0.5cm} + +#+begin_src dot :exports results :file build/arma-pipeline-ru.pdf +digraph G { + + node [fontname="Open Sans",fontsize=10,margin="0.055,0",shape=box,bgcolor="E5E6E5",style="filled",height="0.37"] + graph [nodesep="0.25",ranksep="0.30",rankdir="LR" margin=0] + edge [arrowsize=0.66] + bgcolor="#F5F6F5" + + acf [label="АКФ"] + yule_walker_equations [label="Уравнения\nЮла—Уокера"] + nonlinear_equations [label="Нелинейные\nуравнения"] + ar_process [label="Модель\nАР"] + ma_process [label="Модель\nСС"] + arma_process [label="Модель\nАРСС"] + + acf->yule_walker_equations->ar_process->arma_process + acf->nonlinear_equations->ma_process->arma_process + +} +#+end_src + +#+RESULTS: +[[file:build/arma-pipeline-ru.pdf]] + +#+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{}подъем взволнованной поверхности}; +\node[fill=none,anchor=south east,xshift=-2cm,yshift=-1.75cm] + (epsLabel) at (current page.north east) + {\scriptsize{}белый шум}; +\node[fill=none,baseline,anchor=north west,below=of phi,yshift=0.2cm] + (phiLabel) + {\scriptsize{}коэф. АР}; +\node[fill=none,baseline,anchor=north west,below=of theta,yshift=0.2cm] + (thetaLabel) + {\scriptsize{}коэф. СС}; +\path[->,thick] (zetaLabel.south -| zeta1.north) edge (zeta1.north); +\path[->,thick] (zetaLabel.south -| zeta2.north west) + 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 + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-arma} + +В качестве имитационной модели в данной работе используется модель авторегрессии +скользящего среднего (сокращенно, модель АРСС). Эта модель применяется в +статистике для анализа и прогнозирования одномерных скалярно- и векторно-значных +временных рядов, в данной же работе ее трехмерный аналог адаптирован для +воспроизведения значений подъема взволнованной морской поверхности в дискретные +моменты времени. Имитация морского волнения с помощью одномерной модели АРСС +была изучена в работах Рожкова, Гургенидзе, Трапезникова, Бухановского, Спаноса +и Зельдина. + +Основное уравнение трехмерной модели АРСС представлено на слайде. Параметрами +являются +- дисперсия белого шума, имеющего нормальное распределение, +- коэффициенты авторегрессии и +- коэффициенты скользящего среднего. + +Параметры модели определяются из автоковариационной функции взволнованной +морской поверхности путем решения соответствующих систем уравнений. Для +получения коэффициентов авторегрессии решается система линейных алгебраических +уравнений Юла---Уокера стандартным методом, а для получения коэффициентов +скользящего среднего решается система нелинейных уравнений методом простой +итерации. + +Основным отличием модели АРСС от линейных аналогов является +- использование автоковариационной функции вместо частотно-направленных спектров + морского волнения и +- нефизическая природа модели, поскольку ее формулы не выводятся из + законов сохранения для морского волнения. +Обсудим каждое из них по порядку. + +** АКФ морской поверхности +: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-ru.pdf +digraph G { + + node [fontname="Open Sans",fontsize=10,margin="0.055,0",shape=box,bgcolor="E5E6E5",style="filled"] + graph [nodesep="0.25",ranksep="0.20",rankdir="TB" margin=0] + edge [arrowsize=0.66] + bgcolor="#F5F6F5" + + 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"] + + function->theorem + discrete_function->theorem + field_data->theorem + theorem->acf + +} +#+end_src + +#+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 +: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-ru.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: Плоская волна +#+RESULTS: +[[file:build/acf-propagating-plain-wave-ru.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-ru.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: Плоская стоячая волна +#+RESULTS: +[[file:build/acf-standing-plain-wave-ru.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-ru.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: Волна Стокса +#+RESULTS: +[[file:build/acf-propagating-stokes-wave-ru.pdf]] + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-acf} + +Одним из основных отличий модели АРСС от линейных аналогов является +использование автоковариационной функции вместо частотно-направленных спектров +морского волнения, что позволяет получить ряд преимуществ. Автоковариационная +функция включает в себя не только две пространственные, но и временную +компоненту, что позволяет моделировать форму волны, а не только частоту и +направление движения. Посредством теоремы Винера---Хинчина автоковариационная +функция легко вычисляется аналитически из явной формулы взволнованной +поверхности или численно из дискретно заданной взволнованной поверхности или +натурных данных. Модель способна воспроизводить плоские волны, волны Стокса и +нерегулярное волнение, автоковариационные функции которых показаны на слайде. + +** Определение коэффициентов :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> +:END: + +#+beamer: \label{slide-arma-verification} + +*** Стоячие волны +: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-ru.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("подъем", "высота", "длина", "период"), + 0.1, + xlab="x", + ylab="y", + tck=0.04 +) +#+end_src + +#+caption: Стоячие волны +#+RESULTS: +[[file:build/standing-wave-qqplots-slides-ru.pdf]] + + +*** Прогрессивные волны +: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-ru.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("подъем", "высота", "длина", "период"), + 0.1, + xlab="x", + ylab="y", + tck=0.04 +) +#+end_src + +#+caption: Прогрессивные волны +#+RESULTS: +[[file:build/propagating-wave-qqplots-slides-ru.pdf]] + + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-arma-verification} + +Другим основным отличием модели АРСС от линейных аналогов является ее +нефизическая природа. Формулы модели не выводятся из физических законов +сохранения и модель неспособна воспроизводить индивидуальные волны. Вместо этого +воспроизводится взволнованная морская поверхность как единое целое, +распределения интегральных характеристик которой совпадают с реальными. + +На слайде представлены спрямленные диаграммы (quantile-quantile plots) +распределений различных параметров волн. Чем ближе точки расположены к прямой +линии, тем выше степень совпадения распределений. Как видно из графиков, +распределения параметров прогрессивных волн почти полностью совпадает с +реальным, отличаясь лишь на хвостах, где размер выборки невелик. Распределения +параметров стоячих волн имеют большее расхождение на хвостах, ввиду отсутствия +надежных натурных данных для такого типа волн. + +** Моделирование асимметричности :noexport: +:PROPERTIES: +:BEAMER_act: <presentation> +:END: + +#+begin_src dot :exports results :file build/slides-nit-pipeline-ru.pdf +digraph G { + + node [fontname="Open Sans",fontsize=10,margin="0.055,0",shape=box,fillcolor="#E5E6E5",style="filled",height="0.37"] + graph [nodesep="0.55",ranksep="0.30",rankdir="TB",margin=0,splines=ortho] + edge [fontname="Open Sans",fontsize=10,arrowsize=0.66] + bgcolor="#F5F6F5" + + subgraph step1 { + rank="same" + acf [label="АКФ"] + zeta [label="Поверхность"] + } + + subgraph step2 { + rank="same" + acf_tr [label="АКФ'",fillcolor="#E5C6C5"] + zeta_tr [label="Поверхность'",fillcolor="#E5C6C5"] + } + + acf->zeta [color=invis] + acf->acf_tr [label=" Разложение в ряд\l по полиномам Эрмита\l"] + acf_tr->zeta_tr + zeta_tr->zeta [label="Преобразование\lаппликат\l"] + +} +#+end_src + +#+RESULTS: +[[file:build/slides-nit-pipeline-ru.pdf]] + +#+header: :width 4 :height 1.5 :bg #F5F6F5 :font sans +#+begin_src R :file build/slides-nit-ru.pdf +source(file.path("R", "nonlinear.R")) +par(mar=c(2,2,0.3,0.1),cex=0.7,mgp=c(3,0.3,0)) +args <- list( + graphs=c('Гауссово', 'РГШ', 'АНР'), + linetypes=c('solid', 'dashed', 'dotted'), + axis=list(tck=-0.04), + legend="bottom" +) +args$title <- NULL +arma.plot_nonlinear(file.path("build", "nit-standing"), args) +#+end_src + +#+RESULTS: +[[file:build/slides-nit-ru.pdf]] + + +* Поле давлений под дискретно заданной взволнованной поверхностью + +** Уравнения потенциального течения +: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{уравнение неразрывности} + \\ + & \phi_t+\frac{1}{2} |\vec{\upsilon}|^2 + g\zeta=-\frac{p}{\rho} + & \text{динамическое ГУ на }z=\zeta(x,y,t) + \\ + & D\zeta = \nabla \phi \cdot \vec{n} + & \text{кинематическое ГУ на }z=\zeta(x,y,t)\\ +\end{align*}% +\vspace{-2.5\baselineskip}% +\end{beamercolorbox}% +% +\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}% +#+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}% +Решение в рамках линейной теории:% +\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}% +Общее решение:\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 + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-potential-flow} + +Модель АРСС воспроизводит волны, распределения характеристик которых совпадает с +реальными, а значит, результирующую взволнованную морскую поверхность можно +использовать для вычисления поля давлений, создаваемого волнами. В то же время +поверхность может содержать волны произвольных амплитуд, из-за чего методы +вычисления поля давлений, используемые в рамках линейной теории волн, +неприменимы для модели АРСС. В связи с этим уравнения, описывающие движение +жидкости были решены без упрощений линейной теории. + +Уравнения представлены на слайде. Это уравнение неразрывности (или уравнение +Лапласа), уравнение движения (или динамическое граничное условие) и +кинематическое граничное условие на свободной поверхности. Поскольку +взволнованная поверхность известна, второе уравнение превращается в явную +формулу для вычисления давлений, а задача сводится к поиску потенциала скорости +\(\phi\). На слайде красным цветом выделены множители, которыми пренебрегают в +рамках линейной теории волн. + +Система решается методом Фурье с использованием некоторых физических и +математических упрощений, описанных в работе. Полное решение записывается в виде +свертки некоторой оконной функции с суперпозицией производных взволнованной +поверхности. Полученное решение отличается от решения из линейной теории +наличием удаленных множителей и другой записью оконной функции. Если +воспользоваться предположением о малости амплитуд волн, то полученное решение +сводится к решению из линейной теории волн. + +** Верификация метода выч. давлений +: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-ru.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=" Линейная\n теория",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=" Общее\n решение",outer=FALSE,adj=0,line=-1.5,cex.main=0.77) +) +#+end_src + +#+RESULTS: +[[file:build/slides-plain-wave-velocity-field-comparison-ru.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-ru.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=" Малая\n амплитуда",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="Большая\n амплитуда",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-ru.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-ru.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=" Нерегулярное волнение",outer=FALSE,adj=0.01,line=-1.5,cex.main=0.77) +) +#+end_src + +#+RESULTS: +[[file:build/slides-irregular-wave-velocity-field-ru.pdf]] + + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-potential-verification} + +Чтобы оценить отличия полученного решения, оно было сопоставлено с известными +решениями. + +Если сравнивать с решением из линейной теории волн (слева сверху), то для +синтетических волн большой амплитуды использование нового решения приводит к +смещению области, в которой сконцентрирована основная энергия волны ближе к +гребню. + +Если сравнивать с решением для волн малых амплитуд (справа сверху), то новое +решение работает как для волн малых, так и больших амплитуд, а для волн +малых амплитуд можно говорить о рациональном соответствии между обоими +решениями. + +Если сравнивать с решением из линейной теории волн (снизу), то для нерегулярного +волнения, воспроизведенного моделью АРСС, новое решение показывает в среднем на +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}$. + +* Программный комплекс + +** Программная реализация +:PROPERTIES: +:BEAMER_act: <presentation> +:END: + +#+beamer: \label{slide-implementation} + +#+header: :width 1.6 :height 1.6 :bg #F5F6F5 :font sans +#+begin_src R :file build/slides-ar-cubes-ru.pdf +source(file.path("R", "common.R")) +par(mgp=c(3,0.4,0), cex=0.6, mar=c(1,2,2,0)) +arma.plot_ar_cubes_2d_v2( + 3, + 3, + xlabel="Индекс части (X)", + ylabel="Индекс части (Y)", + list( + arrow_args=list(lwd=2,angle=7,length=0.125), + adj_x=0.4, + adj_y=0.5, + no_axes=TRUE + ) +) +#+end_src + +#+RESULTS: +[[file:build/slides-ar-cubes-ru.pdf]] + +[[file:build/arma-pipeline-ru.pdf]] + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-implementation} + +Программный комплекс состоит из программных реализаций модели АРСС и линейной +модели Лонге---Хиггинса и метода вычисления давлений. Для каждой модели и метода +написана параллельная реализация для систем с общей памятью. Высокая +производительность обеспечивается параллельной реализацией каждой модели и +метода для систем с общей памятью и использованием быстрых преобразований Фурье, +где это возможно. + +Программная реализация модели авторегрессии включает в себя планировщик задач, +который обеспечивает параллельную генерацию отдельных блоков, на которые +разделяется взволнованная поверхность, с учетом авторегрессионных зависимостей. +Сама формула модели сводится к вычислению большого количества полиномов, что +эффективно реализуется с помощью инструкций процессора FMA (Fused Multiply-Add). + +Программная реализация модели Лонге---Хиггинса сводится к простому параллельному +суммированию гармоник в каждой точке поверхности. + +Вычисление коэффициентов авторегрессии реализуется стандартным методом решения +систем линейных алгебраических уравнений с симметричными матрицами. Вычисление +коэффициентов скользящего среднего реализуется методом простой итерации. + +Практически все остальные модели и методы используют быстрое преобразование +Фурье. +- Программная реализация модели скользящего среднего сводится к параллельной + свертке на основе быстрых преобразований Фурье. +- Программная реализация вычисления давлений сводится к четырем быстрым + преобразованиям Фурье с большим количеством трансцендентных математических + функций. +- Вычисление автоковариационной функции сводится к трем быстрым преобразованиям + Фурье. + +** Система с общей памятью +: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="АР", + ma.x="СС", + lh.x="ЛХ", + ar.y="АР", + ma.y="СС", + lh.y="ЛХ", + Row.names="\\orgcmidrule{2-4}{5-6}Подпрограмма" +) +row_names <- list( + determine_coefficients="Определение коэф.", + validate="Проверка сходимости", + generate_surface="Генерация поверхности", + nit="НБП", + write_all="Запись вывода в файл", + copy_to_host="Копирование данных с GPU", + velocity="Выч. потенциалов скорости" +) +arma.print_openmp_vs_opencl(model_names, row_names) +#+end_src + +#+attr_latex: :booktabs t +#+RESULTS: tab-arma-performance + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-smp} + +На слайде представлены результаты тестирования производительности различных +компонент программного комплекса на системах с общей памятью с использованием +OpenMP (процессора) и OpenCL (видеокарты). Из таблицы видно, что +- большую часть времени система тратит на генерацию взволнованной поверхности, +- использование видеокарты выгодно только для модели Лонге---Хиггинса и + вычисления давлений и +- модель авторегрессии более производительна, чем модель скользящего среднего, + несмотря на использование быстрых преобразований Фурье. + +** Система с распределенной памятью +:PROPERTIES: +:BEAMER_act: <presentation> +:END: + +#+beamer: \label{slide-mpp} + +*** Column 1 +:PROPERTIES: +:BEAMER_col: 0.47 +:END: + +#+header: :width 2 :height 2 :bg #F5F6F5 :font sans +#+begin_src R :file build/slides-bscheduler-performance-ru.pdf +source(file.path("R", "benchmarks.R")) +par(mgp=c(3,0.4,0), cex=0.7, mar=c(2,2,0,0)) +data <- arma.load_bscheduler_performance_data() +arma.plot_bscheduler_performance_data( + data, + list( + openmp="OpenMP", + bsc1="Bscheduler (один узел)", + bsc2="Bscheduler (два узла)" + ) +) +title(xlab="Размер взволнованной поверхности", ylab="Время, сек.") +#+end_src + +#+RESULTS: +[[file:build/slides-bscheduler-performance-ru.pdf]] + +*** Column 2 +:PROPERTIES: +:BEAMER_col: 0.47 +:END: + +#+name: fig-master-slave-failure +#+header: :width 2 :height 2 :bg #F5F6F5 :font sans +#+begin_src R :file build/slides-master-slave-failure-ru.pdf +source(file.path("R", "benchmarks.R")) +par(mgp=c(3,0.4,0), cex=0.7, mar=c(2,2,0,0)) +data <- arma.load_master_slave_failure_data() +arma.plot_master_slave_failure_data( + data, + list( + master="Bscheduler (главный узел)", + slave="Bscheduler (подчиненный узел)", + nofailures="Bscheduler (без выхода из строя)" + ) +) +title(xlab="Размер взволнованной поверхности", ylab="Время, сек.") +#+end_src + +#+RESULTS: fig-master-slave-failure +[[file:build/slides-master-slave-failure-ru.pdf]] + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-mpp} + +Для модели авторегрессии сделана реализация для систем с распределенной памятью +и отказоустойчивый планировщик задач. Планировщик позволяет добиться увеличения +производительности с увеличением количества узлов, которое близко к линейному +(график слева). Также планировщик позволяет продолжить вычисления, даже если +один из узлов кластера выходит из строя. При этом перезапускается только та +часть задачи, которая вычислялась на вышедшем из строя узле, и теряется +производительность только этого узла. + +** Диаграмма :noexport: +:PROPERTIES: +:BEAMER_env: fullframe +:END: + +#+begin_export latex + \tikzset{DataBlock/.style={rectangle,draw=spbuDarkGray,thick,text width=2cm,align=center}}% + \tikzset{Terminator/.style={circle,fill=spbuDarkGray,thick,minimum size=0.4cm,text width=0pt}}% + \tikzset{Comment/.style={draw=none,fill=none,text width=8.8cm}}% + \small + \begin{tikzpicture}[x=6cm,y=0.80cm] + % UML blocks + \node[Terminator] (umlStart) at (0,0) {}; + \node[DataBlock] (umlSpec) at (0,-1) {$S(\omega,\theta)$}; + \node[DataBlock] (umlK) at (0,-2) {$K_{i,j,k}$}; + \node[DataBlock,fill=spbuWhite2] (umlK2) at (0,-3) {$K_{i,j,k}^{*}$}; + \node[DataBlock] (umlPhi) at (0,-4) {$\Phi_{i,j,k}$}; + \node[DataBlock] (umlEps) at (0,-5) {$\epsilon_{i,j,k}$}; + \node[DataBlock,fill=spbuWhite2] (umlZeta2) at (0,-6) {$\zeta_{i,j,k}^{*}$}; + \node[DataBlock] (umlZeta) at (0,-7) {$\zeta_{i,j,k}$}; + \node[DataBlock] (umlVelocity) at (0,-8) {$\phi(x,y,z)$}; + \node[DataBlock] (umlPressure) at (0,-9) {$p(x,y,z)$}; + \node[Terminator] (umlEnd) at (0,-10) {}; + \node[circle,draw=spbuDarkGray,thick,minimum size=0.5cm,text width=0pt] at (0,-10) {}; + + % edges + \path[->,thick] (umlStart.south) edge (umlSpec.north); + \path[thick] (umlSpec.south) edge (umlK.north); + \path[thick] (umlK.south) edge (umlK2.north); + \path[thick] (umlK2.south) edge (umlPhi.north); + \path[thick] (umlPhi.south) edge (umlEps.north); + \path[thick] (umlEps.south) edge (umlZeta2.north); + \path[thick] (umlZeta2.south) edge (umlZeta.north); + \path[thick] (umlZeta.south) edge (umlVelocity.north); + \path[thick] (umlVelocity.south) edge (umlPressure.north); + \path[->,thick] (umlPressure.south) edge (umlEnd.north); + + % comments + \node[align=left,draw=none] at (1,-1) {Частотно-направленный спектр волнения,}; + \node[Comment] at (1,-2) {автоковариационная функция (АКФ),}; + \node[Comment] at (1,-3) {преобразованная АКФ,}; + \node[Comment] at (1,-4) {коэффициенты авторегрессии,}; + \node[Comment] at (1,-5) {белый шум,}; + \node[Comment] at (1,-6) {преобразованная реализация,}; + \node[Comment] at (1,-7) {реализация взволнованной поверхности,}; + \node[Comment] at (1,-8) {потенциал скорости,}; + \node[Comment] at (1,-9) {давление.}; + \end{tikzpicture} +#+end_export + +** Оптимизация записи в файл :noexport: +#+begin_export latex + \begin{columns}[T] + \begin{column}{0.575\textwidth} + \begin{block}{\small Диаграмма событий} + \vspace{0.25\baselineskip}% + \includegraphics{overlap-color} + \end{block} + \end{column} + \begin{column}{0.425\textwidth} + \begin{block}{\small Время генерации} + \vspace{0.25\baselineskip}% + \includegraphics{performance-color} + \end{block} + \end{column} + \end{columns} +#+end_export + +** Отказоустойчивость :noexport: +#+begin_export latex +\centering% +\includegraphics{mpp-time-color} +#+end_export + +** Выводы :noexport: +Программная реализация +- масштабируется на SMP и MPP системы, +- эффективна и без использования GPU +- и отказоустойчива. + +* Заключение +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +** Заключение +:PROPERTIES: +:BEAMER_act: <presentation> +:END: + +#+beamer: \label{slide-conclusion} + +- Разработана трехмерная модель для генерации волн произвольных амплитуд. +- Разработан метод вычисления поля давлений без предположений о малости амплитуд + волн. +- Разработан программный комплекс для систем с общей и распределенной памятью. + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-conclusion} + +Цель исследования заключалась в изучении и разработке альтернативных +математических моделей и численных методов, которые бы позволили выйти за рамки +линейной теории волн в задаче имитационного моделирования морского волнения. В +рамках исследования были разработаны +- трехмерная модель для генерации волн произвольных амплитуд, +- метод вычисления поля давлений без предположений о малости амплитуд волн, +- программный комплекс для систем с общей и распределенной памятью. + +** Апробация +:PROPERTIES: +:BEAMER_act: <presentation> +:END: + +#+beamer: \label{slide-validation} +#+beamer: \small + +- Конференции: ISSW'14, HPCS'15, HPCS'16, HPCS'17. +- Глава в книге The Ocean in Motion (Springer Oceanography). + +*** Columns +:PROPERTIES: +:BEAMER_env: columns +:BEAMER_opt: T +:END: + +**** LAMP4 +:PROPERTIES: +:BEAMER_col: 0.30 +:BEAMER_env: block +:END: + +#+ATTR_LATEX: :width \linewidth +[[file:graphics/slides/lamp4-ar-waves.png]] + +**** Ascheduler +:PROPERTIES: +:BEAMER_col: 0.30 +:BEAMER_env: block +:END: + +#+ATTR_LATEX: :width \linewidth +[[file:graphics/slides/spark-logo.png]] + +**** HPCS'15 +:PROPERTIES: +:BEAMER_col: 0.30 +:BEAMER_env: block +:END: + +#+ATTR_LATEX: :width \linewidth +[[file:graphics/slides/hpcs-15-poster-paper-award.png]] + +#+latex: \setbeamerfont{block title}{size=\normalsize} + +** Notes +:PROPERTIES: +:BEAMER_env: ignoreheading +:END: + +#+beamer: \spbuSlide{slide-validation} + +Доклады по теме диссертации были представлены на конференциях International Ship +Stability Workshop и High-Performance Computing & Simulation. По результатам +исследования опубликована глава в книге The Ocean in Motion. + +Модель авторегрессии и метод вычисления давлений были интегрированы в +программный комплекс Large Amplitude Motion Program (LAMP4). + +На основе отказоустойчивого планировщика задач был сделан аналог для фреймворка +обработки больших массивов данных Apache Spark. + +Доклад на конференции HPCS'15 был признан лучшим устным докладом. + +** Взволнованная морская поверхность :noexport: +:PROPERTIES: +:BEAMER_act: <presentation> +:END: + +#+begin_export latex +\begin{tikzpicture}[remember picture,overlay] + \node[inner sep=0pt,rectangle] at (current page.center){% + \includegraphics[width=0.95\paperwidth]{wavy} + };% +\end{tikzpicture} +#+end_export + diff --git a/arma-slides.org b/arma-slides.org @@ -1,1341 +0,0 @@ -#+TITLE: Имитационное моделирование нерегулярного волнения для программ динамики морских объектов -#+AUTHOR: Иван Ганкевич -#+DATE: Санкт-Петербург, 2018 -#+LANGUAGE: ru -#+LATEX_CLASS: beamer -#+LATEX_CLASS_OPTIONS: [14pt,aspectratio=169] -#+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 - -#+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 - -* Введение -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -** Титульный лист -:PROPERTIES: -:BEAMER_env: fullframe -:BEAMER_act: <presentation> -:END: - -#+beamer: \label{slide-title} -#+beamer: \maketitle - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-title} - -Здравствуйте, уважаемые члены совета, коллеги и гости. Меня зовут Иван Ганкевич. -Моя диссертация посвящена имитационному моделированию морского волнения. -Диссертация выполнена под руководством д.т.н.\nbsp{}Дегтярева Александра -Борисовича. - -** Постановка задачи -:PROPERTIES: -:BEAMER_act: <presentation> -:END: - -#+beamer: \label{slide-problem} - -Разработать -- трехмерную имитационную модель морского волнения, -- метод вычисления поля давлений под взволнованной поверхностью, -- программный комплекс для систем с общей и распределенной памятью, -которые являются /альтернативами/ аналогам, разработанным в рамках -линейной теории волн. - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-problem} - -Цель исследования заключалась в изучении и разработке математических моделей и -численных методов, которые бы позволили выйти за рамки линейной теории волн в -задаче имитационного моделирования морского волнения и стать альтернативами -моделям и методам, основанных на этой теории. - -В рамках данного исследования была разработана -- трехмерная имитационная математическая модель морского волнения, -- метод вычисления поля давлений под взволнованной морской поверхностью и -- программный комплекс, реализующий модель и метод, для систем с общей и - распределенной памятью. - -* Трехмерная модель АРСС - -** Трехмерная модель АРСС -: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*} - -#+BEAMER: \vspace{0.5cm} - -#+begin_src dot :exports results :file build/arma-pipeline-ru.pdf -digraph G { - - node [fontname="Open Sans",fontsize=10,margin="0.055,0",shape=box,bgcolor="E5E6E5",style="filled",height="0.37"] - graph [nodesep="0.25",ranksep="0.30",rankdir="LR" margin=0] - edge [arrowsize=0.66] - bgcolor="#F5F6F5" - - acf [label="АКФ"] - yule_walker_equations [label="Уравнения\nЮла—Уокера"] - nonlinear_equations [label="Нелинейные\nуравнения"] - ar_process [label="Модель\nАР"] - ma_process [label="Модель\nСС"] - arma_process [label="Модель\nАРСС"] - - acf->yule_walker_equations->ar_process->arma_process - acf->nonlinear_equations->ma_process->arma_process - -} -#+end_src - -#+RESULTS: -[[file:build/arma-pipeline-ru.pdf]] - -#+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{}подъем взволнованной поверхности}; -\node[fill=none,anchor=south east,xshift=-2cm,yshift=-1.75cm] - (epsLabel) at (current page.north east) - {\scriptsize{}белый шум}; -\node[fill=none,baseline,anchor=north west,below=of phi,yshift=0.2cm] - (phiLabel) - {\scriptsize{}коэф. АР}; -\node[fill=none,baseline,anchor=north west,below=of theta,yshift=0.2cm] - (thetaLabel) - {\scriptsize{}коэф. СС}; -\path[->,thick] (zetaLabel.south -| zeta1.north) edge (zeta1.north); -\path[->,thick] (zetaLabel.south -| zeta2.north west) - 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 - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-arma} - -В качестве имитационной модели в данной работе используется модель авторегрессии -скользящего среднего (сокращенно, модель АРСС). Эта модель применяется в -статистике для анализа и прогнозирования одномерных скалярно- и векторно-значных -временных рядов, в данной же работе ее трехмерный аналог адаптирован для -воспроизведения значений подъема взволнованной морской поверхности в дискретные -моменты времени. Имитация морского волнения с помощью одномерной модели АРСС -была изучена в работах Рожкова, Гургенидзе, Трапезникова, Бухановского, Спаноса -и Зельдина. - -Основное уравнение трехмерной модели АРСС представлено на слайде. Параметрами -являются -- дисперсия белого шума, имеющего нормальное распределение, -- коэффициенты авторегрессии и -- коэффициенты скользящего среднего. - -Параметры модели определяются из автоковариационной функции взволнованной -морской поверхности путем решения соответствующих систем уравнений. Для -получения коэффициентов авторегрессии решается система линейных алгебраических -уравнений Юла---Уокера стандартным методом, а для получения коэффициентов -скользящего среднего решается система нелинейных уравнений методом простой -итерации. - -Основным отличием модели АРСС от линейных аналогов является -- использование автоковариационной функции вместо частотно-направленных спектров - морского волнения и -- нефизическая природа модели, поскольку ее формулы не выводятся из - законов сохранения для морского волнения. -Обсудим каждое из них по порядку. - -** АКФ морской поверхности -: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-ru.pdf -digraph G { - - node [fontname="Open Sans",fontsize=10,margin="0.055,0",shape=box,bgcolor="E5E6E5",style="filled"] - graph [nodesep="0.25",ranksep="0.20",rankdir="TB" margin=0] - edge [arrowsize=0.66] - bgcolor="#F5F6F5" - - 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"] - - function->theorem - discrete_function->theorem - field_data->theorem - theorem->acf - -} -#+end_src - -#+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 -: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-ru.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: Плоская волна -#+RESULTS: -[[file:build/acf-propagating-plain-wave-ru.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-ru.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: Плоская стоячая волна -#+RESULTS: -[[file:build/acf-standing-plain-wave-ru.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-ru.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: Волна Стокса -#+RESULTS: -[[file:build/acf-propagating-stokes-wave-ru.pdf]] - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-acf} - -Одним из основных отличий модели АРСС от линейных аналогов является -использование автоковариационной функции вместо частотно-направленных спектров -морского волнения, что позволяет получить ряд преимуществ. Автоковариационная -функция включает в себя не только две пространственные, но и временную -компоненту, что позволяет моделировать форму волны, а не только частоту и -направление движения. Посредством теоремы Винера---Хинчина автоковариационная -функция легко вычисляется аналитически из явной формулы взволнованной -поверхности или численно из дискретно заданной взволнованной поверхности или -натурных данных. Модель способна воспроизводить плоские волны, волны Стокса и -нерегулярное волнение, автоковариационные функции которых показаны на слайде. - -** Определение коэффициентов :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> -:END: - -#+beamer: \label{slide-arma-verification} - -*** Стоячие волны -: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-ru.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("подъем", "высота", "длина", "период"), - 0.1, - xlab="x", - ylab="y", - tck=0.04 -) -#+end_src - -#+caption: Стоячие волны -#+RESULTS: -[[file:build/standing-wave-qqplots-slides-ru.pdf]] - - -*** Прогрессивные волны -: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-ru.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("подъем", "высота", "длина", "период"), - 0.1, - xlab="x", - ylab="y", - tck=0.04 -) -#+end_src - -#+caption: Прогрессивные волны -#+RESULTS: -[[file:build/propagating-wave-qqplots-slides-ru.pdf]] - - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-arma-verification} - -Другим основным отличием модели АРСС от линейных аналогов является ее -нефизическая природа. Формулы модели не выводятся из физических законов -сохранения и модель неспособна воспроизводить индивидуальные волны. Вместо этого -воспроизводится взволнованная морская поверхность как единое целое, -распределения интегральных характеристик которой совпадают с реальными. - -На слайде представлены спрямленные диаграммы (quantile-quantile plots) -распределений различных параметров волн. Чем ближе точки расположены к прямой -линии, тем выше степень совпадения распределений. Как видно из графиков, -распределения параметров прогрессивных волн почти полностью совпадает с -реальным, отличаясь лишь на хвостах, где размер выборки невелик. Распределения -параметров стоячих волн имеют большее расхождение на хвостах, ввиду отсутствия -надежных натурных данных для такого типа волн. - -** Моделирование асимметричности :noexport: -:PROPERTIES: -:BEAMER_act: <presentation> -:END: - -#+begin_src dot :exports results :file build/slides-nit-pipeline-ru.pdf -digraph G { - - node [fontname="Open Sans",fontsize=10,margin="0.055,0",shape=box,fillcolor="#E5E6E5",style="filled",height="0.37"] - graph [nodesep="0.55",ranksep="0.30",rankdir="TB",margin=0,splines=ortho] - edge [fontname="Open Sans",fontsize=10,arrowsize=0.66] - bgcolor="#F5F6F5" - - subgraph step1 { - rank="same" - acf [label="АКФ"] - zeta [label="Поверхность"] - } - - subgraph step2 { - rank="same" - acf_tr [label="АКФ'",fillcolor="#E5C6C5"] - zeta_tr [label="Поверхность'",fillcolor="#E5C6C5"] - } - - acf->zeta [color=invis] - acf->acf_tr [label=" Разложение в ряд\l по полиномам Эрмита\l"] - acf_tr->zeta_tr - zeta_tr->zeta [label="Преобразование\lаппликат\l"] - -} -#+end_src - -#+RESULTS: -[[file:build/slides-nit-pipeline-ru.pdf]] - -#+header: :width 4 :height 1.5 :bg #F5F6F5 :font sans -#+begin_src R :file build/slides-nit-ru.pdf -source(file.path("R", "nonlinear.R")) -par(mar=c(2,2,0.3,0.1),cex=0.7,mgp=c(3,0.3,0)) -args <- list( - graphs=c('Гауссово', 'РГШ', 'АНР'), - linetypes=c('solid', 'dashed', 'dotted'), - axis=list(tck=-0.04), - legend="bottom" -) -args$title <- NULL -arma.plot_nonlinear(file.path("build", "nit-standing"), args) -#+end_src - -#+RESULTS: -[[file:build/slides-nit-ru.pdf]] - - -* Поле давлений под дискретно заданной взволнованной поверхностью - -** Уравнения потенциального течения -: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{уравнение неразрывности} - \\ - & \phi_t+\frac{1}{2} |\vec{\upsilon}|^2 + g\zeta=-\frac{p}{\rho} - & \text{динамическое ГУ на }z=\zeta(x,y,t) - \\ - & D\zeta = \nabla \phi \cdot \vec{n} - & \text{кинематическое ГУ на }z=\zeta(x,y,t)\\ -\end{align*}% -\vspace{-2.5\baselineskip}% -\end{beamercolorbox}% -% -\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}% -#+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}% -Решение в рамках линейной теории:% -\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}% -Общее решение:\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 - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-potential-flow} - -Модель АРСС воспроизводит волны, распределения характеристик которых совпадает с -реальными, а значит, результирующую взволнованную морскую поверхность можно -использовать для вычисления поля давлений, создаваемого волнами. В то же время -поверхность может содержать волны произвольных амплитуд, из-за чего методы -вычисления поля давлений, используемые в рамках линейной теории волн, -неприменимы для модели АРСС. В связи с этим уравнения, описывающие движение -жидкости были решены без упрощений линейной теории. - -Уравнения представлены на слайде. Это уравнение неразрывности (или уравнение -Лапласа), уравнение движения (или динамическое граничное условие) и -кинематическое граничное условие на свободной поверхности. Поскольку -взволнованная поверхность известна, второе уравнение превращается в явную -формулу для вычисления давлений, а задача сводится к поиску потенциала скорости -\(\phi\). На слайде красным цветом выделены множители, которыми пренебрегают в -рамках линейной теории волн. - -Система решается методом Фурье с использованием некоторых физических и -математических упрощений, описанных в работе. Полное решение записывается в виде -свертки некоторой оконной функции с суперпозицией производных взволнованной -поверхности. Полученное решение отличается от решения из линейной теории -наличием удаленных множителей и другой записью оконной функции. Если -воспользоваться предположением о малости амплитуд волн, то полученное решение -сводится к решению из линейной теории волн. - -** Верификация метода выч. давлений -: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-ru.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=" Линейная\n теория",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=" Общее\n решение",outer=FALSE,adj=0,line=-1.5,cex.main=0.77) -) -#+end_src - -#+RESULTS: -[[file:build/slides-plain-wave-velocity-field-comparison-ru.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-ru.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=" Малая\n амплитуда",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="Большая\n амплитуда",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-ru.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-ru.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=" Нерегулярное волнение",outer=FALSE,adj=0.01,line=-1.5,cex.main=0.77) -) -#+end_src - -#+RESULTS: -[[file:build/slides-irregular-wave-velocity-field-ru.pdf]] - - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-potential-verification} - -Чтобы оценить отличия полученного решения, оно было сопоставлено с известными -решениями. - -Если сравнивать с решением из линейной теории волн (слева сверху), то для -синтетических волн большой амплитуды использование нового решения приводит к -смещению области, в которой сконцентрирована основная энергия волны ближе к -гребню. - -Если сравнивать с решением для волн малых амплитуд (справа сверху), то новое -решение работает как для волн малых, так и больших амплитуд, а для волн -малых амплитуд можно говорить о рациональном соответствии между обоими -решениями. - -Если сравнивать с решением из линейной теории волн (снизу), то для нерегулярного -волнения, воспроизведенного моделью АРСС, новое решение показывает в среднем на -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}$. - -* Программный комплекс - -** Программная реализация -:PROPERTIES: -:BEAMER_act: <presentation> -:END: - -#+beamer: \label{slide-implementation} - -#+header: :width 1.6 :height 1.6 :bg #F5F6F5 :font sans -#+begin_src R :file build/slides-ar-cubes-ru.pdf -source(file.path("R", "common.R")) -par(mgp=c(3,0.4,0), cex=0.6, mar=c(1,2,2,0)) -arma.plot_ar_cubes_2d_v2( - 3, - 3, - xlabel="Индекс части (X)", - ylabel="Индекс части (Y)", - list( - arrow_args=list(lwd=2,angle=7,length=0.125), - adj_x=0.4, - adj_y=0.5, - no_axes=TRUE - ) -) -#+end_src - -#+RESULTS: -[[file:build/slides-ar-cubes-ru.pdf]] - -[[file:build/arma-pipeline-ru.pdf]] - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-implementation} - -Программный комплекс состоит из программных реализаций модели АРСС и линейной -модели Лонге---Хиггинса и метода вычисления давлений. Для каждой модели и метода -написана параллельная реализация для систем с общей памятью. Высокая -производительность обеспечивается параллельной реализацией каждой модели и -метода для систем с общей памятью и использованием быстрых преобразований Фурье, -где это возможно. - -Программная реализация модели авторегрессии включает в себя планировщик задач, -который обеспечивает параллельную генерацию отдельных блоков, на которые -разделяется взволнованная поверхность, с учетом авторегрессионных зависимостей. -Сама формула модели сводится к вычислению большого количества полиномов, что -эффективно реализуется с помощью инструкций процессора FMA (Fused Multiply-Add). - -Программная реализация модели Лонге---Хиггинса сводится к простому параллельному -суммированию гармоник в каждой точке поверхности. - -Вычисление коэффициентов авторегрессии реализуется стандартным методом решения -систем линейных алгебраических уравнений с симметричными матрицами. Вычисление -коэффициентов скользящего среднего реализуется методом простой итерации. - -Практически все остальные модели и методы используют быстрое преобразование -Фурье. -- Программная реализация модели скользящего среднего сводится к параллельной - свертке на основе быстрых преобразований Фурье. -- Программная реализация вычисления давлений сводится к четырем быстрым - преобразованиям Фурье с большим количеством трансцендентных математических - функций. -- Вычисление автоковариационной функции сводится к трем быстрым преобразованиям - Фурье. - -** Система с общей памятью -: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="АР", - ma.x="СС", - lh.x="ЛХ", - ar.y="АР", - ma.y="СС", - lh.y="ЛХ", - Row.names="\\orgcmidrule{2-4}{5-6}Подпрограмма" -) -row_names <- list( - determine_coefficients="Определение коэф.", - validate="Проверка сходимости", - generate_surface="Генерация поверхности", - nit="НБП", - write_all="Запись вывода в файл", - copy_to_host="Копирование данных с GPU", - velocity="Выч. потенциалов скорости" -) -arma.print_openmp_vs_opencl(model_names, row_names) -#+end_src - -#+attr_latex: :booktabs t -#+RESULTS: tab-arma-performance - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-smp} - -На слайде представлены результаты тестирования производительности различных -компонент программного комплекса на системах с общей памятью с использованием -OpenMP (процессора) и OpenCL (видеокарты). Из таблицы видно, что -- большую часть времени система тратит на генерацию взволнованной поверхности, -- использование видеокарты выгодно только для модели Лонге---Хиггинса и - вычисления давлений и -- модель авторегрессии более производительна, чем модель скользящего среднего, - несмотря на использование быстрых преобразований Фурье. - -** Система с распределенной памятью -:PROPERTIES: -:BEAMER_act: <presentation> -:END: - -#+beamer: \label{slide-mpp} - -*** Column 1 -:PROPERTIES: -:BEAMER_col: 0.47 -:END: - -#+header: :width 2 :height 2 :bg #F5F6F5 :font sans -#+begin_src R :file build/slides-bscheduler-performance-ru.pdf -source(file.path("R", "benchmarks.R")) -par(mgp=c(3,0.4,0), cex=0.7, mar=c(2,2,0,0)) -data <- arma.load_bscheduler_performance_data() -arma.plot_bscheduler_performance_data( - data, - list( - openmp="OpenMP", - bsc1="Bscheduler (один узел)", - bsc2="Bscheduler (два узла)" - ) -) -title(xlab="Размер взволнованной поверхности", ylab="Время, сек.") -#+end_src - -#+RESULTS: -[[file:build/slides-bscheduler-performance-ru.pdf]] - -*** Column 2 -:PROPERTIES: -:BEAMER_col: 0.47 -:END: - -#+name: fig-master-slave-failure -#+header: :width 2 :height 2 :bg #F5F6F5 :font sans -#+begin_src R :file build/slides-master-slave-failure-ru.pdf -source(file.path("R", "benchmarks.R")) -par(mgp=c(3,0.4,0), cex=0.7, mar=c(2,2,0,0)) -data <- arma.load_master_slave_failure_data() -arma.plot_master_slave_failure_data( - data, - list( - master="Bscheduler (главный узел)", - slave="Bscheduler (подчиненный узел)", - nofailures="Bscheduler (без выхода из строя)" - ) -) -title(xlab="Размер взволнованной поверхности", ylab="Время, сек.") -#+end_src - -#+RESULTS: fig-master-slave-failure -[[file:build/slides-master-slave-failure-ru.pdf]] - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-mpp} - -Для модели авторегрессии сделана реализация для систем с распределенной памятью -и отказоустойчивый планировщик задач. Планировщик позволяет добиться увеличения -производительности с увеличением количества узлов, которое близко к линейному -(график слева). Также планировщик позволяет продолжить вычисления, даже если -один из узлов кластера выходит из строя. При этом перезапускается только та -часть задачи, которая вычислялась на вышедшем из строя узле, и теряется -производительность только этого узла. - -** Диаграмма :noexport: -:PROPERTIES: -:BEAMER_env: fullframe -:END: - -#+begin_export latex - \tikzset{DataBlock/.style={rectangle,draw=spbuDarkGray,thick,text width=2cm,align=center}}% - \tikzset{Terminator/.style={circle,fill=spbuDarkGray,thick,minimum size=0.4cm,text width=0pt}}% - \tikzset{Comment/.style={draw=none,fill=none,text width=8.8cm}}% - \small - \begin{tikzpicture}[x=6cm,y=0.80cm] - % UML blocks - \node[Terminator] (umlStart) at (0,0) {}; - \node[DataBlock] (umlSpec) at (0,-1) {$S(\omega,\theta)$}; - \node[DataBlock] (umlK) at (0,-2) {$K_{i,j,k}$}; - \node[DataBlock,fill=spbuWhite2] (umlK2) at (0,-3) {$K_{i,j,k}^{*}$}; - \node[DataBlock] (umlPhi) at (0,-4) {$\Phi_{i,j,k}$}; - \node[DataBlock] (umlEps) at (0,-5) {$\epsilon_{i,j,k}$}; - \node[DataBlock,fill=spbuWhite2] (umlZeta2) at (0,-6) {$\zeta_{i,j,k}^{*}$}; - \node[DataBlock] (umlZeta) at (0,-7) {$\zeta_{i,j,k}$}; - \node[DataBlock] (umlVelocity) at (0,-8) {$\phi(x,y,z)$}; - \node[DataBlock] (umlPressure) at (0,-9) {$p(x,y,z)$}; - \node[Terminator] (umlEnd) at (0,-10) {}; - \node[circle,draw=spbuDarkGray,thick,minimum size=0.5cm,text width=0pt] at (0,-10) {}; - - % edges - \path[->,thick] (umlStart.south) edge (umlSpec.north); - \path[thick] (umlSpec.south) edge (umlK.north); - \path[thick] (umlK.south) edge (umlK2.north); - \path[thick] (umlK2.south) edge (umlPhi.north); - \path[thick] (umlPhi.south) edge (umlEps.north); - \path[thick] (umlEps.south) edge (umlZeta2.north); - \path[thick] (umlZeta2.south) edge (umlZeta.north); - \path[thick] (umlZeta.south) edge (umlVelocity.north); - \path[thick] (umlVelocity.south) edge (umlPressure.north); - \path[->,thick] (umlPressure.south) edge (umlEnd.north); - - % comments - \node[align=left,draw=none] at (1,-1) {Частотно-направленный спектр волнения,}; - \node[Comment] at (1,-2) {автоковариационная функция (АКФ),}; - \node[Comment] at (1,-3) {преобразованная АКФ,}; - \node[Comment] at (1,-4) {коэффициенты авторегрессии,}; - \node[Comment] at (1,-5) {белый шум,}; - \node[Comment] at (1,-6) {преобразованная реализация,}; - \node[Comment] at (1,-7) {реализация взволнованной поверхности,}; - \node[Comment] at (1,-8) {потенциал скорости,}; - \node[Comment] at (1,-9) {давление.}; - \end{tikzpicture} -#+end_export - -** Оптимизация записи в файл :noexport: -#+begin_export latex - \begin{columns}[T] - \begin{column}{0.575\textwidth} - \begin{block}{\small Диаграмма событий} - \vspace{0.25\baselineskip}% - \includegraphics{overlap-color} - \end{block} - \end{column} - \begin{column}{0.425\textwidth} - \begin{block}{\small Время генерации} - \vspace{0.25\baselineskip}% - \includegraphics{performance-color} - \end{block} - \end{column} - \end{columns} -#+end_export - -** Отказоустойчивость :noexport: -#+begin_export latex -\centering% -\includegraphics{mpp-time-color} -#+end_export - -** Выводы :noexport: -Программная реализация -- масштабируется на SMP и MPP системы, -- эффективна и без использования GPU -- и отказоустойчива. - -* Заключение -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -** Заключение -:PROPERTIES: -:BEAMER_act: <presentation> -:END: - -#+beamer: \label{slide-conclusion} - -- Разработана трехмерная модель для генерации волн произвольных амплитуд. -- Разработан метод вычисления поля давлений без предположений о малости амплитуд - волн. -- Разработан программный комплекс для систем с общей и распределенной памятью. - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-conclusion} - -Цель исследования заключалась в изучении и разработке альтернативных -математических моделей и численных методов, которые бы позволили выйти за рамки -линейной теории волн в задаче имитационного моделирования морского волнения. В -рамках исследования были разработаны -- трехмерная модель для генерации волн произвольных амплитуд, -- метод вычисления поля давлений без предположений о малости амплитуд волн, -- программный комплекс для систем с общей и распределенной памятью. - -** Апробация -:PROPERTIES: -:BEAMER_act: <presentation> -:END: - -#+beamer: \label{slide-validation} -#+beamer: \small - -- Конференции: ISSW'14, HPCS'15, HPCS'16, HPCS'17. -- Глава в книге The Ocean in Motion (Springer Oceanography). - -*** Columns -:PROPERTIES: -:BEAMER_env: columns -:BEAMER_opt: T -:END: - -**** LAMP4 -:PROPERTIES: -:BEAMER_col: 0.30 -:BEAMER_env: block -:END: - -#+ATTR_LATEX: :width \linewidth -[[file:graphics/slides/lamp4-ar-waves.png]] - -**** Ascheduler -:PROPERTIES: -:BEAMER_col: 0.30 -:BEAMER_env: block -:END: - -#+ATTR_LATEX: :width \linewidth -[[file:graphics/slides/spark-logo.png]] - -**** HPCS'15 -:PROPERTIES: -:BEAMER_col: 0.30 -:BEAMER_env: block -:END: - -#+ATTR_LATEX: :width \linewidth -[[file:graphics/slides/hpcs-15-poster-paper-award.png]] - -#+latex: \setbeamerfont{block title}{size=\normalsize} - -** Notes -:PROPERTIES: -:BEAMER_env: ignoreheading -:END: - -#+beamer: \spbuSlide{slide-validation} - -Доклады по теме диссертации были представлены на конференциях International Ship -Stability Workshop и High-Performance Computing & Simulation. По результатам -исследования опубликована глава в книге The Ocean in Motion. - -Модель авторегрессии и метод вычисления давлений были интегрированы в -программный комплекс Large Amplitude Motion Program (LAMP4). - -На основе отказоустойчивого планировщика задач был сделан аналог для фреймворка -обработки больших массивов данных Apache Spark. - -Доклад на конференции HPCS'15 был признан лучшим устным докладом. - -** Взволнованная морская поверхность :noexport: -:PROPERTIES: -:BEAMER_act: <presentation> -:END: - -#+begin_export latex -\begin{tikzpicture}[remember picture,overlay] - \node[inner sep=0pt,rectangle] at (current page.center){% - \includegraphics[width=0.95\paperwidth]{wavy} - };% -\end{tikzpicture} -#+end_export - diff --git a/arma-thesis-ru.org b/arma-thesis-ru.org @@ -10,6 +10,8 @@ #+LATEX_HEADER_EXTRA: \supervisor{Научный руководитель\\д.т.н. Дегтярев Александр Борисович} #+LATEX_HEADER_EXTRA: \newcites{published}{Список опубликованных по теме диссертации работ} +#+latex: \maketitlepage + * Введение **** Актуальность темы. Программы, моделирующие поведение судна на морских волнах, широко применяются diff --git a/arma-thesis.org b/arma-thesis.org @@ -11,6 +11,8 @@ #+LATEX_HEADER_EXTRA: \newcites{published}{Publications on the subject of thesis} #+LATEX_HEADER_EXTRA: \AtBeginDocument{\setcounter{page}{146}} +#+latex: \maketitlepage + * Introduction **** Topic relevance. Software programmes, which simulate ship behaviour in sea waves, are widely used diff --git a/gost.cls b/gost.cls @@ -102,7 +102,7 @@ \setcounter{page}{2}% } -\AtBeginDocument{\maketitlepage} +%\AtBeginDocument{\maketitlepage} % clear page before each section \RequirePackage{etoolbox}