ISPH modelling of an oscillating wave surge converter using an OpenMP-based parallel approach


Fluid–structure interactions occurring between a wave train and an oscillating wave surge converter (OWSC) are studied in this paper using smoothed particle hydrodynamics (SPH). SPH is an alternative numerical method to conventional computational fluid dynamics for studying complex free surface flows. A new open multi-processing (OpenMP)-based parallel SPH code is developed and tested on a wave impacting an OWSC. An incompressible SPH (ISPH) method is implemented here to avoid spurious pressure oscillations, and an OpenMP approach is employed due to its relative ease of coding. The simulation results show good agreement with the experimental data. The performance of the new parallel SPH code is also reported for the water surge from a canonical dam break impinging on a tall square structure.


Meshless methods date back almost four decades. The oldest meshless particle method is smoothed particle hydrodynamics (SPH), which was developed in the 1970s to study compressible inviscid problems in astrophysics by Gingold and Monaghan (1977) and Lucy (1977). SPH is of interest for hydrodynamic problems due to its Lagrangian and meshless characteristics. The interactions between waves and wave energy converters (WECs), commonly lead to a large motion of the WEC. To model these large motions, conventional CFD methods require expensive and complicated grid moving algorithms. Particle-based SPH is favored for simulating flows with large motion since a grid is not required when solving the Lagrangian formulation of the Navier–Stokes equations. The free surface is captured implicitly in the SPH method without the need for solving an additional equation, such as volume-of-fluid (VOF) or level-set (LS) approaches in conventional CFD methods. On the other hand, the relatively expensive SPH method was developed to study compressible inviscid flows (astrophysics), therefore, modifications are necessary for hydrodynamic applications. SPH has been applied to a diverse range of free surface flows from wave propagation in Monaghan (1994), wave breaking in Shao and Ji (2006) to dam break problems in Lee et al. (2008) and fluid–structure interactions in Henry et al. (2014b) and Rogers et al. (2010). See Monaghan (2012) for a review of SPH applications in free surface flows.

The pitching flap WEC hinged close to the bottom of the ocean is known as an oscillating wave surge converter (OWSC) (Babarit et al. 2012). It is mentioned by Babarit et al. (2012) and Folley et al. (2007b) that OWSCs are designed for shallow waters to attain higher horizontal velocities and pitching motions. Several experimental, analytical and numerical studies of OWSCs have been reported. The experimental studies of OWSCs are mostly performed for scaled model devices in the wave tank. Henry et al. (2014b) reported the experimental study of a 1/25th-scale OWSC model along with numerical simulations, using both OpenFOAM (conventional CFD) and a SPH method. The time histories of the OWSC rotation angle between the three methods showed good agreement. The time evolution of pressure on two sensors from the SPH simulation was compared with the experimental data and good agreement was achieved. Henry et al. (2014a) performed two-dimensional experiments on an 1/40th-scale OWSC model and compared the results with numerical simulations. It was concluded that the slamming of the model is related to the classic wedge water entry problem (Oger et al. 2006; Zhao et al. 1996). Clabby and Tease (2015) performed a series of experiments to explore the extreme events related to a 1/20th-scale OWSC model. It was reported that the extreme pressure occurs during the breaking waves or re-entry slamming of the flap.

