Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels > Struct Template Reference

#include <vertex_property_sampler.h>

Inheritance diagram for tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >:
[legend]
Collaboration diagram for tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >:
[legend]

Public Types

using property_type = GridVertexProperty
 
using this_type = vertex_property_sampler< property_type, InterpolationKernels... >
 
using real_type = typename GridVertexProperty::real_type
 
using value_type = typename GridVertexProperty::value_type
 
using parent_type = base_vertex_property_sampler< this_type, real_type, value_type, InterpolationKernels... >
 
using field_parent_type = tatooine::field< this_type, real_type, sizeof...(InterpolationKernels), value_type >
 
- Public Types inherited from tatooine::detail::rectilinear_grid::base_vertex_property_sampler< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, GridVertexProperty::value_type, InterpolationKernels... >
using this_type = base_vertex_property_sampler< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, GridVertexProperty::value_type, InterpolationKernels..., TailInterpolationKernels... >
 
using indexing_type = base_vertex_property_sampler_at_t< this_type, GridVertexProperty::real_type, GridVertexProperty::value_type, InterpolationKernels..., TailInterpolationKernels... >
 
using real_type = GridVertexProperty::real_type
 
using value_type = GridVertexProperty::value_type
 
- Public Types inherited from tatooine::field< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, sizeof...(InterpolationKernels), GridVertexProperty::value_type >
using this_type = field< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, NumDimensions, GridVertexProperty::value_type >
 
using parent_type = polymorphic::field< GridVertexProperty::real_type, NumDimensions, GridVertexProperty::value_type >
 
using pos_type = vec< real_type, NumDimensions >
 
using real_type = GridVertexProperty::real_type
 
using tensor_type = GridVertexProperty::value_type
 
- 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

 vertex_property_sampler (property_type const &prop)
 
 vertex_property_sampler (vertex_property_sampler const &other)=default
 
 vertex_property_sampler (vertex_property_sampler &&other) noexcept=default
 
auto property () const -> auto const &
 
auto grid () const -> auto const &
 
auto data_at (integral auto const ... is) const -> value_type const &requires(sizeof...(is)==GridVertexProperty::grid_type::num_dimensions())
 
auto position_at (integral auto const ... is) const
 
template<std::size_t DimensionIndex>
auto cell_index (arithmetic auto const x) const -> decltype(auto)
 
auto evaluate (typename field_parent_type::pos_type const &x, typename field_parent_type::real_type const) const -> value_type
 
- Public Member Functions inherited from tatooine::detail::rectilinear_grid::base_vertex_property_sampler< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, GridVertexProperty::value_type, InterpolationKernels... >
auto constexpr as_derived_sampler () -> vertex_property_sampler< GridVertexProperty, InterpolationKernels... > &
 returns casted as_derived data More...
 
auto constexpr as_derived_sampler () const -> vertex_property_sampler< GridVertexProperty, InterpolationKernels... > 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
 
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)
 
- Public Member Functions inherited from tatooine::field< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, sizeof...(InterpolationKernels), GridVertexProperty::value_type >
 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 std::size_t current_dimension_index ()
 
static auto constexpr num_dimensions () -> std::size_t
 
- Static Public Member Functions inherited from tatooine::detail::rectilinear_grid::base_vertex_property_sampler< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, GridVertexProperty::value_type, InterpolationKernels... >
static auto constexpr current_dimension_index ()
 
static auto constexpr num_dimensions () -> std::size_t
 
static auto constexpr num_components ()
 
- 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

property_type const & m_property
 

Additional Inherited Members

- Protected Member Functions inherited from tatooine::detail::rectilinear_grid::base_vertex_property_sampler< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, GridVertexProperty::value_type, InterpolationKernels... >
auto finite_differences_coefficients (std::size_t const vertex_index, std::size_t const stencil_size) const
 
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...
 
auto constexpr sample (std::index_sequence< Is... >, arithmetic auto const ... xs) const -> value_type requires(sizeof...(Is)==sizeof...(xs))
 

Member Typedef Documentation

◆ field_parent_type

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
using tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::field_parent_type = tatooine::field<this_type, real_type, sizeof...(InterpolationKernels), value_type>

◆ parent_type

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
using tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::parent_type = base_vertex_property_sampler<this_type, real_type, value_type, InterpolationKernels...>

◆ property_type

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
using tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::property_type = GridVertexProperty

◆ real_type

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
using tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::real_type = typename GridVertexProperty::real_type

◆ this_type

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
using tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::this_type = vertex_property_sampler<property_type, InterpolationKernels...>

◆ value_type

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
using tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::value_type = typename GridVertexProperty::value_type

Constructor & Destructor Documentation

◆ vertex_property_sampler() [1/3]

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::vertex_property_sampler ( property_type const &  prop)
inline

◆ vertex_property_sampler() [2/3]

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::vertex_property_sampler ( vertex_property_sampler< GridVertexProperty, InterpolationKernels > const &  other)
default

◆ vertex_property_sampler() [3/3]

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::vertex_property_sampler ( vertex_property_sampler< GridVertexProperty, InterpolationKernels > &&  other)
defaultnoexcept

Member Function Documentation

◆ cell_index()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
template<std::size_t DimensionIndex>
auto tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::cell_index ( arithmetic auto const  x) const -> decltype(auto)
inline

◆ current_dimension_index()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
static constexpr std::size_t tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::current_dimension_index ( )
inlinestaticconstexpr

◆ data_at()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
auto tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::data_at ( integral auto const ...  is) const -> value_type const& requires(sizeof...(is) == GridVertexProperty::grid_type::num_dimensions())
inline

◆ evaluate()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
auto tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::evaluate ( typename field_parent_type::pos_type const &  x,
typename field_parent_type::real_type const   
) const -> value_type
inline

◆ grid()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
auto tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::grid ( ) const -> auto const&
inline

◆ num_dimensions()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
static auto constexpr tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ position_at()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
auto tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::position_at ( integral auto const ...  is) const
inline

◆ property()

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
auto tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::property ( ) const -> auto const&
inline

Member Data Documentation

◆ m_property

template<typename GridVertexProperty , template< typename > typename... InterpolationKernels>
property_type const& tatooine::detail::rectilinear_grid::vertex_property_sampler< GridVertexProperty, InterpolationKernels >::m_property
private

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