Virtual Testbed
Ship dynamics simulator for extreme conditions
|
Public Member Functions | |
void | compute_forces (const ship_type &ship, const grid4 &grid_tzxy, panel_array &wetted_panels) override |
void | compute_positions (const ship_type &ship, const panel_array &panels, const grid3 &grid_txy, vertex_field_3d &result) override |
void | generate_field (const grid3 &grid_xyz, vertex_field_3d &result, T t, const panel_array &panels, const ship_type &ship, Quantity q, scalar_field_3d *potential=nullptr) |
![]() | |
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 (Gerstner_solver &&)=default | |
Gerstner_solver & | operator= (const Gerstner_solver &)=default |
Gerstner_solver & | operator= (Gerstner_solver &&)=default |
Protected Types | |
enum | Quantity { Position, Velocity } |
using | base_type = Gerstner_solver< T, 3 > |
Additional Inherited Members | |
![]() | |
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 > |
![]() | |
T | _depth |
wave_array | _waves |
vertex_field_3d | _velocity |
scalar_field_3d | _potential |
grid3 | _velocity_grid_zxy |
panel_array | _old_panels |
T | _old_t |
bool | _diffraction |
bool | _radiation |
bool | _waterline_only |
bool | _clip |
Definition at line 16 of file gerstner_openmp.cc.
void vtb::core::Gerstner_solver_openmp< T >::generate_field | ( | const grid3 & | grid_xyz, |
vertex_field_3d & | result, | ||
T | t, | ||
const panel_array & | panels, | ||
const ship_type & | ship, | ||
Quantity | q, | ||
scalar_field_3d * | potential = nullptr |
||
) |
Definition at line 110 of file gerstner_openmp.cc.
References vtb::core::Ship< T >::angular_velocity(), vtb::base::constants< T >::g(), vtb::base::constants< T >::pi(), vtb::core::Ship< T >::position(), vtb::core::scale(), and vtb::core::Ship< T >::velocity().