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.