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) -> voidLinear_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) -> voidvirtualComputes 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) -> voidprotectedsecond_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_gridArray< T, 3 > _elevationArray< T, 3 > _potentialclear() -> voidoperator()(const Grid< T, 4 > & grid_tzxy, const Array< T, 2 > & wavy_surface) -> voidsolve(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) -> voidwave_number_grid() const -> const Grid< T, 2 > &wave_number_grid(const Grid< T, 2 > & rhs) -> voiddepth(T rhs) -> voidSet water depth.
depth() const -> TGet water depth.
~Velocity_potential_solver()virtualVelocity_potential_solver()template <class T, int N, Policy P> make_velocity_potential_solver() -> std::unique_ptr< Velocity_potential_solver< T, N > >