Tatooine
Public Types | Public Member Functions | Public Attributes | List of all members
tatooine::lambda_field< NumDimensions, F > Struct Template Reference

#include <field.h>

Inheritance diagram for tatooine::lambda_field< NumDimensions, F >:
[legend]
Collaboration diagram for tatooine::lambda_field< NumDimensions, F >:
[legend]

Public Types

using parent_type = field< lambda_field< NumDimensions, F >, tatooine::value_type< std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >, NumDimensions, std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >
 
- Public Types inherited from tatooine::field< lambda_field< NumDimensions, F >, tatooine::value_type< std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >, NumDimensions, std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >
using this_type = field< lambda_field< NumDimensions, F >, tatooine::value_type< std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >, NumDimensions, std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >
 
using parent_type = polymorphic::field< tatooine::value_type< std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >, NumDimensions, std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >
 
using pos_type = vec< real_type, NumDimensions >
 
using real_type = tatooine::value_type< std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >
 
using tensor_type = std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number >
 
- 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 lambda_field (F &&f)
 
 ~lambda_field ()=default
 
constexpr auto evaluate (pos_type const &x, real_type const t) const -> tensor_type
 
- Public Member Functions inherited from tatooine::field< lambda_field< NumDimensions, F >, tatooine::value_type< std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >, NumDimensions, std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >
 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
 

Public Attributes

m_f
 

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)
 

Member Typedef Documentation

◆ parent_type

template<std::size_t NumDimensions, typename F >
using tatooine::lambda_field< NumDimensions, F >::parent_type = field< lambda_field<NumDimensions, F>, tatooine::value_type<std::invoke_result_t< F, vec<tatooine::real_number, NumDimensions>, tatooine::real_number> >, NumDimensions, std::invoke_result_t<F, vec<tatooine::real_number, NumDimensions>, tatooine::real_number> >

Constructor & Destructor Documentation

◆ lambda_field()

template<std::size_t NumDimensions, typename F >
constexpr tatooine::lambda_field< NumDimensions, F >::lambda_field ( F &&  f)
inlineconstexpr

◆ ~lambda_field()

template<std::size_t NumDimensions, typename F >
tatooine::lambda_field< NumDimensions, F >::~lambda_field ( )
default

Member Function Documentation

◆ evaluate()

template<std::size_t NumDimensions, typename F >
constexpr auto tatooine::lambda_field< NumDimensions, F >::evaluate ( pos_type const &  x,
real_type const  t 
) const -> tensor_type
inlineconstexpr

Member Data Documentation

◆ m_f

template<std::size_t NumDimensions, typename F >
F tatooine::lambda_field< NumDimensions, F >::m_f

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