iccsa-20-wind

git clone https://git.igankevich.com/iccsa-20-wind.git
Log | Files | Refs

commit 2a7c8d7a45d5230b37b8f1f66d85f215cd723cea
parent e7891950678380a344eb8731c6c36447f9d00492
Author: Ivan Gankevich <i.gankevich@spbu.ru>
Date:   Tue, 30 Jun 2020 12:17:29 +0300

Talk.

Diffstat:
Makefile | 47++++++++++++++++++++++-------------------------
talk.org | 106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 128 insertions(+), 25 deletions(-)

diff --git a/Makefile b/Makefile @@ -8,36 +8,33 @@ FLAGS = \ -bibtex \ -shell-escape -NAME = iccsa-20-wind -SLIDES = iccsa-20-wind-slides - -all: build/$(NAME).pdf -all: build/$(SLIDES).pdf +all: build/main.pdf +all: build/slides.pdf all: build/254-Gankevich-Air-flow-around-ship.pdf -build/$(NAME).pdf: build/inkscape/law-of-reflection.eps -build/$(NAME).pdf: build/gnuplot/verification.eps -build/$(NAME).pdf: build/gnuplot/velocity.eps -build/$(NAME).pdf: build/gnuplot/openmp.svg -build/$(NAME).pdf: build/ships/aurora.eps -build/$(NAME).pdf: build/ships/diogen.eps -build/$(NAME).pdf: build/ships/micw.eps -build/$(NAME).pdf: main.tex -build/$(NAME).pdf: +build/main.pdf: build/inkscape/law-of-reflection.eps +build/main.pdf: build/gnuplot/verification.eps +build/main.pdf: build/gnuplot/velocity.eps +build/main.pdf: build/gnuplot/openmp.svg +build/main.pdf: build/ships/aurora.eps +build/main.pdf: build/ships/diogen.eps +build/main.pdf: build/ships/micw.eps +build/main.pdf: main.tex +build/main.pdf: @echo " LATEX $<" @-$(LATEXMK) $(FLAGS) -f main.tex -build/$(SLIDES).pdf: build/gnuplot/aurora.eps -build/$(SLIDES).pdf: build/gnuplot/cylinder-1.eps -build/$(SLIDES).pdf: build/gnuplot/cylinder-2.eps -build/$(SLIDES).pdf: build/gnuplot/openmp.svg -build/$(SLIDES).pdf: build/gnuplot/ship-roll.eps -build/$(SLIDES).pdf: build/gnuplot/ship-velocity.eps -build/$(SLIDES).pdf: build/inkscape/law-of-reflection.eps -build/$(SLIDES).pdf: build/ships/aurora.eps -build/$(SLIDES).pdf: build/ships/diogen.eps -build/$(SLIDES).pdf: build/ships/micw.eps -build/$(SLIDES).pdf: slides.tex +build/slides.pdf: build/gnuplot/aurora.eps +build/slides.pdf: build/gnuplot/cylinder-1.eps +build/slides.pdf: build/gnuplot/cylinder-2.eps +build/slides.pdf: build/gnuplot/openmp.svg +build/slides.pdf: build/gnuplot/ship-roll.eps +build/slides.pdf: build/gnuplot/ship-velocity.eps +build/slides.pdf: build/inkscape/law-of-reflection.eps +build/slides.pdf: build/ships/aurora.eps +build/slides.pdf: build/ships/diogen.eps +build/slides.pdf: build/ships/micw.eps +build/slides.pdf: slides.tex @echo " LATEX $<" @-$(LATEXMK) $(FLAGS) -xelatex -f $< diff --git a/talk.org b/talk.org @@ -0,0 +1,106 @@ +* Slide 1 + +Good afternoon, ladies and gentlemen! My name is Ivan and I will talk about ship +motion simulator that we develop in our department called Virtual Testbed. My +first talk is about air flow solver that is used to efficiently simulate air +flow around ship hull. + +* Slide 2 + +In ship motion simulators the air flow is modelled mainly to measure the effect +of the wind on ship roll angle, i.e. how the stability of the ship changes due +to the wind. Since the effect is usually smaller than the effect from ocean +waves, many simulators neglect it and do not take air flow into account, others +use numerical schemes to compute it. Numerical schemes give precise solution, +but are too inefficient to be used for real-time visualisation of ship motion. +This deficiency led us to the development of the new analytic method that is +precise enough but also fast enough to be used in real-time visualisation. + +* Slide 3 + +Our method, like many others, starts with governing system of equations for +potential flow which includes +- equation of continuity (that describes conservation of mass), +- equation of motion (that describes conservation of momentum) and +- boundary condition on the ship hull (that nullifies wind velocity on the + boundary). +The ship hull is defined by a parametric surface and surface normal exists at +any point on the surface. This approach so far is classical. What differentiates +this approach from many others is the use of the /law of reflection/ to write the +solution to this system of equations. + +* Slide 4 + +Informally, the law of reflection states that +- the incident ray, the reflected ray and the surface normal lie in the same plane and +- the angle of incidence equals the angle of reflection. +This law describes how light ray reflects from the mirror, but we use it to +describe how air particles reflect from the ship hull. In the literature we +found similar usage of this law for ocean waves which is the subject of my next +talk. + +In the picture \(\vec\upsilon_r\) is velocity vector of the reflected air +particle. It is derived from the velocity vector of incident air particle using +the formula written using basic geometric principles. Using this notation the +solution for the governing system of equations is written like this and total +velocity is written simply as the sum of velocity vectors for incident and +reflected air particles. The coefficient \(C\) is derived from the boundary +condition and quite surprisingly equals 1. So, on the ship hull boundary total +velocity is simply the sum of the velocities of the reflected and incident air +particles! In other words, the law of reflection is accurate enough to describe +the air flow on the boundary. + +In order to compute air flow near the boundary we introduce quadratic decay term +(that nullifies the effect of the reflection with the squared distance from the +boundary) and take an average velocity of air particles reflected from each +point of the ship hull surface. You can find full derivations in the paper. + +* Slide 5 + +We compared the formula to the known formula for potential flow around a cylinder. +This formula is usually written in polar coordinates but if you write it in the +Cartesian form you will get the formula on the right. And if you take our solution +and use explicit formula for cylinder normal and flow velocity you will get the same +expression on the right. So, quite surprisingly, our solution on the boundary is +mathematically equivalent to the known solution for a cylinder! The advantage of +our solution is that you can use it for the body of any form, not just cylinder. + +Near the boundary the solutions differ, because of the introduction of the +artificial quadratic decay term. However, in order to simulate the effect on +ship motions we need only the solution on the boundary. + +* Slide 6 + +We applied our solution to simulate air flow around Aurora's ship hull. We +directed the wind the starboard of the ship and after a number of experiments +found that our formula cannot bend the ship no matter how large the wind +velocity is. The reason for this is that ship hull is symmetric and the +pressure on the starboard equals the pressure on the port. To solve this +problem, we introduced a coefficient that controls reflection ratio. If the +coefficient is \(1\) we use the usual law of reflection, and if it is \(0\) we +do not use reflection. We set the coefficient to \(1/2\) and ran experiments +again, only to find that we need a hurricane in order to bend the ship by one +degree. + +* Slide 7 + +In order to revive our hope in the project, we decided to measure performance of +our solvers. Analytic solutions never failed to produce astonishing speedups on +graphical accelerators and it was the case for air flow solver. We ran +performance benchmarks using three ships of different sizes with different +number of panels on the three different computers. As you can see from the +table, OpenCL version for graphical accelerators outperforms OpenMP version for +CPUs by an order of magnitude in all cases. At least, we can write efficient code! + +* Slide 8 + +To summarise, in this work we +- found a new analytic solution that describes potential flow around ship hull + based on the law of reflection, +- this solution is equivalent to the solution for a cylinder, but can be used for + the object of any form, +- this solution has high computational performance especially on graphical accelerators, +- but it is not good enough to accurately simulate the effect of the + wind on the ship hull due to the symmetry of the latter. +The future work is to incorporate turbulence in the model to see if its enough to solve +the symmetry problem.