## 3 Applications
### Numerical Parameters
#### 3.2.1 SPH Parameters  
The SPH results discussed here were obtained using the hardware accelerated DualSPHysics code [88]. Since the first release back in 2011, DualSPHysics has been shown to be robust and accurate for simulating free surface flows yet requiring high computational cost. Therefore, recently, the high-performance computing of SPH has mainly focused on Graphical Processing Units (GPUs) [89], which are superior in terms of price and energy consumption compared to traditional CPUs. On DualSPHysics, the C++ programming language is used to code the SPH formulation for CPU execution, while GPU executions are based on NVIDIA's CUDA architecture [72]. The specific features of the open-source code are detailed in [72; 89]. For the first two tests (T1-T2), following the experimental setting [84], the numerical wave tank was 22.5 m long and 0.97 m high, while the initial water depth was equal to 0.70 m. In [PERSON] et al., [27] the convergence analysis for T1 showed that only \(\mathrm{d}/\Delta\mathrm{x}\geq 35\) (\(\Delta\mathrm{x}\leq 0.02\) m) guaranteed the independence of the SPH result from the resolution and yielded a result in accordance with the experiments. However, in this study, simulations were performed by choosing a higher resolution than shown by [PERSON] et al. [25; 27], in order to show the efficient and reliable use of DualSPHysics code executed on a GPU architecture also with a large number of particles. In particular, the 2D flow (T1 and T2) was simulated by discretizing the computational domain through a particle distribution with initial particle distance \(\Delta\mathrm{x}=\Delta\mathrm{z}\) varying from to 0.02 to 0.003 m. Figure 3 shows that \(\mathrm{d}/\Delta\mathrm{x}\geq 35\) (\(\Delta\mathrm{x}\leq 0.02\) m) guaranteed the independence of the SPH result from the resolution. This again confirms the results by [27]. Following, the results and performance analysis for T1 and T2 were carried out considering an initial particle distance \(\Delta\mathrm{x}=\Delta\mathrm{z}=0.01\) m.  
Figure 2: Sketch of the channel with indications of the investigated sections used to calibrate the numerical model. In all four tests T1-T4, the solid boundary conditions needed for idealizing the seabed, are discretized by a set of boundary particles that differ from the fluid particles. When a fluid particle approaches the boundary, the density, and hence the pressure exerted by the boundary particles, increase. This generates the necessary repulsive force on the water particles. Instead, the offshore boundary condition is treated as a dynamic boundary condition [90], i.e., the numerical wave paddle is composed of wall particles whose density is computed with the continuity equation and pressure obtained from the equation of state [72]. For both of the regular waves' tests, the first order numerical wavemaker is located at a distance of 0.5 m offshore on the side of section 76. For the third test (T3), following the experimental setting by ([PERSON] [85] and [PERSON] et al. [86]), the numerical flume was 45 m long, with an initial water depth of 1 m. The fringing reef, whose slope was 1/5, was 5.1 m long and its toe was at a distance of 17 m from the numerical wavemaker. The latter generated the solitary wave according to the [PERSON] solitary wave generation theory; in this case, an initial particle distance of \(\Delta\mathrm{x}=\Delta\mathrm{z}=0.02\) m with a total number of particles equal to 50,242. In the last test (T4), following the experimental setting by [PERSON] and [PERSON] [87], the numerical wave tank was 154.83 m long, with an initial water depth of 3.33 m. The toe of the inclined beach was at 34.83 m from the piston, which was of the same type as that described for the third case. The initial particle distance was \(\Delta\mathrm{x}=\Delta\mathrm{z}=0.025\) m, resulting in a total number of 369,885 particles. For all of the cases, the initial conditions are described by setting the velocities of all the particles of the computational domain \(\mathrm{u}=0\) at time \(\mathrm{t}=0\).