Virtual Testbed
Ship dynamics simulator for extreme conditions
Classes | Public Member Functions | List of all members
vtb::core::Gerstner_solver_opencl< T > Class Template Reference
Inheritance diagram for vtb::core::Gerstner_solver_opencl< T >:
[legend]
Collaboration diagram for vtb::core::Gerstner_solver_opencl< T >:
[legend]

Public Member Functions

void context (Context *rhs) override
 
clx::kernel & generate_field_kernel (bool position, bool velocity_and_potential, bool finite_depth)
 
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_zxy, T t, const panel_array &all_panels, const ship_type &ship, vertex_field_3d *position, vertex_field_3d *velocity=nullptr, scalar_field_3d *potential=nullptr)
 
- Public Member Functions inherited from vtb::core::Gerstner_solver< T, 3 >
depth () const
 Water depth.
 
void depth (T rhs)
 
const wave_arraywaves () 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 grid3velocity_grid () const
 
 Gerstner_solver (const Gerstner_solver &)=default
 
 Gerstner_solver (Gerstner_solver &&)=default
 
Gerstner_solveroperator= (const Gerstner_solver &)=default
 
Gerstner_solveroperator= (Gerstner_solver &&)=default
 
- Public Member Functions inherited from vtb::opencl::Context_base
Contextcontext ()
 
const Contextcontext () const
 

Additional Inherited Members

- Public Types inherited from vtb::core::Gerstner_solver< T, 3 >
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 >
 
- Protected Attributes inherited from vtb::core::Gerstner_solver< T, 3 >
_depth
 
wave_array _waves
 
vertex_field_3d _velocity
 
scalar_field_3d _potential
 
grid3 _velocity_grid_zxy
 
panel_array _old_panels
 
_old_t
 
bool _diffraction
 
bool _radiation
 
bool _waterline_only
 
bool _clip
 

Detailed Description

template<class T>
class vtb::core::Gerstner_solver_opencl< T >

Definition at line 32 of file gerstner_opencl.cc.