Tatooine
Public Types | Public Member Functions | Private Attributes | List of all members
tatooine::analytical::numerical::abcflow< real_type > Struct Template Reference

The Arnold–Beltrami–Childress (ABC) flow is a three-dimensional incompressible velocity field which is an exact solution of Euler's equation. More...

#include <abcflow.h>

Inheritance diagram for tatooine::analytical::numerical::abcflow< real_type >:
[legend]
Collaboration diagram for tatooine::analytical::numerical::abcflow< real_type >:
[legend]

Public Types

using this_type = abcflow< real_type >
 
using parent_type = vectorfield< this_type, real_type, 3 >
 
- 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 abcflow (real_type const a=1, real_type const b=1, real_type const c=1)
 
constexpr abcflow (const abcflow &other)=default
 
constexpr abcflow (abcflow &&other)=default
 
constexpr abcflowoperator= (const abcflow &other)=default
 
constexpr abcflowoperator= (abcflow &&other)=default
 
 ~abcflow () override=default
 
constexpr auto evaluate (pos_type const &x, real_type const) const -> tensor_type
 
constexpr auto in_domain (pos_type const &, real_type const) const -> bool
 
- 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
 

Private Attributes

real_type m_a
 
real_type m_b
 
real_type m_c
 

Additional Inherited Members

- 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)
 

Detailed Description

template<typename real_type>
struct tatooine::analytical::numerical::abcflow< real_type >

The Arnold–Beltrami–Childress (ABC) flow is a three-dimensional incompressible velocity field which is an exact solution of Euler's equation.

Member Typedef Documentation

◆ parent_type

◆ this_type

Constructor & Destructor Documentation

◆ abcflow() [1/3]

template<typename real_type >
constexpr tatooine::analytical::numerical::abcflow< real_type >::abcflow ( real_type const  a = 1,
real_type const  b = 1,
real_type const  c = 1 
)
inlineexplicitconstexpr

◆ abcflow() [2/3]

template<typename real_type >
constexpr tatooine::analytical::numerical::abcflow< real_type >::abcflow ( const abcflow< real_type > &  other)
constexprdefault

◆ abcflow() [3/3]

template<typename real_type >
constexpr tatooine::analytical::numerical::abcflow< real_type >::abcflow ( abcflow< real_type > &&  other)
constexprdefault

◆ ~abcflow()

template<typename real_type >
tatooine::analytical::numerical::abcflow< real_type >::~abcflow ( )
overridedefault

Member Function Documentation

◆ evaluate()

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

◆ in_domain()

template<typename real_type >
constexpr auto tatooine::analytical::numerical::abcflow< real_type >::in_domain ( pos_type const &  ,
real_type const   
) const -> bool
inlineconstexpr

◆ operator=() [1/2]

template<typename real_type >
constexpr abcflow & tatooine::analytical::numerical::abcflow< real_type >::operator= ( abcflow< real_type > &&  other)
constexprdefault

◆ operator=() [2/2]

template<typename real_type >
constexpr abcflow & tatooine::analytical::numerical::abcflow< real_type >::operator= ( const abcflow< real_type > &  other)
constexprdefault

Member Data Documentation

◆ m_a

◆ m_b

◆ m_c


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