1 #ifndef VTESTBED_CORE_ANLT_WIND_SOLVER_HH 2 #define VTESTBED_CORE_ANLT_WIND_SOLVER_HH 7 #include <vtestbed/core/types.hh> 8 #include <vtestbed/geometry/polyline.hh> 9 #include <vtestbed/geometry/ray.hh> 10 #include <vtestbed/geometry/types.hh> 20 using array_type = Array<T,4>;
21 using vec3 = blitz::TinyVector<T,3>;
22 using wind_field_type = Array<vec3,3>;
30 wind_field_type _wind_field;
32 bool _on_the_boundary =
true;
33 bool _near_the_boundary =
false;
34 bool _stratification =
false;
41 inline wind_field_type& wind_field() {
return this->_wind_field; }
42 inline const wind_field_type& wind_field()
const {
return this->_wind_field; }
54 inline void stratification(
bool rhs) { this->_stratification = rhs; }
56 inline const ray_array&
57 wind_field_boundary()
const {
58 return this->_wind_field_boundary;
61 virtual void step(
const grid_type& grid, panel_array& panels) = 0;
64 template <
class T, Policy P>
66 make_anlt_wind_solver();
72 #endif // vim:filetype=cpp
bool on_the_boundary() const
Compute wind field on the boundary.
bool near_the_boundary() const
Compute wind field near the boundary.
Triangular ship hull panel (face).
bool stratification() const
Make wind speed increase with height.