Loading [MathJax]/extensions/tex2jax.js
Tatooine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages Concepts
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels > Struct Template Reference

#include <vertex_property_sampler.h>

Inheritance diagram for tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >:
[legend]

Public Types

using this_type = base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels... >
 
using indexing_type = base_vertex_property_sampler_at_t< this_type, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels... >
 
using real_type = Real
 
using value_type = ValueType
 

Public Member Functions

auto constexpr as_derived_sampler () -> DerivedSampler &
 returns casted as_derived data More...
 
auto constexpr as_derived_sampler () const -> DerivedSampler const &
 returns casted as_derived data More...
 
auto property () const -> auto const &
 
auto grid () const -> auto const &
 
auto data_at (integral auto const ... is) const -> value_type const &
 
auto position_at (integral auto const ... is) const
 
template<std::size_t DimensionIndex>
auto cell_index (arithmetic auto const x) const -> decltype(auto)
 
auto at (std::size_t const i) const -> decltype(auto)
 
auto operator[] (std::size_t i) const -> decltype(auto)
 

Static Public Member Functions

static auto constexpr current_dimension_index ()
 
static auto constexpr num_dimensions () -> std::size_t
 
static auto constexpr num_components ()
 

Protected Member Functions

auto finite_differences_coefficients (std::size_t const vertex_index, std::size_t const stencil_size) const
 
template<typename It >
auto differentiate (floating_point_range auto const &coeffs, It sample_begin, It sample_end) const
 Calcuates derivative from samples and differential coefficients. More...
 
auto interpolate_cell_without_derivative (auto const &cit_head, auto const &... cit_tail) const -> value_type
 
auto interpolate_cell_with_one_derivative (auto const &cit_head, auto const &... cit_tail) const -> value_type
 
auto constexpr interpolate_cell (auto const &... cell_indices_interpolation_factors) const -> value_type
 Decides if first derivative is needed or not. More...
 
template<std::size_t... Is>
auto constexpr sample (std::index_sequence< Is... >, arithmetic auto const ... xs) const -> value_type requires(sizeof...(Is)==sizeof...(xs))
 

Friends

template<typename , typename , typename , template< typename > typename, template< typename > typename...>
struct base_vertex_property_sampler
 

Detailed Description

template<typename DerivedSampler, typename Real, typename ValueType, template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
struct tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >

CRTP inheritance class for grid_vertex_property_sampler and grid_vertex_property_sampler_view

Member Typedef Documentation

◆ indexing_type

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
using tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::indexing_type = base_vertex_property_sampler_at_t< this_type, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels...>

◆ real_type

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
using tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::real_type = Real

◆ this_type

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
using tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::this_type = base_vertex_property_sampler<DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels...>

◆ value_type

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
using tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::value_type = ValueType

Member Function Documentation

◆ as_derived_sampler() [1/2]

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto constexpr tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::as_derived_sampler ( ) -> DerivedSampler&
inlineconstexpr

returns casted as_derived data

◆ as_derived_sampler() [2/2]

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto constexpr tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::as_derived_sampler ( ) const -> DerivedSampler const&
inlineconstexpr

returns casted as_derived data

◆ at()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::at ( std::size_t const  i) const -> decltype(auto)
inline

indexing of data. if num_dimensions() == 1 returns actual data otherwise returns a vertex_property_sampler_view with i as fixed index

◆ cell_index()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
template<std::size_t DimensionIndex>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::cell_index ( arithmetic auto const  x) const -> decltype(auto)
inline

◆ current_dimension_index()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
static auto constexpr tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::current_dimension_index ( )
inlinestaticconstexpr

◆ data_at()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::data_at ( integral auto const ...  is) const -> value_type const&
inline

data at specified indices is... CRTP-virtual method

◆ differentiate()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
template<typename It >
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::differentiate ( floating_point_range auto const &  coeffs,
It  sample_begin,
It  sample_end 
) const
inlineprotected

Calcuates derivative from samples and differential coefficients.

◆ finite_differences_coefficients()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::finite_differences_coefficients ( std::size_t const  vertex_index,
std::size_t const  stencil_size 
) const
inlineprotected

◆ grid()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::grid ( ) const -> auto const&
inline

◆ interpolate_cell()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto constexpr tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::interpolate_cell ( auto const &...  cell_indices_interpolation_factors) const -> value_type
inlineconstexprprotected

Decides if first derivative is needed or not.

◆ interpolate_cell_with_one_derivative()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::interpolate_cell_with_one_derivative ( auto const &  cit_head,
auto const &...  cit_tail 
) const -> value_type
inlineprotected

◆ interpolate_cell_without_derivative()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::interpolate_cell_without_derivative ( auto const &  cit_head,
auto const &...  cit_tail 
) const -> value_type
inlineprotected

◆ num_components()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
static auto constexpr tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::num_components ( )
inlinestaticconstexpr

◆ num_dimensions()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
static auto constexpr tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ operator[]()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::operator[] ( std::size_t  i) const -> decltype(auto)
inline

◆ position_at()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::position_at ( integral auto const ...  is) const
inline

◆ property()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
auto tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::property ( ) const -> auto const&
inline

◆ sample()

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
template<std::size_t... Is>
auto constexpr tatooine::detail::rectilinear_grid::base_vertex_property_sampler< DerivedSampler, Real, ValueType, HeadInterpolationKernel, TailInterpolationKernels >::sample ( std::index_sequence< Is... >  ,
arithmetic auto const ...  xs 
) const -> value_type requires(sizeof...(Is) == sizeof...(xs))
inlineconstexprprotected

Friends And Related Function Documentation

◆ base_vertex_property_sampler

template<typename DerivedSampler , typename Real , typename ValueType , template< typename > typename HeadInterpolationKernel, template< typename > typename... TailInterpolationKernels>
template<typename , typename , typename , template< typename > typename, template< typename > typename...>
friend struct base_vertex_property_sampler
friend

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