Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
tatooine::ftle_field< FlowmapGradient > Struct Template Reference

#include <ftle.h>

Inheritance diagram for tatooine::ftle_field< FlowmapGradient >:
[legend]
Collaboration diagram for tatooine::ftle_field< FlowmapGradient >:
[legend]

Public Types

using real_type = typename FlowmapGradient::real_type
 
using this_type = ftle_field< FlowmapGradient >
 
using parent_type = scalarfield< this_type, real_type, FlowmapGradient::num_dimensions()>
 
using vec_type = typename FlowmapGradient::vec_type
 
using pos_type = vec< real_type, NumDimensions >
 
using tensor_type = Tensor
 
- 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

template<typename V , typename VReal , size_t N, template< typename, size_t > typename ODESolver>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { v(x, t); }
constexpr ftle_field (vectorfield< V, VReal, N > const &v, arithmetic auto tau, ODESolver< VReal, N > const &)
 
template<typename V , typename VReal , size_t N>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { v(x, t); }
constexpr ftle_field (vectorfield< V, VReal, N > const &v, arithmetic auto tau)
 
template<typename V , typename VReal , size_t N>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { { v(x, t) } ->std::convertible_to<typename V::tensor_type>; }
constexpr ftle_field (vectorfield< V, VReal, N > const &v, arithmetic auto tau, arithmetic auto eps)
 
template<typename V , typename VReal , size_t N>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { v(x, t); }
constexpr ftle_field (vectorfield< V, VReal, N > const &v, arithmetic auto tau, vec_type const &eps)
 
auto evaluate (pos_type const &x, real_type t) const -> tensor_type final
 
auto tau () const
 
auto tau () -> auto &
 
void set_tau (real_type tau)
 
auto flowmap_gradient () const -> const auto &
 
auto flowmap_gradient () -> auto &
 
- 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 auto constexpr num_dimensions ()
 
- 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)
 

Private Attributes

FlowmapGradient m_flowmap_gradient
 
real_type m_tau
 

Member Typedef Documentation

◆ parent_type

template<typename FlowmapGradient >
using tatooine::ftle_field< FlowmapGradient >::parent_type = scalarfield<this_type, real_type, FlowmapGradient::num_dimensions()>

◆ pos_type

template<typename FlowmapGradient >
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::pos_type = vec<real_type, NumDimensions>

◆ real_type

template<typename FlowmapGradient >
using tatooine::ftle_field< FlowmapGradient >::real_type = typename FlowmapGradient::real_type

◆ tensor_type

template<typename FlowmapGradient >
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::tensor_type = Tensor

◆ this_type

template<typename FlowmapGradient >
using tatooine::ftle_field< FlowmapGradient >::this_type = ftle_field<FlowmapGradient>

◆ vec_type

template<typename FlowmapGradient >
using tatooine::ftle_field< FlowmapGradient >::vec_type = typename FlowmapGradient::vec_type

Constructor & Destructor Documentation

◆ ftle_field() [1/4]

template<typename FlowmapGradient >
template<typename V , typename VReal , size_t N, template< typename, size_t > typename ODESolver>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { v(x, t); }
constexpr tatooine::ftle_field< FlowmapGradient >::ftle_field ( vectorfield< V, VReal, N > const &  v,
arithmetic auto  tau,
ODESolver< VReal, N > const &   
)
inlineconstexpr

◆ ftle_field() [2/4]

template<typename FlowmapGradient >
template<typename V , typename VReal , size_t N>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { v(x, t); }
constexpr tatooine::ftle_field< FlowmapGradient >::ftle_field ( vectorfield< V, VReal, N > const &  v,
arithmetic auto  tau 
)
inlineconstexpr

◆ ftle_field() [3/4]

template<typename FlowmapGradient >
template<typename V , typename VReal , size_t N>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { { v(x, t) } ->std::convertible_to<typename V::tensor_type>; }
constexpr tatooine::ftle_field< FlowmapGradient >::ftle_field ( vectorfield< V, VReal, N > const &  v,
arithmetic auto  tau,
arithmetic auto  eps 
)
inlineconstexpr

◆ ftle_field() [4/4]

template<typename FlowmapGradient >
template<typename V , typename VReal , size_t N>
requires requires(V&& v, typename V::pos_type&& x, typename V::real_type&& t) { v(x, t); }
constexpr tatooine::ftle_field< FlowmapGradient >::ftle_field ( vectorfield< V, VReal, N > const &  v,
arithmetic auto  tau,
vec_type const &  eps 
)
inlineconstexpr

Member Function Documentation

◆ evaluate()

template<typename FlowmapGradient >
auto tatooine::ftle_field< FlowmapGradient >::evaluate ( pos_type const &  x,
real_type  t 
) const -> tensor_type
inlinefinal

◆ flowmap_gradient() [1/2]

template<typename FlowmapGradient >
auto tatooine::ftle_field< FlowmapGradient >::flowmap_gradient ( ) -> auto&
inline

◆ flowmap_gradient() [2/2]

template<typename FlowmapGradient >
auto tatooine::ftle_field< FlowmapGradient >::flowmap_gradient ( ) const -> const auto&
inline

◆ num_dimensions()

template<typename FlowmapGradient >
static auto constexpr tatooine::ftle_field< FlowmapGradient >::num_dimensions ( )
inlinestaticconstexpr

◆ set_tau()

template<typename FlowmapGradient >
void tatooine::ftle_field< FlowmapGradient >::set_tau ( real_type  tau)
inline

◆ tau() [1/2]

template<typename FlowmapGradient >
auto tatooine::ftle_field< FlowmapGradient >::tau ( ) -> auto&
inline

◆ tau() [2/2]

template<typename FlowmapGradient >
auto tatooine::ftle_field< FlowmapGradient >::tau ( ) const
inline

Member Data Documentation

◆ m_flowmap_gradient

template<typename FlowmapGradient >
FlowmapGradient tatooine::ftle_field< FlowmapGradient >::m_flowmap_gradient
private

◆ m_tau

template<typename FlowmapGradient >
real_type tatooine::ftle_field< FlowmapGradient >::m_tau
private

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