iccsa-20-wind

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

commit a9332f19131cda7612e9117e51db7175802f7c64
parent 44910e3bc312e2cd50d0329f6e06c6e851778db4
Author: Ivan Gankevich <i.gankevich@spbu.ru>
Date:   Sun, 26 Apr 2020 18:55:21 +0300

More sound experimental data.

Diffstat:
Makefile | 3+++
gnuplot/roll | 5-----
gnuplot/velocity | 5-----
gnuplot/velocity.gnuplot | 13+++++++------
gnuplot/wind-aurora.dat | 11+++++++++++
main.tex | 50+++++++++++++++++++++++++++++++++++---------------
6 files changed, 56 insertions(+), 31 deletions(-)

diff --git a/Makefile b/Makefile @@ -54,4 +54,7 @@ clean: diff: @python3 python/wind-diff.py +build/gnuplot/velocity.svg: gnuplot/wind-aurora.dat +build/gnuplot/roll.svg: gnuplot/wind-aurora.dat + .PHONY: build clean diff diff --git a/gnuplot/roll b/gnuplot/roll @@ -1,5 +0,0 @@ -10 0.00194 -20 0.00081 -30 0.00511 -40 0.01151 -50 0.42914 diff --git a/gnuplot/velocity b/gnuplot/velocity @@ -1,5 +0,0 @@ -10 0.00019 -20 0.00007 -30 0.00043 -40 0.00104 -50 0.02141 diff --git a/gnuplot/velocity.gnuplot b/gnuplot/velocity.gnuplot @@ -2,22 +2,23 @@ set terminal svg dynamic size 1080/4*1.9, 1080/4 round enhanced font 'Liberation set output 'build/gnuplot/velocity.svg' s = 180.0/pi #static_roll = 0.247885 -static_roll = 0.246736 +#static_roll = 0.246736 +static_roll = 0 unset key set grid set border 1+2 back set xtics nomirror out offset 0,0.5 set ytics nomirror out offset 0.5,0 -set xrange [0:*] -set yrange [0:*] +#set xrange [0:*] +#set yrange [0:*] load 'gnuplot/rdbu.pal' set multiplot layout 1,2 set xlabel 'Wind velocity, m/s' offset 0,1 set ylabel 'Roll angle, °' offset 1.5,0 -plot 'gnuplot/roll' using 1:(($2-static_roll)*s) with lines smooth csplines ls 1 lw 2 +plot 'gnuplot/wind-aurora.dat' using 1:($3*s) with linespoints ls 1 lw 2 pt 7 ps 0.5 -set ylabel 'Ship velocity, km/h' -plot 'gnuplot/velocity' using 1:($2/1000*3600) with lines smooth csplines ls 1 lw 2 +set ylabel 'Ship velocity, m/s' +plot 'gnuplot/wind-aurora.dat' using 1:2 with linespoints ls 1 lw 2 pt 7 ps 0.5 diff --git a/gnuplot/wind-aurora.dat b/gnuplot/wind-aurora.dat @@ -0,0 +1,11 @@ +0 0.00551889 0.00190208 0.00350302 0.0115808 +10 0.0207171 0.00203096 0.0145643 0.0176189 +20 0.0680696 0.00801415 0.0478297 0.0400022 +30 0.15153 0.012944 0.103086 0.0493476 +40 0.275916 0.0240186 0.180676 0.0653474 +50 0.451627 0.0376541 0.280559 0.0982145 +60 0.692623 0.0560734 0.402719 0.141164 +70 1.01494 0.0764769 0.547194 0.191896 +80 1.43697 0.0984829 0.714244 0.25047 +90 1.99641 0.128802 0.93567 0.316835 +100 2.72433 0.163923 1.27381 0.391012 diff --git a/main.tex b/main.tex @@ -349,11 +349,27 @@ containerships, but other ships are also affected. We measured how wind speed affects Aurora's transversal velocity and roll angle. For that purpose we made wind blow directly in the starboard of the -ship and varied wind speed. We have found that in order to produce -1\textdegree{} static roll angle we need wind speed of 27 m/s -(fig.~\ref{fig-roll-velocity}), and wind with that speed makes the ship move in -transversal direction with the speed of 0.6 km/h. We expect these numbers to be -smaller for smaller ships. +ship and varied wind speed. We stopped the experiment after 60 seconds and +measured maximum roll angle and maximum transversal velocity. We have found +that in order to produce 1\textdegree{} static roll angle we need wind speed of +\(\approx{}35\) m/s (fig.~\ref{fig-roll-velocity}), and wind with that speed +makes the ship move in transversal direction with the speed of \(\approx{}0.2\) +m/s. We expect these numbers to be smaller for smaller ships. + +We have found that the law of reflection~\eqref{eq-reflected} in its original +form does not allow to +calculate the effect of wind on the ship hull: it happens because the ship is +symmetic and the pressure +on the leeward and windward side of the ship is the same~--- which is not the +case for real-world phenomena where the pressure is different due to +turbulence. To overcome this problem we introduce a coefficient \(\alpha\) that +controls reflection ratio: +\begin{equation*} + \vec\upsilon_r = \vec\upsilon - 2 \alpha \left(\vec\upsilon\cdot\vec{n}\right)\vec{n}. +\end{equation*} +When \(\alpha=1\) this formula equals~\eqref{eq-reflected}, when \(\alpha=0\) there +is no reflection and the wind does not change its direction. In our tests we +set \(\alpha=0.5\) on the leeward side of the ship hull. \begin{figure} \centering @@ -462,17 +478,17 @@ velocity term reach maximum value for the point on the boundary, and for the point near the boundary the solution includes reflected velocity vectors for each panel. -Wind speed of 27 m/s matches storm with 9--12.5 m high waves on the Beaufort +Wind speed of 35 m/s matches hurricane with 14 m high waves on the Beaufort scale which would affect the ship more severely than the wind. Nevertheless, in intelligent onboard systems even small variations in static roll at less severe -weather conditions have to be considered for the correct operation of the system. +weather conditions have to be considered for the correct operation of the +system. -Static roll angle of 10\textdegree{} seems unnatural. We explain it by the fact that in -our experiment wind load on the ship is constant whereas in real-world scenario -wind blows in gusts. Ocean waves at wind speed of 50 m/s are so high that they -affect wind field, whereas in our experiment there were no waves, as our model -does not take into account wind-wave interactions. So, large roll angle -is a result of pure wind-ship interaction. +The introduction of the coefficient \(\alpha\) that controls reflection ratio +is the simplest way of taking turbulence into account. \(\alpha<1\) increases +the wind speed on the leeward side of the ship as a result of wind ``going +around'' the ship hull. More sophisticated turbulence model would give more +accurate results. Performance benchmarks showed that performance of both OpenMP and OpenCL solvers increases from the least powerful (DarkwingDuck) workstation to the @@ -503,7 +519,10 @@ to bodies of any geometry. We applied this model to simulate ship motions under the effect of wind with constant speed and direction (and in the absence of all other effects except buoyancy force), and discovered that to get static roll angle of 1\textdegree{} -we need wind speed that occur only in storm weather (10 on the Beaufort scale). +we need wind speed of a hurricane (12 on the Beaufort scale). Also, simulation +of ship motions due to wind is not possible without taking into account +turbulence, but using the simple coefficient that controls reflection ratio is +enough to adapt the model for this kind of simulation. From the computational standpoint the model shows high performance on modern processors as well as graphical accelerators due to linear memory access pattern @@ -515,7 +534,8 @@ Stratification~--- an increase of wind speed with height~--- is known phenomena in atmosphere which affects wind field around tall ships, and thus may improve accuracy of our solver. The motivation behind including circular motion is to better understand air motion around object and the fact that linear motion is a -special case of it when the circle radius is infinity. +special case of it when the circle radius is infinity. Another possible +direction of future work is to use more advanced turbulence model. \subsubsection*{Acknowledgements.} Research work is supported by Saint Petersburg State University (grants