1#ifndef TATOOINE_ANALYTICAL_NUMERICAL_H
2#define TATOOINE_ANALYTICAL_NUMERICAL_H
8template <
typename Real>
10 :
vectorfield<rayleigh_benard_convection<Real>, Real, 3> {
33 auto xi = x(0) -
g(t);
34 auto rho = xi * xi + x(1) * x(1);
35 return {
m_A /
m_k * xi * std::sin(
m_k * rho) * std::cos(x(2)),
36 m_A /
m_k * x(1) * std::sin(
m_k * rho) * std::cos(x(2)),
37 -
m_A * std::sin(x(2)) * rho * std::cos(
m_k * rho) +
38 2 /
m_k * std::sin(
m_k * rho)};
Definition: rayleigh_benard_convection.h:10
rayleigh_benard_convection(rayleigh_benard_convection &&) noexcept=default
Real real_type
Definition: rayleigh_benard_convection.h:13
Real m_k
Definition: rayleigh_benard_convection.h:18
rayleigh_benard_convection(real_type A, real_type k)
Definition: rayleigh_benard_convection.h:23
rayleigh_benard_convection(rayleigh_benard_convection const &)=default
Real m_A
Definition: rayleigh_benard_convection.h:18
auto A() -> real_type &
Definition: rayleigh_benard_convection.h:54
auto k() -> real_type &
Definition: rayleigh_benard_convection.h:48
auto A() const
Definition: rayleigh_benard_convection.h:57
auto g(real_type const) const -> real_type
Definition: rayleigh_benard_convection.h:46
auto in_domain(pos_type const &, real_type const) const -> bool override
Definition: rayleigh_benard_convection.h:41
auto k() const
Definition: rayleigh_benard_convection.h:51
rayleigh_benard_convection()
Definition: rayleigh_benard_convection.h:21
auto evaluate(pos_type const &x, real_type const t) const -> tensor_type override
Definition: rayleigh_benard_convection.h:32
vec< real_type, NumDimensions > pos_type
Definition: field.h:20
Tensor tensor_type
Definition: field.h:18