1 #ifndef VTESTBED_CORE_LINEAR_WAVE_HH     2 #define VTESTBED_CORE_LINEAR_WAVE_HH     4 #include <vtestbed/base/constants.hh>     5 #include <vtestbed/core/wave.hh>    11         template <
class T, 
int N>
    13         linear_wave_angular_frequency(
const blitz::TinyVector<T,N>& k) {
    15             using base::constants;
    16             constexpr 
auto g = constants<T>::g();
    20         template <
class T, 
int N>
    22         linear_wave_angular_frequency(Length<T> length, Direction<T> angle) {
    23             return linear_wave_angular_frequency<T,N>(wave_number<T, N>(length, angle));
    26         template <
class T, 
int N>
    30             using typename Wave_base<T,N>::vec;
    65 #endif // vim:filetype=cpp T angular_frequency() const noexcept
Get wave angular frequency.
 
const vec & wave_number() const noexcept
Get wave numbers for each dimension.
 
vec length() const noexcept
Get wave length.
 
T direction() const noexcept
Get wave direction in radians.
 
T length(const blitz::TinyVector< T, N > &x)
Computes vector length without overflow.
 
T amplitude() const noexcept
Get wave amplitude.
 
T operator()(const vec &x, T t) const noexcept
Returns wavy surface elevation at point x.
 
Base class for water waves.