It is worth pointing out that the experimental studies are extremely important to study OWSC devices due to the complex phenomena involved and to validate numerical simulations. However, it is costly to perform parametric studies, such as changing flap size, wave conditions and tank dimensions in the experimental campaigns. Therefore, numerical simulations are also extremely important to efficiently design the experiments. Potential flow methods have been extensively applied to ocean engineering problems. Although these methods are restricted to solving linear inviscid equations, they provide valuable insight for the problem in a reasonable time. Studies based on potential methods applied to OWSCs can be found in Folley et al. (2007a) and Renzi and Dias (2012, (2013). OWSCs are designed for shallow waters, hence they may experience extreme wave loads as mentioned by Wei et al. (2015) and Henry et al. (2014b). Also, the interactions between waves and OWSC may include complex phenomena such as slamming, wave over-topping, air entrainment and turbulence (Wei et al. 2015). Therefore, potential flow methods have limitations in capturing the details, especially the nonlinearities, involved in the interactions of OWSCs and shallow waters.

Computational fluid dynamics (CFD) simulation using the full Navier–Stokes equations is an alternative approach to potential methods. It provides a more accurate description of the whole flow including the interactions between waves and OWSC. However, Navier–Stokes solvers are computationally more expensive than potential flow methods. Wei et al. (2015) performed numerical simulations using ANSYS FLUENT to investigate the viscous and scaling effects on OWSCs. The time histories of different pressure sensors, rotation angle and vortex shedding from the wave impact for two wave conditions were compared with the experimental data. It was concluded that the viscous effects are negligible for wide flaps. Schmitt and Elsaesser (2015) proposed a new moving mesh approach for OWSCs using OpenFOAM and compared simulation results with experiments for regular and irregular waves.

Rafiee and Dias (2013) performed 2D and 3D simulations of wave interactions with OWSC using SPH. The \(k-\epsilon \) turbulence model was used along with the SPH method to study the effects of wave loads on the OWSCs. It was concluded that 3D simulations provide more accurate estimation of the pressure peaks and angles of rotation compared to the 2D simulations.

In this paper, we report our work on wave interaction with an OWSC device. A custom SPH method was implemented using parallel computing and an incompressible formulation of the governing equations. The methodology we followed and the parallel scheme used to implement a new OpenMP SPH are discussed in Sects. 2.1 and 3, respectively. A classical wedge water entry problem is presented in Sect. 4.2 as a slamming benchmark test case. The experimental setup simulated is described in Sect. 4.3.1. The numerical results of the simulations are compared with the available experimental data in Sect. 4.3.2. The performance of the new parallel SPH code is also reported for a dam break on a tall square structure (Sect. 4.1).


Governing equations

In the SPH method, the Navier–Stokes equations are solved in a Lagrangian formulation, thus they read:

$$\begin{aligned} \dfrac{\mathrm{{D}}\mathbf {u}}{\mathrm{{D}}t}=-\dfrac{1}{\rho }\nabla p + \mathbf {g} +\nu \nabla ^{2} \mathbf {u}, \end{aligned}$$

where \( \rho \) is the fluid particle density, \( \mathbf u \) is the particle velocity vector, t is time, p is the particle pressure, \( \mathbf g \) is the gravitational acceleration vector and \( \nu \) is the kinematic viscosity (it should be mentioned that the bold parameters represent vector quantities in this paper). In SPH, a general function is approximated as (Monaghan 1992):

$$\begin{aligned} A(\mathbf {r})\approx \int A(\mathbf {x})W(\mathbf {r}-\mathbf {x},h)\mathrm{{d}}x, \end{aligned}$$

where \(A(\mathbf {r})\) is the function of interest at position \(\mathbf {r} \), \(W(\mathbf {r}-\mathbf {x},h)\) is the smoothing or kernel function, \(\mathbf {r}\) is the position vector, h is the smoothing length by which neighboring particles are defined. The particle approximation of the above integral is written by replacing the integral with a summation as

$$\begin{aligned} A_{i}\approx \sum \limits _{j=1}^N A_{j}W(\mathbf {r}-\mathbf {r_{j}},h)V_{j}, \end{aligned}$$

where N is the number of neighboring particles and \( V_{j} \) is the volume of particle j (particle j is a neighbor to i). In this paper, the fifth-order Wendland kernel proposed by Wendland (1995) is used:

$$\begin{aligned} W(q) = W_{c}\left\{ \begin{array}{ll} (1+2q)\left( 1-\dfrac{q}{2}\right) ^{4} &{}\quad 0\le q \le 2 \\ 0 &{} \quad q \ge 2, \end{array} \right. \end{aligned}$$

where \( W_{c}={21}/{16\pi h^{3}}\) in 3D and \( q=|\mathbf {r_{i}}-\mathbf {r_{j}}|/h \). The smoothing length is set to \( h= 1.5 \Delta r \) for 3D cases, where \( \Delta r \) is the initial particle spacing. The gradient operator is used from Monaghan (1992) as

$$\begin{aligned} \left( \dfrac{1}{\rho }\nabla A\right) _{i}= \sum _{j} m_{j}\left( \dfrac{A_{i}}{\rho _{i}^{2}}+\dfrac{A_{j}}{\rho _{j}^{2}}\right) \nabla _{i} W_{ij}. \end{aligned}$$

In this paper, the Laplacian operator is adopted from Shao and Lo (2003) as

$$\begin{aligned} \begin{array}{l} \nabla \cdot \left( \dfrac{\nabla A}{\rho }\right) _{i}= \sum \limits _{j} \dfrac{8m_{j}}{(\rho _{i}+\rho _{j})^2}\dfrac{A_{ij}\mathbf r_{ij} \cdot \nabla _{i} W_{ij}}{r_{ij}^{2}+\eta ^{2}}, \end{array} \end{aligned}$$

where \( A_{ij}= A_{i}- A_{j} \), \( \eta =0.1h\) and \( \mathbf r_{ij}=\mathbf r_{i}-\mathbf r_{j} \). In SPH, there are two main approaches to calculate pressure: weakly compressible SPH (WCSPH) and incompressible SPH (ISPH). WCSPH is the original SPH method applied to simulate free surface flows. In this approach, the fluid is considered to be weakly compressible and the equation of state is used to calculate pressure. A promising alternative to WCSPH is incompressible SPH (ISPH) proposed by Cummins and Rudman (1999). This approach is based on a two-step projection method widely used in Eulerian-based CFD methods (Chorin 1968). In this approach, in the prediction step, the intermediate velocity (\( \mathbf u^{*}\)) is calculated using the viscous and body forces, without pressure forces as

$$\begin{aligned} \mathbf u_{i}^{*}= \mathbf u_{i}(t)+ \varDelta t (\mathbf g +\nu \nabla ^{2} \mathbf {u}_{i}). \end{aligned}$$

Subsequently, the intermediate position is calculated by:

$$\begin{aligned} \mathbf r_{i}^{*}=\mathbf r_{i}(t)+ \varDelta t \mathbf u_{i}^{*}. \end{aligned}$$

In the ISPH method, Poisson’s equation is solved for pressure at each time step as

$$\begin{aligned} \begin{array}{l} \nabla \cdot \left( \dfrac{\nabla p}{\rho }\right) _{i} = \dfrac{\nabla \cdot \mathbf u_{i}^{*}}{\varDelta t}. \end{array} \end{aligned}$$

The left hand side of Poisson’s equation is discretized using Eq. 6 as

$$\begin{aligned} \nabla \cdot \left( \dfrac{\nabla p}{\rho }\right) _{i}= \sum \limits _{j} \dfrac{8m_{j}}{(\rho _{i}+\rho _{j})^2}\dfrac{ p_{ij}\mathbf r_{ij} \cdot \nabla _{i} W_{ij}}{r_{ij}^{2}+\eta ^{2}}, \end{aligned}$$

and for the right hand side, the term proposed by Khayyer et al. (2009) is implemented as

$$\begin{aligned} \begin{array}{l} \nabla \cdot \mathbf u^{*}_{i} =\sum \limits _{j} V_{j} (\mathbf u^{*}_{j}- \mathbf u^{*}_{i})\nabla _{i} W_{ij}. \end{array} \end{aligned}$$

Hence, Poisson’s equation is written as

$$\begin{aligned} \begin{array}{l} \sum \limits _{j}\dfrac{8m_{j}}{(\rho _{i}+\rho _{j})^2}\dfrac{ p_{ij}\mathbf r_{ij} \cdot \nabla _{i} W_{ij}}{r_{ij}^{2}+\eta ^{2}} \!=\!\frac{-1}{ \Delta t}\sum \limits _{j} V_{j}(\mathbf u^{*}_{i}- \mathbf u^{*}_{j})\nabla _{i} W_{ij}. \end{array}\nonumber \\ \end{aligned}$$

Poisson’s equation is then solved explicitly using the same procedure proposed by Hosseini et al. (2007). Hence, the pressure for a fluid particle, \( p_{i} \), is obtained by:

$$\begin{aligned} \begin{array}{l} p_{i}=\dfrac{\sum \nolimits _{j} A_{ij} p_{j} +\mathrm{RHS}_{i} }{\sum \nolimits _{j} A_{ij}}, \end{array} \end{aligned}$$


$$\begin{aligned}&\begin{array}{l} \mathrm{RHS}_{i} =\frac{-1}{ \Delta t}\sum \limits _{j} \dfrac{m_{j} }{\rho _{j}} (\mathbf u^{*}_{i}- \mathbf u^{*}_{j}) \nabla _{i} W_{ij}, \end{array}\end{aligned}$$
$$\begin{aligned}&\begin{array}{l} A_{ij} =\sum \limits _{j} \dfrac{8m_{j}}{(\rho _{i}+\rho _{j})^2}\dfrac{\mathbf r_{ij} \cdot \nabla _{i} W_{ij}}{r_{ij}^{2}+\eta ^{2}}. \end{array} \end{aligned}$$

In the correction step, incompressibility is achieved by correcting the velocity using the pressure force as

$$\begin{aligned} \mathbf u_{i}(t+\varDelta t)=\mathbf u_{i}^{*}+ \varDelta t \left( -\dfrac{1}{\rho }\nabla p_{i}\right) . \end{aligned}$$

The positions are updated at the end of each time step as

$$\begin{aligned} \mathbf r_{i}(t+\varDelta t)=\mathbf r_{i}(t)+ \varDelta t \left( \dfrac{\mathbf u_{i}(t+\varDelta t)+\mathbf u_{i}(t)}{2}\right) . \end{aligned}$$

SPH is a general 3D fluid simulation method, but the scale OWSC model is constrained only to pitch motion (one degree of freedom (DOF)). To calculate the motions and forces in the fluid–structure interaction, the rigid body equations are solved for one structural DOF (pitch motion) along with the 3D Navier–Stokes equations in particle form as

$$\begin{aligned}&\begin{array}{l} \dfrac{\mathrm{{d}}\mathbf U}{\mathrm{{d}}t}= \dfrac{\sum \nolimits _{i} \mathbf f_{i} }{M_\mathrm{{body}}} + \mathbf g, \end{array}\end{aligned}$$
$$\begin{aligned}&\begin{array}{l} \dfrac{\mathrm{{d}}\varvec{\omega } }{\mathrm{{d}}t}= \dfrac{\sum \nolimits _{i}\varvec{\tau }_{i}}{I_\mathrm{{body}}}, \end{array}\end{aligned}$$
$$\begin{aligned}&\begin{array}{l} \tau _{i}= (\mathbf r_{i}-\mathbf R)\times \mathbf f_{i}, \end{array} \end{aligned}$$

where \( M_\mathrm{{body}}\) is the mass of the rigid-body, \( I_\mathrm{{body}}\) is the moment of inertia about the fixed rotation axis, \(\mathbf R\) is the position of center of mass for the rigid-body, \(\mathbf U\) is the transitional velocity, \(\varvec{\omega }\) is the rotational velocity, \(\sum \nolimits _{i}\varvec{\tau }_{i}\) is the sum of the moments on the rigid-body particles and \( \sum \nolimits _{i} \mathbf f_{i} \) is the sum of the forces on the rigid-body particles which is calculated based on the surrounding fluid particles. Subsequently, the velocity of the rigid-body particles are obtained as

$$\begin{aligned} \begin{array}{l} \mathbf u_{i} =\mathbf U +\varvec{\omega } \times (\mathbf r_{i}-\mathbf R ). \end{array} \end{aligned}$$

The positions of the rigid-body particles are updated by using Eq. 17.

Boundary conditions

Applying solid boundary conditions is the most challenging task in the SPH method. The three main methods reported to simulate solid boundaries in SPH are: repulsive boundary particles (Monaghan 1994; Monaghan and Kos 1999), dummy boundary particles (Koshizuka et al. 1998; Lo and Shao 2002) and ghost boundary particles (Colagrossi and Landrini 2003). In the repulsive boundary particles approach, a single line of boundary particles are placed on the edge of the solid boundary, exerting a repulsive force on the fluid particles approaching them. In the dummy boundary particles approach, several layers of particles are placed on the edge and inside the solid boundary. In the ghost boundary particles approach, the position of ghost particles is determined by reflection of the fluid particles position through the solid boundary. The pressure of the ghost particles are the same as their corresponding fluid particles (in the presence of the gravity, there will be an additional hydrostatic pressure). Each of these methods has advantages and drawbacks in terms of accuracy and computational complexity.

In this paper, fixed dummy particles are used both for solid boundary particles on tank walls and on the OWSC flap. The dummy particles have the advantage of being easy to implement, especially in a parallel SPH method. In the current work, we used the method described by Adami et al. (2012) to calculate the pressure for the boundary particles from the surrounding fluid particles as

$$\begin{aligned} p_{s}= \dfrac{\sum \nolimits _{i} p_{i} W_{si} +(\mathbf g-\mathbf a_{s})\sum \nolimits _{i} \rho _{i} \mathbf r_{si}W_{si} }{\sum \nolimits _{i} W_{si}}, \end{aligned}$$

where \( p_{s} \) is the pressure for a solid boundary particle, i is the index for the surrounding fluid particle and \( a_{s} \) is acceleration of the wall.

The free surface particles are identified to apply the Dirichlet boundary condition \( (p=0) \) in Poisson’s equation. In the ISPH method the density for each particle is constant. However, to determine free surface particles a fake density (\(\rho _{f}\)) is calculate for each fluid particle as

$$\begin{aligned} \rho _{f}(i)= \sum \limits _{j} m_{j} W_{ij}. \end{aligned}$$

\( \rho _{f} \) is not involved in solving the governing equations and is only used to determine the free surface particles. The criteria used for defining a free surface particle is

$$\begin{aligned} \rho _{f} \le 0.9 \rho _{0}, \end{aligned}$$

where \( \rho _{0}=1000\) kg/m\( ^{3}\). The particles that meet the above criteria are considered to be free surface particles.

Parallelization scheme

The SPH method is typically computationally more expensive than Eulerian-based CFD methods. Therefore, parallelization methods are required to improve the performance of the method, especially for 3D simulations. CPU-based and GPU-based parallelizations are the two main techniques that can be employed for SPH parallelization (Hermanns 2002). The CPU-based parallelization is divided into shared-memory and distributed memory parallelizations. The shared-memory approach assumes that the processing units share a common memory (as is the case for multi-core processors) that the parallel tasks can use to communicate and share variables with each other. The thread model is usually used when implementing a shared memory parallelization. More specifically, OpenMP, a standard for implementing the thread model by adding directives to the code, is a relatively easy way to parallelize an existing serial code. The distributed memory method uses the common memory assumption and requires the parallel tasks to communicate by exchanging messages. MPI (Message Passing Interface) is a standard for distributed memory parallelization. GPU-based parallelization relies on GPUs to schedule and execute the parallel tasks. CUDA, openCL and openACC are the common programming standards for GPU-based implementations. Several approaches have been applied to parallelize the SPH method using these standards. Ferrari et al. (2009) proposed a parallelization schemes using the MPI standard to study free surface flows. Marrone et al. (2012) studied ship wave breaking patterns using 3D hybrid MPI and OpenMP standards. A review of CPU-based parallelization implementations for the SPH method in free surface flows is available by Gomez-Gesteira et al. (2012). GPUs have been applied to SPH methods recently. A review of GPU-based parallelization implementations for the SPH method is available by Crespo et al. (2015).

The SPH method is both Lagrangian and meshless. Although these two features are attractive in modelling complex free surface flows, they cause difficulties in parallelization schemes (Marrone et al. 2012). Unlike the fixed grids in CFD mesh-based methods, particles move due to the Lagrangian nature of the method and the neighboring particles do not remain the same throughout the simulation. Hence, as mentioned by Marrone et al. (2012), the parallel scheme applied to the SPH method must take into account this specific characteristic.

Fig. 1

Two-dimensional underlying grid for the link list algorithm. Cells enclosed by red contours are handled by the same thread (color figure online)

To save computational costs in SPH, only the contribution of neighboring particles \( (r_{ij}\le k h) \) are calculated in the simulation. The link list searching algorithm reported in Gomez-Gesteira et al. (2012) is adopted here to search for the neighboring particles. In this algorithm, the computational domain is divided into square cells of side kh (kernel radius). The particle in each cell only interacts with particles in neighboring cells; eight cells in 2D are shown in Fig. 1. The sweep of the link list search starts from the lower left end and in each sweep, only the ENNWNE cells are involved to prevent repeating particle interactions (4 cells out of 8 neighboring cells Gomez-Gesteira et al. 2012). The same procedure will be applied in 3D; interactions of 13 cells out of 26 neighboring cells will be calculated. In the current work, we take the advantage of this approach to parallelize the code using an OpenMP standard.

Due to the Lagrangian nature of the method special treatments are required at the particles along the processor domain boundaries. These particles may require information from the neighboring particles located on another processor domain. This is handled by introducing ghost cells by Gomez-Gesteira et al. (2012) or buffer particles by Marrone et al. (2012). In this paper, the domain decomposition is performed spatially in 3D as shown in Fig. 1 for a 2D case (for simplicity) but the same applies for the 3D case. Here, we divide the cells in each thread to be the inner cells and the outer cells. The last cell in each thread is assigned to be the outer cell. The outer cells are available for both threads. The domain decomposition is performed in this way in order to avoid two or more parallel threads having access to the same data. Since each thread will update its particles, we need to make sure that the other thread has access to the old values instead of the new ones.

For the inner cells, the same procedure that was performed for a single core is performed. The sweep starts from the lower left end and in each sweep, only the ENNWNE cells are involved as shown in Fig. 1.

For the outer cells, the interaction between particles is considered in all eight neighboring cells in 2D and 26 cells in 3D. The first sweep is performed on ENNWNE cells (yellow sweep in Fig. 1). If the cells are within the same thread then both particles i and j will be updated. If one of the cells is from the adjacent thread only particle i will be updated. The second sweep is performed on WSSWSE cells (pink sweep in Fig. 1). If cells belong to the same thread, none of the particles i or j are updated, but if they belong to the adjacent thread only particle i will be updated. By using this approach, the same procedure of finding neighboring particles is applied for parallelization without introducing any ghost cells or buffer particles.

Fig. 2

Schematic of the validation case: dam break in the vicinity of a tall structure (dimensions in cm). Experiment reported by Gómez-Gesteira and Dalrymple (2004)

Test cases

Test case 1: dam break on a structure

Dam-break problems are typically used as benchmark test cases for SPH codes. In this paper, the dam-break on a tall structure is first simulated to test the performance of the new OpenMP SPH code. The dam-break benchmark studies are important to investigate the influence of severe flooding events such as tsunamis on shoreline structures. The experimental set up of Yeh and Petroff reported by Gómez-Gesteira and Dalrymple (2004) is used to validate the parallel OpenMP SPH code. Dimensions of the experiment and the tall square structure are shown in Fig. 2. A layer of approximately 1 cm of water existed on the bottom of the tank, before the dam breaks, at \( t=0\) s. In the experiment, as mentioned in Gómez-Gesteira and Dalrymple (2004), the velocity in the x-direction was measured at 2.6 cm from the bottom of the tank and 14.6 cm upstream of structure center.

For this simulation, the particle size was set to \(\Delta x=0.01 \) m, \(\Delta y=0.01 \) m, \(\Delta z=0.01 \) m which resulted in 298,463 total particles. The simulations were performed on a local machine using 16 processors [model Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30 GHz].

Fig. 3

Magnitude of the fluid velocity in x-direction (u) at \( x=0.754\) m, \(y=0.31\) m, \(z=0.026\) m as a function of time for dam break experiment

The time history of water velocity in the x-direction at the measured point is compared with experimental data in Fig. 3. To calculate the velocity, the same kernel function for simulation is used to interpolate neighboring particles’ velocity at the specified point. It is shown in Fig. 3 that the SPH results are in good agreement with the experimental data. A convergence study is performed for four particle sizes and the results are presented in Fig. 3. It is shown that by increasing the particle resolution the maximum velocity value is captured more accurately.

The particle representation of the domain (water particles and the structure) at \( t=0.9\) s is shown in Fig. 4. Particles are colored with their velocity magnitude. At \( t=0.9\) s, water has impacted the structure and is getting closer to the end of the wave tank. The non-uniform distribution of the particles near the front of the dam could be due to the kernel truncation in the ISPH method which was mentioned by Lind et al. (2012) and Xu et al. (2009).

The wall clock time (execution time) for 500 time steps of the simulation with 298,463 particles for 1, 2, 4 and 16 threads is shown in Fig. 5. The wall clock time is compared for different combinations of threads in this figure (the x and y-directions are chosen since the initial water depth is 0.3 m in z-direction). It is shown that by increasing the number of threads from 1 to 16 the execution time decreases. The speedup for a parallel code is defined by Quinn (2003) as \( S=T_\mathrm{{serial}}/T_\mathrm{{parallel}} \), where the \( T_\mathrm{{serial}} \) is the serial execution time and \( T_\mathrm{{parallel}} \) is the parallel execution time. As expected, the speedup does not scale particularly well for the OpenMP approach. Possible explanations for this include: the time spent on the serial part of the code, joining and forking and the time wasted by the threads waiting for other threads to perform their jobs due to load imbalance. As shown in Fig. 6, by increasing the number of particles, decomposing threads in the y-direction decreases the execution time more than decomposing them in the x-direction. The reason is that at 500 time steps (\( t=0.25 \) s), water particles accelerate toward the tall structure but they have not yet reached the structure. Therefore, there are more particles in the y-direction and decomposing more threads in that direction reduces the wall clock time (Fig. 6).

Fig. 4

Flow due to the dam break on the tall structure at \( t=0.9 \) s

Fig. 5

Wall clock time for 500 time steps for different thread combinations for 1, 2, 4 and 16 threads

Fig. 6

Wall clock time for 500 time steps for different number of particles

Fig. 7

Schematic of the wedge (dimensions in cm)

Test case 2: wedge water entry simulation

The 2D wedge water entry problem is chosen for simulation to test the accuracy of the ISPH method before modeling the wave impacting an OSWC. The experiment of Zhao et al. (1996) is simulated in this paper where a symmetric wedge is dropped on a free surface of a water tank at rest. The schematic of the wedge and locations of pressure sensors are shown in Fig. 7. At \( t=0 \) s, the wedge with total mass of 241 kg is dropped with the initial vertical velocity of \( - 6.15 \) m/s. The total number of particles used for ISPH simulation is 85,983 in 2D. In Figs. 8 and 9 fluid particles are shown with by their pressure at \( t=0.00435 \) s and \( t=0.0158 \) s, respectively. The formation of two jets along the boundaries of the wedge and the free surface deformation are clear in both figures.

In Figs. 10 and 11 the pressure along the boundary of the wedge are shown at \( t=0.00435 \) s and \( t=0.0158 \) s, respectively. In these figures, as mentioned by Liu et al. (2014), the \( p_{0}=0 \), V is the vertical velocity of the wedge, Z is the vertical coordinate of the wedge boundary particles, \( Z_{0} \) is the initial vertical coordinate of the keel and \(| Z_\mathrm{{keel}} |\) is the total displacement of the keel. In Figs. 10 and 11, results of the current simulation are compared with the experimental data of Zhao et al. (1996) and the WCSPH study of Oger et al. (2006). At \( t=0.00435 \) s both SPH studies underestimate the pressure. The reason was mentioned by Oger et al. (2006) to be a compressible effect caused by abrupt change of flow at the beginning of the simulation. At \( t=0.0158 \) s both methods slightly overestimate the experimental data up to sensor P5. This is due to the 3D effects mentioned by Zhao et al. (1996) and Oger et al. (2006).

Fig. 8

Particles are shown with their pressure at \( t=0.00435\) s

Fig. 9

Particles are shown with their pressure at \( t=0.0158\) s

Fig. 10

Pressure along the boundary of the wedge at \( t=0.00435\) s

Fig. 11

Pressure along the boundary of the wedge at \( t=0.0158\) s

Fig. 12

Schematic of the flap (dimensions in mm)

Test case 3: wave impacting an oscillating wave surge converter


The 1:20 scale model of Resolute Marine Energys SurgeWEC is chosen for simulation in this paper. As described in Clabby and Tease (2015), this device is smaller than the Aquamarines Oyster, therefore the device response to the wave impact behavior might be different than the already studied Oyster.

The experiments were conducted at Orion Energy Centre’s wave tank. The wave tank is 18.2 m long and 6 m wide (Fig. 13). The waves are generated using eight wavemakers across the width on the left end of the tank (Fig. 13). The OWSC model is located at 10.8 m from the wavemakers. The waves are absorbed at the end of the tank by a sloped beach (Fig. 13).

The 1:20 scale model is a flap of 0.4 m width, 0.3 m height, and 0.06 m thickness and was hinged 0.05 m above the tank bottom (Fig. 13). The model is made of 6.3 mm thick steel plate with an aluminum skeleton and foam body [for more details about the model see Clabby and Tease (2015)]. Six Keller series 10 pressure sensors were placed on the front and rear faces of the flap. Sensors 4–6 were placed on the front face of the flap and sensors 1–3 placed on the rear face of the flap. The position of the pressure sensors are shown in Fig. 12.

Fig. 13

Schematic of the wave tank (dimensions in m)

A series of experiments were performed to study the extreme loads on the SurgeWEC 1:20 scale model by Clabby and Tease (2015). Three water depths were tested under four extreme sea conditions, ten monochromatic wave and three irregular waves. In this paper, experimental results for a monochromatic wave were chosen to validate the SPH results.

SPH simulations

The 1:20 scale model of the SurgeWEC that was described in Sect. 4.3.1 is simulated herein using the ISPH approach. The numerical flap has the same dimensions of the experimental flap: 0.4 m width, 0.3 m height, and 0.06 m thickness. The SPH simulation is performed in a 18.2 m (length) \(\times \) 4 m (width) \(\times \) 1.2 m (height) numerical tank where the flap is positioned at 10.8 m from the wavemaker. To save computational cost, we choose the numerical wave tank’s width to be 2.0 m smaller than the experimental width. The numerical wavemaker is forced to have sinusoidal motion based on the theory given by Dalrymple and Dean (1991):

$$\begin{aligned} \begin{array}{l} x=\dfrac{S}{2}\mathrm{{sin}}\left( \dfrac{2 \pi }{T}\right) , \end{array} \end{aligned}$$

where x is the motion of the wavemaker in the x-direction, T is the wave period and S is the stroke of the wavemaker. The wave profile used for the simulation has a height of \( H_{w} =0.15\) m and a period of \( T =1.34\) s.

The still water depth is 0.7 m and the numerical wavemaker was calibrated to produce a wave of height 0.15 m. The particle dimensions are set to \(\Delta x= \Delta y=\Delta z=0.02 \) m, which leads to 4,222,746 total particles. To avoid wave reflection, the damping region similar to the relaxation zone proposed by Lind et al. (2012) is applied to the zone close to the far downstream wall.

Fig. 14

Particles in the domain are colored by their pressure at three time steps a shown in 3D, bd shown in 2D

Fig. 15

Pressure field on the flap face

Fig. 16

Free surface elevation at (\( x= 10.8 \) m and \( y=3.5 \) m) as a function of time.

The code was parallelized using OpenMP as described in Sect. 3 and the runs were performed on the Hermes WestGrid cluster. 16 processors were used for the simulation and took approximately 12 days for 15 s of simulation time. Figure 14 shows the particles in the domain colored by their pressure at several snapshots. Figure 15a, b show the pressure field on the face of the flap at \(t=11.6\) s and \( t=12.1\) s, respectively. At \( t=11.6\) s the flap is at \( \theta \approx -36^{\circ } \) while at \( t=12.1 \) s the flap is at \( \theta \approx 30^{\circ } \). It is shown that when the flap is at the trough (\( t=11.6 \) s), the pressure has smaller values than when the flap is close to the wave crest (\( t=12.1 \) s).

The free surface elevation (\( \eta \)) of the SPH simulations is compared with the experimental data at the wave probe location (\( x= 10.8 \) m and \( y=3.5 \) m) for the wave profile described (\(H_{w} =0.15\) m, \( T =1.34\) s). The data for eight wave probes is available from the experiment in the range of \( x=10.1 \) m to \( x=11.1 \) m. The wave probe at the flap position (\( x=10.8 \) m) is chosen to validate the SPH results. To determine the free surface location, two different methods are used in this paper. In the first method, the particles that fall within a specified range (particle size) around the probe location are chosen and the average of their z positions is used as the free surface position (Fig. 16a). In the second method, a line of fixed interpolation points is added to the probe location and the density is calculated at each point by using the same kernel used for SPH simulations (Fig. 16b). The interpolation points are placed in a 1 cm distance from each other and the free surface location is determined by applying the criteria mentioned in Sect. 2.2. The interpolation method is computationally more expensive than the former averaging method. The comparison between simulation and the experiment shows good agreement after the startup time (after \( t=10 \) s) as shown in Fig. 16a, b. The discrepancy between the SPH simulations and the experiment during startup is due to the differences in the real and simulated wavemakers’ motion. The SPH results deviation from the experimental data between 2 and 6 s, is due to the fact that particles are settling at the probe location in the wave tank during this time. The deviation of SPH results from the experimental data is approximately within a particle size (\(\Delta x=0.02\) m). This indicates increasing resolution will improve the accuracy of the simulation. It is shown that part of the shallower wave troughs in Fig. 16a is removed by using the interpolation points scheme in Fig. 16b. Another reason for the shallower troughs in the simulation could be the wave reflection from the side wall. The velocity in the trough is smaller than the crest hence it can be more affected. Applying the damping zone to the side walls will improve results in the trough.

The pitch angle (\( \theta \)) evolution is compared with experimental data in Fig. 17. The positive pitch angle corresponds to the angle between the initial position of the OWSC and landward (clockwise), and the negative angle represents the angle between the initial angle of the OWSC and seaward (counter clockwise). The pitch angle amplitude from the experimental data is approximately 30\(^{\circ }\). The pitch angle in the SPH simulations follows the free surface elevations in Fig. 16 and is in an excellent agreement with the experimental data after startup time.

Fig. 17

Angular position of the flap as a function of time

Fig. 18

Dynamic pressure at the surface of the flap

In Fig. 18a the dynamic pressure at sensor 5 (positioned at the center of the flap face) is compared with the experimental data. To calculate the dynamic pressure, the hydrostatic pressure (mean pressure) is subtracted from the total pressure. The hydrostatic pressure is the dominant pressure for buoyant OWSCs, but the dynamic pressure is a better metric to evaluate the performance of the method. The deviation in pressure between the experimental data and SPH simulations is expected during startup as the wave height and flap rotations are different. Henry et al. (2014b) reported that the highest pressure occurs in the center of the flap face. It was mentioned by Henry et al. (2014b) and Wei et al. (2015) that the wave impact has a stochastic nature accompanied by spikes in the pressure. It is clear that the current code is capable of capturing the slamming phenomena. In Fig. 18a, the dynamic pressure is in a good agreement with the experimental data after startup time.

In Fig. 18b the dynamic pressure at sensor 6 is compared with the experimental data. Sensor 6 is located above the free surface and it reads zero pressure where it is exposed to the air throughout the simulation. The dynamic pressure at sensor 6 is in a fair agreement with the experiment. The performance of the SPH simulations in reproducing the dynamic pressure for both pressure probes is excellent where the free surface displacements are in good agreement with the experimental data (Fig. 16).

Table 1 shows the wall clock time for 200 time steps of the OWSC simulation. The total number of particles are 4,222,746 and the Hermes WestGrid Cluster is used for the simulation. It is shown that by increasing the number of threads from 1 to 16 the wall clock time decreases from 21,189 to 5341 s. Although the OpenMP approach is a relatively easier approach to implement in comparison with the MPI approach, MPI parallelization will be essential for simulations with larger particle numbers.

Table 1 Wall clock time for 200 time steps


A new OpenMP parallelization scheme for the SPH method is proposed. This method has the ability to use variable thread combinations in different directions. The performance of the OpenMP SPH code is reported for the impact of a dam break on a tall square structure. The code was also tested to simulate the impact of a monochromatic wave on the Resolute Marine Energys SurgeWEC. Time history of free surface, pitch angle and two pressure sensors are compared with experimental data and reasonable agreement is achieved after startup. However, modifications are required to improve the numerical simulations. The current SPH code is capable of simulating a single fluid. The air entrainment effect is an important phenomena in the interaction between wave and the structures which is not accounted for in the current work. Finer particle resolution close to the OWSC is required, to provide more details about the interaction. It is shown that using a higher number of threads will reduce the wall clock time, but the future work must implement the MPI standard to perform simulations with larger number of particles more efficiently.


  1. Adami S, Hu X, Adams N (2012) A generalized wall boundary condition for smoothed particle hydrodynamics. J Comput Phys 231(21):7057–7075

    MathSciNet  Article  Google Scholar 

  2. Babarit A, Hals J, Muliawan M, Kurniawan A, Moan T, Krokstad J (2012) Numerical benchmarking study of a selection of wave energy converters. Renew Energy 41:44–63

    Article  Google Scholar 

  3. Chorin AJ (1968) Numerical solution of the Navier–Stokes equations. Math Comput 22(104):745–762

    MathSciNet  Article  MATH  Google Scholar 

  4. Clabby D, Tease K (2015) Extreme loads and pressures applied to SurgeWEC: a small oscillating wave surge converter. In: Proceedings of the 11th European Wave and Tidal Energy Conference, Nantes, France

  5. Colagrossi A, Landrini M (2003) Numerical simulation of interfacial flows by smoothed particle hydrodynamics. J Comput Phys 191(2):448–475

    Article  MATH  Google Scholar 

  6. Crespo A, Domínguez J, Rogers B, Gómez-Gesteira M, Longshaw S, Canelas R, Vacondio R, Barreiro A, García-Feal O (2015) DualSPHysics: open-source parallel CFD solver based on smoothed particle hydrodynamics (SPH). Comput Phys Commun 187:204–216

    Article  Google Scholar 

  7. Cummins SJ, Rudman M (1999) An SPH projection method. J Comput Phys 152(2):584–607

    MathSciNet  Article  MATH  Google Scholar 

  8. Dalrymple RA, Dean RG (1991) Water wave mechanics for engineers and scientists. Prentice-Hall

  9. Ferrari A, Dumbser M, Toro EF, Armanini A (2009) A new 3D parallel SPH scheme for free surface flows. Comput Fluids 38(6):1203–1217

    MathSciNet  Article  MATH  Google Scholar 

  10. Folley M, Whittaker T, Henry A (2007a) The effect of water depth on the performance of a small surging wave energy converter. Ocean Eng 34(8):1265–1274

    Article  Google Scholar 

  11. Folley M, Whittaker T, Vant Hoff J (2007b) The design of small seabed-mounted bottom-hinged wave energy converters. In: Proceedings of the 7th European Wave and Tidal Energy Conference, vol 455, Porto, Portugal

  12. Gingold RA, Monaghan JJ (1977) Smoothed particle hydrodynamics-theory and application to non-spherical stars. Mon Not R Astron Soc 181:375–389

    Article  MATH  Google Scholar 

  13. Gómez-Gesteira M, Dalrymple RA (2004) Using a three-dimensional smoothed particle hydrodynamics method for wave impact on a tall structure. J Waterw Port Coast Ocean Eng 130(2):63–69

    Article  Google Scholar 

  14. Gomez-Gesteira M, Crespo AJ, Rogers BD, Dalrymple R, Dominguez JM, Barreiro A (2012) SPHysics-development of a free-surface fluid solver- Part 2: efficiency and test cases. Comput Geosci 48:300–307

    Article  Google Scholar 

  15. Henry A, Kimmoun O, Nicholson J, Dupont G, Wei Y, Dias F et al (2014a) A two dimensional experimental investigation of slamming of an oscillating wave surge converter. In: The Twenty-fourth International Ocean and Polar Engineering Conference, International Society of Offshore and Polar Engineers, Busan

  16. Henry A, Rafiee A, Schmitt P, Dias F, Whittaker T (2014b) The characteristics of wave impacts on an oscillating wave surge converter. J Ocean Wind Energy 1(2):101–110

    Google Scholar 

  17. Hermanns M (2002) Parallel programming in Fortran 95 using OpenMP.

  18. Hosseini S, Manzari M, Hannani S (2007) A fully explicit three-step SPH algorithm for simulation of non-Newtonian fluid flow. Int J Numer Methods Heat Fluid Flow 17(7):715–735

    MathSciNet  Article  MATH  Google Scholar 

  19. Khayyer A, Gotoh H, Shao S (2009) Enhanced predictions of wave impact pressure by improved incompressible SPH methods. Appl Ocean Res 31(2):111–131

    Article  Google Scholar 

  20. Koshizuka S, Nobe A, Oka Y (1998) Numerical analysis of breaking waves using the moving particle semi-implicit method. Int J Numer Methods Fluids 26(7):751–769

    Article  MATH  Google Scholar 

  21. Lee ES, Moulinec C, Xu R, Violeau D, Laurence D, Stansby P (2008) Comparisons of weakly compressible and truly incompressible algorithms for the SPH mesh free particle method. J Comput Phys 227(18):8417–8436

    MathSciNet  Article  MATH  Google Scholar 

  22. Lind S, Xu R, Stansby P, Rogers B (2012) Incompressible smoothed particle hydrodynamics for free-surface flows: a generalised diffusion-based algorithm for stability and validations for impulsive flows and propagating waves. J Comput Phys 231(4):1499–1523

    MathSciNet  Article  MATH  Google Scholar 

  23. Liu X, Lin P, Shao S (2014) An ISPH simulation of coupled structure interaction with free surface flows. J Fluids Struct 48:46–61

    Article  Google Scholar 

  24. Lo EY, Shao S (2002) Simulation of near-shore solitary wave mechanics by an incompressible SPH method. Appl Ocean Res 24(5):275–286

    Article  Google Scholar 

  25. Lucy LB (1977) A numerical approach to the testing of the fission hypothesis. Astron J 82:1013–1024

    Article  Google Scholar 

  26. Marrone S, Bouscasse B, Colagrossi A, Antuono M (2012) Study of ship wave breaking patterns using 3D parallel SPH simulations. Comput Fluids 69:54–66

    MathSciNet  Article  MATH  Google Scholar 

  27. Monaghan J (2012) Smoothed particle hydrodynamics and its diverse applications. Ann Rev Fluid Mech 44:323–346

    MathSciNet  Article  MATH  Google Scholar 

  28. Monaghan J, Kos A (1999) Solitary waves on a Cretan beach. J Waterw Port Coast Ocean Eng 125(3):145–155

    Article  Google Scholar 

  29. Monaghan JJ (1992) Smoothed particle hydrodynamics. Ann Rev Astron Astrophys 30:543–574

    MathSciNet  Article  Google Scholar 

  30. Monaghan JJ (1994) Simulating free surface flows with SPH. J Comput Phys 110(2):399–406

    Article  MATH  Google Scholar 

  31. Oger G, Doring M, Alessandrini B, Ferrant P (2006) Two-dimensional SPH simulations of wedge water entries. J Comput Phys 213(2):803–822

    MathSciNet  Article  MATH  Google Scholar 

  32. Quinn MJ (2003) Parallel Programming, vol 526. TMH CSE

  33. Rafiee A, Dias F (2013) Two-dimensional and three-dimensional simulation of wave interaction with an oscillating wave surge converter. In: International workshop on water waves and floating bodies (IWWWFB) 2013, Marseille

  34. Renzi E, Dias F (2012) Resonant behaviour of an oscillating wave energy converter in a channel. J Fluid Mech 701:482–510

    Article  MATH  Google Scholar 

  35. Renzi E, Dias F (2013) Hydrodynamics of the oscillating wave surge converter in the open ocean. Eur J Mech B/Fluids 41:1–10

    MathSciNet  Article  Google Scholar 

  36. Rogers BD, Dalrymple RA, Stansby PK (2010) Simulation of caisson breakwater movement using 2D SPH. J Hydraul Res 48(S1):135–141

    Article  Google Scholar 

  37. Schmitt P, Elsaesser B (2015) On the use of OpenFOAM to model oscillating wave surge converters. Ocean Eng 108:98–104. doi:10.1016/j.oceaneng.2015.07.055.

  38. Shao S, Ji C (2006) SPH computation of plunging waves using a 2D sub-particle scale (SPS) turbulence model. Int J Numer Methods Fluids 51(8):913–936

    Article  MATH  Google Scholar 

  39. Shao S, Lo EY (2003) Incompressible SPH method for simulating Newtonian and non-Newtonian flows with a free surface. Adv Water Resour 26(7):787–800

    Article  Google Scholar 

  40. Wei Y, Rafiee A, Henry A, Dias F (2015) Wave interaction with an oscillating wave surge converter, part I: Viscous effects. Ocean Eng 104:185–203

    Article  Google Scholar 

  41. Wendland H (1995) Piecewise polynomial, positive definite and compactly supported radial functions of minimal degree. Adv Comput Math 4(1):389–396

    MathSciNet  Article  MATH  Google Scholar 

  42. Xu R, Stansby P, Laurence D (2009) Accuracy and stability in incompressible SPH (ISPH) based on the projection method and a new approach. J Comput Phys 228(18):6703–6725

    MathSciNet  Article  MATH  Google Scholar 

  43. Zhao R, Faltinsen O, Aarsnes J (1996) Water entry of arbitrary two-dimensional sections with and without flow separation. Proceedings of the 21st symposium on naval hydrodynamics. Trondheim, Norway, National Academy Press, Washington, D.C, pp 408–423

Download references


The authors thank the Natural Sciences and Engineering Research Council, Natural Resources Canada, the Pacific Institute for Climate Solutions and the University of Victoria for their financial support. The authors thank the Compute Canada and WestGrid for their computational resources. The authors also thank the Resolute Marine Energy for providing the experimental data.

Author information



Corresponding author

Correspondence to Shahab Yeylaghi.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Yeylaghi, S., Moa, B., Oshkai, P. et al. ISPH modelling of an oscillating wave surge converter using an OpenMP-based parallel approach. J. Ocean Eng. Mar. Energy 2, 301–312 (2016).

Download citation


  • Fluid–structure interactions
  • Oscillating wave surge converters (OWSC)
  • Smoothed particle hydrodynamics (SPH)
  • Open multi-processing (OpenMP) approach