Virtual Testbed
Ship dynamics simulator for extreme conditions
|
Main class for interacting with virtual testbed. More...
#include <testbed.hh>
Public Types | |
using | value_type = T |
using | ship_type = Ship< T > |
using | ship_motion_solver_type = Ship_motion_solver< T > |
using | ship_motion_solver_ptr = std::unique_ptr< ship_motion_solver_type > |
using | wavy_surface_generator_type = Wavy_surface_generator< T, N > |
using | wavy_surface_generator_ptr = std::unique_ptr< wavy_surface_generator_type > |
using | velocity_potential_solver_type = Velocity_potential_solver< T, N > |
using | velocity_potential_solver_ptr = std::unique_ptr< velocity_potential_solver_type > |
using | vertex_field_3d = blitz::Array< blitz::TinyVector< T, 3 >, 3 > |
typedef Wave_pressure_solver< T > | wave_pressure_solver_type |
typedef std::unique_ptr< wave_pressure_solver_type > | wave_pressure_solver_ptr |
using | gerstner_solver_type = Gerstner_solver< T, 3 > |
typedef std::unique_ptr< gerstner_solver_type > | gerstner_solver_ptr |
using | grid2 = Grid< T, N-1 > |
using | grid3 = Grid< T, N > |
using | grid4 = Grid< T, N+1 > |
using | array_type = Array< T, N > |
using | phi_array_type = Array< T, N+1 > |
using | domain3 = blitz::RectDomain< N > |
using | domain4 = blitz::RectDomain< N+1 > |
using | statistics_type = Statistics< T > |
using | array2 = Array< T, 2 > |
using | array3 = Array< T, 3 > |
using | vec3 = Vector3< T > |
using | wetted_surface_solver_type = Wetted_surface_solver< T, N > |
using | wetted_surface_solver_ptr = std::unique_ptr< wetted_surface_solver_type > |
using | arma_wind_solver_type = ARMA_wind_solver< T > |
using | arma_wind_solver_ptr = std::unique_ptr< arma_wind_solver_type > |
using | anlt_wind_solver_type = ANLT_wind_solver< T > |
using | anlt_wind_solver_ptr = std::unique_ptr< anlt_wind_solver_type > |
using | panel_type = typename wetted_surface_solver_type::panel_type |
using | panel_array = typename wetted_surface_solver_type::panel_array |
using | waterline_type = typename wetted_surface_solver_type::waterline_type |
using | irregular_surface_type = Array< vec3, 3 > |
using | irregular_surface_type_2d = Array< vec3, 2 > |
Public Member Functions | |
Testbed (Testbed &&)=default | |
Testbed & | operator= (Testbed &&)=default |
Testbed (const Testbed &)=delete | |
Testbed & | operator= (const Testbed &)=delete |
void | set_solver_type (Solver_type type) |
Solver_type | get_solver_type () const |
const ship_type & | ship () const |
ship_type & | ship () |
void | ship (ship_type &&rhs) |
void | ship (const ship_type &rhs) |
void | gerstner_solver (gerstner_solver_ptr &&rhs) |
gerstner_solver_type * | gerstner_solver () |
const gerstner_solver_type * | gerstner_solver () const |
void | wavy_surface_generator (wavy_surface_generator_ptr &&rhs) |
const wavy_surface_generator_type * | wavy_surface_generator () const noexcept |
wavy_surface_generator_type * | wavy_surface_generator () noexcept |
void | velocity_potential_solver (velocity_potential_solver_ptr &&rhs) |
const velocity_potential_solver_type * | velocity_potential_solver () const noexcept |
velocity_potential_solver_type * | velocity_potential_solver () noexcept |
void | wave_pressure_solver (wave_pressure_solver_ptr &&rhs) |
const wave_pressure_solver_type * | wave_pressure_solver () const noexcept |
wave_pressure_solver_type * | wave_pressure_solver () noexcept |
void | wetted_surface_solver (wetted_surface_solver_ptr &&rhs) |
wetted_surface_solver_type * | wetted_surface_solver () |
const wetted_surface_solver_type * | wetted_surface_solver () const |
const array_type & | wavy_surface () const noexcept |
const grid4 | grid () const |
array2 | wavy_surface_2d () const noexcept |
irregular_surface_type | irregular_wavy_surface () |
irregular_surface_type_2d | irregular_wavy_surface_2d () const |
const phi_array_type & | velocity_potential () const noexcept |
array3 | velocity_potential_3d () const noexcept |
void | step (T dt) |
void | reset () |
Reset simulation to the initial state and retain solver configuration. More... | |
ship_motion_solver_type * | ship_motion_solver () |
const ship_motion_solver_type * | ship_motion_solver () const |
void | wavy_surface_grid (const grid2 &rhs) noexcept |
grid3 | wavy_surface_grid () const noexcept |
grid2 | wavy_surface_grid_2d () const noexcept |
grid4 | velocity_potential_grid () const noexcept |
grid3 | velocity_potential_grid_3d () const noexcept |
T | time_instant () const noexcept |
Current time instant in seconds. | |
const grid4 & | grid_txyz () const |
const panel_array & | wetted_panels () const noexcept |
Wetted ship hull faces that comprise underwater part of the hull. | |
const panel_array & | dry_panels () const noexcept |
bool | has_wetted_panels () const noexcept |
bool | has_wave_pressure_domain () const noexcept |
void | record_statistics (statistics_type &stats) |
const statistics_type & | statistics () const |
statistics_type & | statistics () |
const vertex_field_3d & | wind_field () const |
const grid3 & | wind_grid () const |
const vertex_field_3d & | water_velocity_field () const |
void | arma_wind_solver (arma_wind_solver_ptr &&rhs) |
void | anlt_wind_solver (anlt_wind_solver_ptr &&rhs) |
const anlt_wind_solver_type * | wind_solver () const |
const waterline_type & | waterline () const |
void | openmp_solvers () |
void | opencl_solvers () |
void | opencl_context (void *ptr) |
Friends | |
bstream & | operator<< (bstream &out, const Testbed &rhs) |
bstream & | operator>> (bstream &in, Testbed &rhs) |
Main class for interacting with virtual testbed.
Definition at line 33 of file testbed.hh.
void vtb::core::Testbed< T, N >::reset | ( | ) |
Reset simulation to the initial state and retain solver configuration.
Definition at line 128 of file core/testbed.cc.
|
inlinenoexcept |
\(N+1\) dimensional velocity potential. The first dimension is time, the second is \(z\), the rest are \(x\) and \(y\).
Definition at line 227 of file testbed.hh.
|
inlinenoexcept |
\(N\)-dimensional spatio-temporal grid for velocity potential field. The dimensions are \((t,z,x,y)\).
Definition at line 297 of file testbed.hh.
|
inlinenoexcept |
\(N\)-dimensional wavy surface. The first dimension is time, the rest are spatial.
Definition at line 197 of file testbed.hh.
|
inlinenoexcept |
Set \((x,y)\) dimensions of the grid.
Definition at line 264 of file testbed.hh.
|
inlinenoexcept |
\(N\)-dimensional spatio-temporal grid for wavy surface generation. The first dimension is time, the rest are spatial.
Definition at line 280 of file testbed.hh.
|
inlinenoexcept |
Two-dimensional spatial wavy surface grid.
Definition at line 288 of file testbed.hh.