20 namespace VelocityFunction {
56 assert(p.size() == 5);
65 inline auto operator() (
const T x,
const T y,
const T t = 0)
const
69 T k = 8 * std::atan(1) /
l_;
71 T yc =
a_ * std::sin(k * x);
72 T dyc =
a_ * k * std::cos(k * x);
73 T alpha0 = lambda_ * std::sqrt(dyc*dyc + 1);
75 T u = -
cx_ + phi0 / std::pow(std::cosh((y-yc)/alpha0), 2) / alpha0;
76 T v = -phi0 * ((yc*dyc*k*k*(y-yc)) / (lambda_*std::pow(dyc*dyc+1,1.5)) - dyc/alpha0)
77 / std::pow(std::cosh((y-yc)/alpha0), 2);
79 return std::make_tuple(u, v);
106 template <
typename T>
117 assert(p.size() == 3);
126 inline auto operator() (
const T x,
const T y,
const T t)
const
131 T dfdx = 2*at*x + bt;
133 T pi = 4 * std::atan(1);
134 T u = -pi *
a_ * std::sin(pi*f) * std::cos(pi*y);
135 T v = pi *
a_ * std::cos(pi*f) * std::sin(pi*y) * dfdx;
137 return std::make_tuple(u, v);
Bower model for meandering jet.
Definition: velocity_function.hpp:46
T omega_
Definition: velocity_function.hpp:142
T lambda_
Definition: velocity_function.hpp:86
DoubleGyreModel(std::vector< T > &p)
Definition: velocity_function.hpp:115
auto operator()(const T x, const T y, const T t=0) const
Definition: velocity_function.hpp:65
auto operator()(const T x, const T y, const T t) const
Definition: velocity_function.hpp:126
T sc_
Definition: velocity_function.hpp:82
DoubleGyreModel()
Definition: velocity_function.hpp:110
Double-gyre model.
Definition: velocity_function.hpp:107
T a_
Definition: velocity_function.hpp:83
T epsilon_
Definition: velocity_function.hpp:140
BowerModel(std::vector< T > &p)
Definition: velocity_function.hpp:54
T l_
Definition: velocity_function.hpp:84
T cx_
Definition: velocity_function.hpp:85
BowerModel()
Definition: velocity_function.hpp:49
T a_
Definition: velocity_function.hpp:141