Tatooine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
tatooine::analytical::numerical::modified_doublegyre< Real > Struct Template Reference

#include <modified_doublegyre.h>

Inheritance diagram for tatooine::analytical::numerical::modified_doublegyre< Real >:
[legend]
Collaboration diagram for tatooine::analytical::numerical::modified_doublegyre< Real >:
[legend]

Classes

struct  hyperbolic_trajectory_spacetime_type
 
struct  hyperbolic_trajectory_type
 
struct  lagrangian_coherent_structure_type
 

Public Types

using this_type = modified_doublegyre< Real >
 
using parent_type = vectorfield< this_type, Real, 2 >
 
- Public Types inherited from tatooine::field< DerivedField, Real, NumDimensions, Tensor >
using this_type = field< DerivedField, Real, NumDimensions, Tensor >
 
using parent_type = polymorphic::field< Real, NumDimensions, Tensor >
 
using pos_type = vec< real_type, NumDimensions >
 
using real_type = Real
 
using tensor_type = Tensor
 
- Public Types inherited from tatooine::polymorphic::field< Real, NumDimensions, Tensor >
using real_type = Real
 
using tensor_type = Tensor
 
using this_type = field< real_type, NumDimensions, Tensor >
 
using pos_type = vec< real_type, NumDimensions >
 

Public Member Functions

constexpr auto evaluate (pos_type const &x, Real const t) const -> tensor_type
 
constexpr auto hyperbolic_trajectory () const
 
constexpr auto hyperbolic_trajectory (Real t) const
 
constexpr auto hyperbolic_trajectory_spacetime () const
 
template<template< typename, std::size_t > typename ODESolver = ode::boost::rungekuttafehlberg78>
auto lagrangian_coherent_structure (Real const t, Real const eps=1e-10) const
 
- Public Member Functions inherited from tatooine::field< DerivedField, Real, NumDimensions, Tensor >
 field ()=default
 
 field (field const &)=default
 
 field (field &&) noexcept=default
 
auto operator= (field const &) -> field &=default
 
auto operator= (field &&) noexcept -> field &=default
 
virtual ~field ()=default
 
auto as_derived () -> auto &
 
auto as_derived () const -> auto const &
 
auto evaluate (pos_type const &x, real_type const t) const -> tensor_type override
 
- Public Member Functions inherited from tatooine::polymorphic::field< Real, NumDimensions, Tensor >
constexpr field ()=default
 
constexpr field (field const &)=default
 
constexpr field (field &&) noexcept=default
 
constexpr auto operator= (field const &) -> field &=default
 
constexpr auto operator= (field &&) noexcept -> field &=default
 
virtual ~field ()=default
 
virtual constexpr auto evaluate (pos_type const &, real_type const) const -> tensor_type=0
 
constexpr auto evaluate (fixed_size_vec< NumDimensions > auto const &x) const -> tensor_type
 
constexpr auto operator() (fixed_size_vec< NumDimensions > auto const &x, real_type const t) const -> tensor_type
 
constexpr auto operator() (fixed_size_vec< NumDimensions > auto const &x) const -> tensor_type
 
constexpr auto operator() (arithmetic auto const ... xs) const -> tensor_type
 

Static Public Member Functions

static constexpr auto timeoffset (Real const t)
 
- Static Public Member Functions inherited from tatooine::polymorphic::field< Real, NumDimensions, Tensor >
static auto constexpr ood_tensor ()
 
static auto constexpr ood_position ()
 
static constexpr auto is_field ()
 
static constexpr auto is_scalarfield ()
 
static constexpr auto is_vectorfield ()
 
static constexpr auto is_matrixfield ()
 
static constexpr auto num_dimensions () -> std::size_t
 
static constexpr auto num_tensor_components ()
 
static constexpr auto tensor_rank ()
 
static constexpr auto tensor_dimension (std::size_t i)
 

Static Public Attributes

static constexpr Real pi = M_PI
 
static constexpr Real epsilon = 0.25
 
static constexpr Real omega = 2 * pi * 0.1
 
static constexpr Real A = 0.1
 
static constexpr Real c = -0.2040811331
 
static constexpr Real cc = c * c
 
static constexpr Real d = 9.964223388
 

Member Typedef Documentation

◆ parent_type

template<typename Real >
using tatooine::analytical::numerical::modified_doublegyre< Real >::parent_type = vectorfield<this_type, Real, 2>

◆ this_type

template<typename Real >
using tatooine::analytical::numerical::modified_doublegyre< Real >::this_type = modified_doublegyre<Real>

Member Function Documentation

◆ evaluate()

template<typename Real >
constexpr auto tatooine::analytical::numerical::modified_doublegyre< Real >::evaluate ( pos_type const &  x,
Real const  t 
) const -> tensor_type
inlineconstexprvirtual

◆ hyperbolic_trajectory() [1/2]

template<typename Real >
constexpr auto tatooine::analytical::numerical::modified_doublegyre< Real >::hyperbolic_trajectory ( ) const
inlineconstexpr

◆ hyperbolic_trajectory() [2/2]

template<typename Real >
constexpr auto tatooine::analytical::numerical::modified_doublegyre< Real >::hyperbolic_trajectory ( Real  t) const
inlineconstexpr

◆ hyperbolic_trajectory_spacetime()

template<typename Real >
constexpr auto tatooine::analytical::numerical::modified_doublegyre< Real >::hyperbolic_trajectory_spacetime ( ) const
inlineconstexpr

◆ lagrangian_coherent_structure()

template<typename Real >
template<template< typename, std::size_t > typename ODESolver = ode::boost::rungekuttafehlberg78>
auto tatooine::analytical::numerical::modified_doublegyre< Real >::lagrangian_coherent_structure ( Real const  t,
Real const  eps = 1e-10 
) const
inline

◆ timeoffset()

template<typename Real >
static constexpr auto tatooine::analytical::numerical::modified_doublegyre< Real >::timeoffset ( Real const  t)
inlinestaticconstexpr

Member Data Documentation

◆ A

template<typename Real >
constexpr Real tatooine::analytical::numerical::modified_doublegyre< Real >::A = 0.1
staticconstexpr

◆ c

template<typename Real >
constexpr Real tatooine::analytical::numerical::modified_doublegyre< Real >::c = -0.2040811331
staticconstexpr

◆ cc

template<typename Real >
constexpr Real tatooine::analytical::numerical::modified_doublegyre< Real >::cc = c * c
staticconstexpr

◆ d

template<typename Real >
constexpr Real tatooine::analytical::numerical::modified_doublegyre< Real >::d = 9.964223388
staticconstexpr

◆ epsilon

template<typename Real >
constexpr Real tatooine::analytical::numerical::modified_doublegyre< Real >::epsilon = 0.25
staticconstexpr

◆ omega

template<typename Real >
constexpr Real tatooine::analytical::numerical::modified_doublegyre< Real >::omega = 2 * pi * 0.1
staticconstexpr

◆ pi

template<typename Real >
constexpr Real tatooine::analytical::numerical::modified_doublegyre< Real >::pi = M_PI
staticconstexpr

The documentation for this struct was generated from the following file: