template <class T, int N>
using Vector = blitz::TinyVector< T, N >
using int3 = Vector< int, 3 >
using rect4 = blitz::RectDomain< 4 >
using mask_array = std::vector< bool >
template <class T, int N>
using Array = ::blitz::Array< T, N >
template <class T>
using Vector4 = Vector< T, 4 >
template <class T>
using Vector3 = Vector< T, 3 >
using rect3 = blitz::RectDomain< 3 >
using int4 = Vector< int, 4 >
template <class T>
using Array2 = Array< T, 2 >
using int2 = Vector< int, 2 >
template <class T, int N>
using Matrix = blitz::TinyMatrix< T, N, N >
template <class T>
using Array1 = Array< T, 1 >
template <class T>
using Vector2 = Vector< T, 2 >
using int1 = Vector< int, 1 >
template <class T>
using Array4 = Array< T, 4 >
template <class T>
using Vector1 = Vector< T, 1 >
template <class T>
using Array3 = Array< T, 3 >
using rect2 = blitz::RectDomain< 2 >
template <class T, int N>
class vtb::core::Wetted_surface_solver
Derived classes
Types
Fields
  • waterline_type _waterline
  • mask_array _wetted_vertices_mask
  • panel_array _dry_panels
  • panel_array _wet_panels
  • panel_array _all_panels
Methods
  • compute_centres(ship_type & ship) -> voidprotected
  • waterline() const -> const waterline_type &

    Waterline polyline (line segment array).

  • wetted_vertices_mask() const -> const mask_array &

    Wetted panels mask.

  • all_panels() -> panel_array &
  • all_panels() const -> const panel_array &

    All ship hull faces.

  • dry_panels() -> panel_array &
  • dry_panels() const -> const panel_array &

    Wetted ship hull faces.

  • wet_panels() -> panel_array &
  • wet_panels() const -> const panel_array &

    Wetted ship hull faces.

  • solve(ship_type & ship, const grid_type & grid_txyz, Array2< vertex_type > wavy_surface) -> voidvirtual

    Determine underwater hull panels (faces) for irregular grid.

  • solve(ship_type & ship, const grid_type & grid_txyz, Array< T, 2 > wavy_surface) -> voidvirtual

    Determine underwater hull panels (faces) taking into account ship position and orientation.

    ship
    a ship

    grid_txyz
    four-dimensional grid

    wavy_surface
    wavy surface elevation three-dimensional array

    Date
    2018-08-23
    Author
    Ivan Gankevich
    Return
    array of underwater panels with computed normals and areas
  • ~Wetted_surface_solver()virtual
  • Wetted_surface_solver()
template <class T, int N>
class vtb::core::No_wave

Calm sea.

Methods
  • operator()(const vec &, T) const -> T

    Returns wavy surface elevation at point x.

  • operator=(const No_wave &) -> No_wave &
  • No_wave(const No_wave &)
  • No_wave()
template <class T>
class vtb::core::Wavy_surface_generator

Base class for wavy surface generators.

  • Wavy surface generators fill multidimensional arrays with wavy surface elevation for specified spatio-temporal grid and wave type. Sometimes these arrays are called height maps.

Derived classes
Types
  • using array_type = Array< T, 2 >
  • using grid_type = Grid< T, 2 >
Fields
  • array_type _elevation
Methods
template <class T, int N>
class vtb::core::Wave_base

Base class for water waves.

  • This class stores wave amplitude and wave numbers.
  • Other parameters may be added later.

Derived classes
Types
  • using vec = Vector< T, N-1 >
  • using value_type = T
Fields
  • T _angular_frequency
  • vec _wave_vector
  • T _amplitude
Methods
  • dimensions() -> constexpr static int
  • phase_velocity() const -> vec

    Get phase velocity.

  • period() const -> T

    Get wave period.

  • normal() const -> vec

    Get wave direction as unit vector.

  • direction() const -> T

    Get wave direction in radians.

  • scalar_length() const -> T

    Get wave length.

  • length() const -> vec

    Get wave length.

  • angular_frequency() const -> T

    Get wave angular frequency.

  • number() const -> const vec &

    Get wave numbers for each dimension.

  • wave_number() const -> const vec &

    Get wave numbers for each dimension.

  • amplitude() const -> T

    Get wave amplitude.

  • Wave_base(T amplitude, T length, vec normal, T velocity)explicit
  • Wave_base(T amplitude, const vec & k, T freq)explicit
  • operator=(const Wave_base &) -> Wave_base &
  • Wave_base(const Wave_base &)
  • Wave_base()