Uses formulae from linear wavy theory.
solve(const Grid< T, 4 > & grid_tzxy, const Array< T, 2 > & wavy_surface) -> voidvirtual
Calculate velocity potential for each grid point.
window_function(const Grid< T, 2 > & wngrid, const T z, Array2< T > & result) -> void
Linear_velocity_potential_solver()
window_function(const Grid< T, 2 > & wngrid, const T z, Array2< T > & result) -> void
Computes window (first) function .
solve(const Grid< T, 4 > & grid_tzxy, const Array< T, 2 > & wavy_surface) -> voidvirtual
Computes velocity potential . The integration is implemented using FFT and is done over wave number range which is computed directly from the wavy surface.The main formula for velocity potential is where is window function and is second function. For details see documentation of the corresponding methods.
~Linear_velocity_potential_solver()
Linear_velocity_potential_solver()
Base class for linear velocity potential solver.
vtb::core::Linear_velocity_potential_solver< T, P >
vtb::core::Linear_velocity_potential_solver_opencl< T >
store_past_values(const Array< T, 2 > & zeta, const Grid< T, 2 > & grid) -> voidprotected
second_function(const Grid< T, 4 > & grid_tzxy, Array< C, 2 > & result) -> void
Computes second function.
Base class for all velocity potential solvers.
Grid< T, 2 > _elevation_grid
Array< T, 3 > _elevation
Array< T, 3 > _potential
clear() -> void
operator()(const Grid< T, 4 > & grid_tzxy, const Array< T, 2 > & wavy_surface) -> void
solve(const Grid< T, 4 > & grid_tzxy, const Array< T, 2 > & wavy_surface) -> voidvirtual
Calculate velocity potential for each grid point.
elevation() const -> const Array< T, 3 > &
Get three-dimnesional wavy surface elevation field that includes past values.
potential() const -> const Array< T, 3 > &
Get velocity potential field.
assumptions() const -> const Assumptions &
assumptions(Assumptions rhs) -> void
wave_number_grid() const -> const Grid< T, 2 > &
wave_number_grid(const Grid< T, 2 > & rhs) -> void
depth(T rhs) -> void
Set water depth.
depth() const -> T
Get water depth.
~Velocity_potential_solver()virtual
Velocity_potential_solver()
template <class T, int N, Policy P>
make_velocity_potential_solver() -> std::unique_ptr< Velocity_potential_solver< T, N > >