1 #ifndef VTESTBED_CORE_WAVE_PRESSURE_HH 2 #define VTESTBED_CORE_WAVE_PRESSURE_HH 4 #include <vtestbed/core/grid.hh> 5 #include <vtestbed/core/math.hh> 6 #include <vtestbed/core/policy.hh> 7 #include <vtestbed/core/ship_hull_panel.hh> 8 #include <vtestbed/core/types.hh> 30 using array3 = Array<T,3>;
31 using array4 = Array<T,4>;
32 using vec3 = Vector3<T>;
83 Array<T,3> wavy_surface,
85 Array<T,4> velocity_potential,
90 inline T
density() const noexcept {
return this->_density; }
91 inline void density(T rhs) noexcept { this->_density = rhs; }
93 inline T
g() const noexcept {
return this->_g; }
94 inline void g(T rhs) noexcept { this->_g = rhs; }
95 inline void clip(
bool b) { this->_clip = b; }
97 inline bool clip()
const {
return this->_clip; }
101 template <
class T, Policy P>
103 make_wave_pressure_solver();
109 #endif // vim:filetype=cpp static constexpr const T g()
Gravitational acceleration.
T g() const noexcept
Gravitational acceleration.
Base class for all wave pressure solvers.
Triangular ship hull panel (face).
bool clip() const
Clamp grid to panels?
virtual void solve(const Grid< T, 3 > &wavy_surface_grid, Array< T, 3 > wavy_surface, const Grid< T, 4 > &velocity_potential_grid, Array< T, 4 > velocity_potential, panel_array &panels)=0
Compute pressure force applied to the centre of each ship hull panel.
T density() const noexcept
Fluid density.