1 General
This example is new in OpenFOAM 1.7. It showcases the new motion solver displacementLaplacian. The script subdivides the mesh using the function makeMeshByCellSet. Next, the function subsetMesh redefines the patch floatingObject to contain the desired set of cells.
2 Dictionary Setup
As usual, dictionaries control behavior. In the folder system, three versions of cellSetDict determine how the cells that will become the floating object are separated from the surrounding cells. Libraries needed to model turbulence and calculate the response of the floating object are called out in controlDict. Details of the object's response to wave forcing are specified in folder 0, within the file pointDisplacement.
3 Screenshot and Video
The image below shows how the simulation is configured initially. The floating object is at the center and a block of water is "piled up" at the corner away from the origin. This uneven water surface creates the water motion that causes the white box to respond.
A 1 MB movie of the animation can be found here. [1]