There are several ways of generating and absorbing waves in IH2VOF.

## Dirichlet Boundary Condition

This fixed value boundary condition is the simplest and the first to be implemented in most wave generating models, since theories give analytical expressions for free surface and the velocity distribution throughout the water column.

As stated, to generate waves using this method, two variables for each time step are required. The first one is the free surface level at the generation boundary, which forces the model to set VOF function equals 1 below and 0 over it. Next, velocity (horizontal and vertical components), which is generated in advance at a chosen sampling rate and are then linearly interpolated by the model.

This kind of boundary condition can also be used to replicate the behaviour of any laboratory wave maker (at a resolution equal to cell size). In this case, the wave hydrodynamic produced by the wave maker displacement is neglected, which is consistent with first order generation methods. Active wave absorption has been built on top of it.

An example can be seen below, where waves are generated on the right boundary and absorbed on the left (moving) one.

## Moving Boundary Method

The straightforward method to reproduce laboratory experiments is to replicate the action of a piston-type wave generator. This is done by simulating a solid object within the mesh which pushes the fluid when moving. Its movement is transferred into the model through the openness coefficients. Since the wave paddle position X(t) and velocity U (t) are provided as input, all the openness coefficients can be calculated for each time step.

The interaction of the solid with the fluid involves an additional term in the momentum equation. This body force, fb , represents the virtual boundary force, and it acts only on the solid boundary of the partial cells (0 < θ < 1).

This method works exactly like a Dirichlet boundary condition, but with several differences. First, velocity and free surface location are specified at different locations within the mesh according to the wave maker movement. Second, since a piston-type wave maker is replicated, only horizontal velocity is used. Since the paddle can move forwards and backwards, a larger mesh is needed in order to cover the area where the wave maker is expected to move.

This method also includes active wave absorption as defined in Schäffer & Klopman (2000), which modifies the velocity, and therefore, the displacement of the wave maker.

## Internal Wave Maker

The internal wave generation method defines a mass source function in a specific region inside the computational domain. It always appears linked to the sponge layer, and was first developed to avoid wave re-reflection in the boundary where waves are generated.

The physical effect of the source region is the introduction of mass in the cells. Fluid is alternatively introduced or sucked into this region in order to generate wave crests and troughs. Different wave types (linear monochromatic waves, irregular waves, Stokes II and higher order, solitary waves and cnoidal waves) can be generated through the adequate definition of the source function, as presented in Lin & Liu (1999). Later on Lara et al. (2006) the method was generalized for random waves.

Since only one of the directions of the generated waves points towards the target area, the waves in the other direction ought to be absorbed in order to avoid their reflection on the boundary. This is done by means of a passive absorber, sponge layer. A collateral effect of this area is that the incident waves that return from the other direction are always absorbed.