capytaine.post_pro.free_surfaces module

This module implements objects describing a mesh on which the free surface elevation will be computed.

class capytaine.post_pro.free_surfaces.FreeSurface(x_range=(-50.0, 50.0), nx=10, y_range=(-50.0, 50.0), ny=10, name=None)[source]

Bases: object

A cartesian mesh on which the free surface elevation will be computed.

Has a mesh attribute to behave kind of like FloatingBody when building of the influence matrix.

Parameters:
  • x_range (Tuple[float, float], optional) – extreme values of the mesh in the x direction

  • nx (int, optional) – number of cells in the x direction

  • y_range (Tuple[float, float], optional) – extreme values of the mesh in the y direction

  • ny (int, optional) – number of cells in the y direction

  • name (string, optional) – a name for the free surface object

Todo

Generalize to non-cartesian meshes. In particular, it could be of interest to build meshes having the same symmetry as a given floating body to speed up the construction of the influence matrix.

See also

get_free_surface_elevation()

The main function requiring a FreeSurface object.

property area

The total area covered by the mesh.

incoming_waves(problem: DiffractionProblem) ndarray[source]

Free surface elevation of the undisturbed incoming waves for a given diffraction problem. Kept for legacy, but not recommended for use.