If you desire to have the fluid mesh follow a particular arbitrary shaped/oriented surface, the general method is by using Guide Surface. This requires a Surface (with an attached element set) along which you wish the fluid mesh to move. The Guide Surface should have only smooth transitions – no sharp corners around which you desire the fluid mesh to move. If there are sharp features to maintain, it is best to create individual Guide Surface instances, and also segment the fluid surfaces appropriately. Remember to use ‘Split Internal Surfaces’ appropriately to create separate nodes – those attached to the moving fluid and those attached to the volume used to define the Guide Surface.
If the object you wish the fluid surface to follow is shaped and oriented such that the mesh can move in X, Y, or Z directions and still maintain the correct shape, it is better to limit the motion in the other directions using Nodal Boundary Conditions. In these cases, there is no need to use Guide Surface. An example of this would be flow in a river past a vertical (let’s say Y-direction is vertical) cylindrical pylon. To compute the shape of the free surface, the mesh defining the pylon boundary can be allowed to move only in the Y-direction, and still maintain the cylindrical shape. In this case, we would use Nodal Boundary Conditions on the pylon fluid surface and set the mesh_x and mesh_z displacements to type = zero. Then the mesh is allowed to move only in the Y-direction as desired.