iccsa-19-vtestbed

git clone https://git.igankevich.com/iccsa-19-vtestbed.git
Log | Files | Refs

commit b219bcc3ce769589c0d392fef7331cbed4e18c1a
parent 7b849fc4d1adb299062925df54b23c1b5c0ca74d
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Sat, 23 Mar 2019 12:38:33 +0300

pressure force

Diffstat:
main.tex | 34++++++++++++++++++++++++++++++++--
references.bib | 15+++++++++++++++
2 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/main.tex b/main.tex @@ -238,7 +238,7 @@ the same values of velocity potential field as direct application of the formula from linear wave theory. Formula~\eqref{eq:phi} is particularly suitable for computation on a graphical -acelerator: it contains transcendental mathematical functions (complex +accelerator: it contains transcendental mathematical functions (complex exponents) that help offset slow global memory loads and stores, it is explicit which makes it easy to compute in parallel and it is written using Fourier transforms that are efficient to compute on a graphical @@ -250,8 +250,38 @@ to~\cite{gankevich2018thesis,gankevich2018ocean} for in-depth study. \subsection{Pressure force computation} \label{sec:pressure-force} +There are three stages of pressure force computation: determining wetted +surface of a ship hull, computing wave pressure field under wavy surface, and +computing pressure force acting on a ship hull. + +In order to determine wetted surface, ship hull is decomposed into triangular +panels (faces) that approximate its geometry. Then for each panel the algorithm +determines its position relative to wavy surface. If it is fully submerged, it +is considered wetted; if it is partially submerged, the algorithm computes +intersection points using bisection method and wavy surface interpolation, and +slices the part of the panel which is above the wavy surface (for simplicity +the slice is assumed to be straight line, as is the case for sufficiently small +panels). + Wave pressure at any point under wavy surface is computed using dynamic -boundary condition from~\eqref{eq:problem} as an explicit formula. +boundary condition from~\eqref{eq:problem} as an explicit formula. Then the +pressure is interpolated in the centre of each panel out of which the ship hull +is composed to compute pressure force acting on a ship hull. + +It is straightforward to rewrite pressure computation for a graphical +accelerator as its algorithm reduces to looping over large collection of panels +and performing the same calculations for each of them; however, dynamic +boundary condition contains temporal and spatial derivatives that have to +computed on a graphical accelerator. Although, computing derivatives on a +processor is fast, copying the results to accelerator's main memory proved to +be inefficient as there are four arrays (one for each dimension) that need to +be allocated and transferred. Simply rewriting code for OpenCL proved to be +even more inefficient due to irregular memory access pattern for different +array dimensions. So, we resorted to implementing algorithm described +in~\cite{micikevicius2009derivative}, that stores intermediate results in the +local memory of the accelerator. Using this algorithm allowed us to store +arrays of derivatives entirely in graphical accelerator's main memory and +eliminate data transfer altogether. \subsection{Translational and angular motion computation} diff --git a/references.bib b/references.bib @@ -54,6 +54,21 @@ number = {6} } +@InProceedings{ micikevicius2009derivative, + author = {Micikevicius, Paulius}, + title = {{3D} Finite Difference Computation on {GPUs} Using {CUDA}}, + booktitle = {Proceedings of 2\textsuperscript{nd} Workshop on General + Purpose Processing on Graphics Processing Units}, + series = {GPGPU-2}, + year = {2009}, + isbn = {978-1-60558-517-8}, + location = {Washington, D.C., USA}, + pages = {79--84}, + doi = {10.1145/1513895.1513905}, + publisher = {ACM}, + address = {New York, NY, USA} +} + @InProceedings{ varela2011interactive, title = {Interactive Simulation of Ship Motions in Random Seas based on Real Wave Spectra.},