|
Virtual Testbed
Ship dynamics simulator for extreme conditions
|
Trochoidal irrotational waves solves named after Gerstner. More...
#include <gerstner.hh>
Public Types | |
| using | scalar_type = T |
| using | vertex_type = blitz::TinyVector< T, N > |
| using | vertex_field_3d = Array< vertex_type, 3 > |
| using | scalar_field_3d = Array< T, 3 > |
| using | grid3 = Grid< T, N > |
| using | grid4 = Grid< T, N+1 > |
| using | panel_type = Ship_hull_panel< T, N > |
| using | panel_array = std::vector< panel_type > |
| using | wave_type = Linear_wave< T, N > |
| using | wave_array = std::vector< wave_type > |
| using | ship_type = Ship< T > |
| using | C = std::complex< T > |
Public Member Functions | |
| T | depth () const |
| Water depth. | |
| void | depth (T rhs) |
| const wave_array & | waves () const |
| void | waves (wave_array &&rhs) |
| void | waves (const wave_array &rhs) |
| bool | diffraction () const |
| Calculate diffraction forces? More... | |
| void | diffraction (bool rhs) |
| bool | radiation () const |
| Calculate radiation forces? More... | |
| void | radiation (bool rhs) |
| bool | waterline_only () const |
| Calculate radiation/diffraction using waterline only? More... | |
| void | waterline_only (bool rhs) |
| bool | clip () const |
| Clamp grid to panels? | |
| void | clip (bool rhs) |
| virtual void | compute_positions (const ship_type &ship, const panel_array &panels, const grid3 &grid_txy, vertex_field_3d &surface)=0 |
| Fluid motion without diffraction/radiation. More... | |
| virtual void | compute_forces (const ship_type &ship, const grid4 &grid_tzxy, panel_array &wetted_panels)=0 |
| Compute Froude—Krylov force acting on each panel. More... | |
| const vertex_field_3d & | velocity () const |
| const scalar_field_3d & | potential () const |
| const grid3 & | velocity_grid () const |
| Gerstner_solver (const Gerstner_solver &)=default | |
| Gerstner_solver & | operator= (const Gerstner_solver &)=default |
| Gerstner_solver (Gerstner_solver &&)=default | |
| Gerstner_solver & | operator= (Gerstner_solver &&)=default |
Protected Attributes | |
| T | _depth = std::numeric_limits<T>::infinity() |
| wave_array | _waves {{Amplitude<T>(1),Length<T>(40),Direction<T>(0)}} |
| vertex_field_3d | _velocity |
| scalar_field_3d | _potential |
| grid3 | _velocity_grid_zxy |
| panel_array | _old_panels |
| T | _old_t {} |
| bool | _diffraction = false |
| bool | _radiation = false |
| bool | _waterline_only = true |
| bool | _clip = true |
Trochoidal irrotational waves solves named after Gerstner.
Definition at line 31 of file gerstner.hh.
|
pure virtual |
Compute Froude—Krylov force acting on each panel.
| [in,out] | wetted_panels | underwater panels |
As a side effect, computes velocity potential and velocity fields on and under the wave surface.
|
pure virtual |
Fluid motion without diffraction/radiation.
| [in] | panels | ship hull faces |
| [in,out] | surface | fluid particle position field \((t,x,y)\). |
Calculates positions of fluid particles on the wave surface surface.
|
inline |
Calculate diffraction forces?
The effect of the fluid particles hitting the rigid body.
Definition at line 72 of file gerstner.hh.
|
inline |
Calculate radiation forces?
The effect of an oscillating rigid body on the still fluid.
Definition at line 77 of file gerstner.hh.
|
inline |
Calculate radiation/diffraction using waterline only?
Using waterline only is much faster than using all underwater panels.
Definition at line 82 of file gerstner.hh.
1.8.15