Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl > Struct Template Reference

#include <vertex_property.h>

Inheritance diagram for tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >:
[legend]
Collaboration diagram for tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >:
[legend]

Public Types

using this_type = differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >
 
using prop_type = typed_vertex_property_interface< Grid, PropValueType, PropHasNonConstReference >
 
using crtp_type = crtp< Impl >
 
using value_type = vertex_property_differentiated_type< DiffOrder, Grid, PropValueType >
 
using grid_type = Grid
 
using real_type = typename Grid::real_type
 
- Public Types inherited from tatooine::crtp< Impl >
using derived_type = Impl
 

Public Member Functions

 differentiated_vertex_property_interface (prop_type const &prop, std::size_t stencil_size)
 
auto property () const -> auto const &
 
auto grid () const -> auto const &
 
auto stencil_size () const
 
auto half_stencil_size () const
 
auto differentiation_coefficients (std::size_t const diff_order, std::size_t const dimension) const -> auto const &
 
constexpr auto operator() (integral auto const ... indices) const -> value_type requires(sizeof...(indices)==Grid::num_dimensions())
 
auto at (integral auto const ... indices) const -> value_type requires(sizeof...(indices)==Grid::num_dimensions())
 
auto first_stencil_index (std::size_t const i_x, std::size_t const i_dim) const
 
- Public Member Functions inherited from tatooine::crtp< Impl >
constexpr auto as_derived () -> derived_type &
 returns casted as_derived data More...
 
constexpr auto as_derived () const -> derived_type const &
 returns casted as_derived data More...
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 
static constexpr auto differentiation_order ()
 

Private Member Functions

template<std::size_t... Is>
 differentiated_vertex_property_interface (prop_type const &prop, std::size_t stencil_size, std::index_sequence< Is... >)
 
template<std::size_t i_dim>
auto generate_coefficients ()
 Generates diffentiation coefficients for dimension i_dim. More...
 

Private Attributes

prop_type const & m_prop
 
std::array< std::array< std::vector< real_type >, num_dimensions()>, DiffOrder > m_diff_coeffs_per_order_per_dimension
 
std::size_t m_stencil_size
 
std::size_t m_half_stencil_size
 

Member Typedef Documentation

◆ crtp_type

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
using tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::crtp_type = crtp<Impl>

◆ grid_type

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
using tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::grid_type = Grid

◆ prop_type

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
using tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::prop_type = typed_vertex_property_interface<Grid, PropValueType, PropHasNonConstReference>

◆ real_type

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
using tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::real_type = typename Grid::real_type

◆ this_type

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
using tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::this_type = differentiated_vertex_property_interface<DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl>

◆ value_type

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
using tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::value_type = vertex_property_differentiated_type<DiffOrder, Grid, PropValueType>

Constructor & Destructor Documentation

◆ differentiated_vertex_property_interface() [1/2]

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
template<std::size_t... Is>
tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::differentiated_vertex_property_interface ( prop_type const &  prop,
std::size_t  stencil_size,
std::index_sequence< Is... >   
)
inlineprivate

◆ differentiated_vertex_property_interface() [2/2]

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::differentiated_vertex_property_interface ( prop_type const &  prop,
std::size_t  stencil_size 
)
inline

Member Function Documentation

◆ at()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::at ( integral auto const ...  indices) const -> value_type requires(sizeof...(indices) == Grid::num_dimensions())
inline

◆ differentiation_coefficients()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::differentiation_coefficients ( std::size_t const  diff_order,
std::size_t const  dimension 
) const -> auto const&
inline

◆ differentiation_order()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
static constexpr auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::differentiation_order ( )
inlinestaticconstexpr

◆ first_stencil_index()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::first_stencil_index ( std::size_t const  i_x,
std::size_t const  i_dim 
) const
inline

Computes the first index where the stencil at index i_x of dimension i_dim begins.

◆ generate_coefficients()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
template<std::size_t i_dim>
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::generate_coefficients ( )
inlineprivate

Generates diffentiation coefficients for dimension i_dim.

◆ grid()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::grid ( ) const -> auto const&
inline

◆ half_stencil_size()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::half_stencil_size ( ) const
inline

◆ num_dimensions()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
static constexpr auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ operator()()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
constexpr auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::operator() ( integral auto const ...  indices) const -> value_type requires(sizeof...(indices) == Grid::num_dimensions())
inlineconstexpr

◆ property()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::property ( ) const -> auto const&
inline

◆ stencil_size()

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
auto tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::stencil_size ( ) const
inline

Member Data Documentation

◆ m_diff_coeffs_per_order_per_dimension

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
std::array<std::array<std::vector<real_type>, num_dimensions()>, DiffOrder> tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::m_diff_coeffs_per_order_per_dimension
private

◆ m_half_stencil_size

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
std::size_t tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::m_half_stencil_size
private

◆ m_prop

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
prop_type const& tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::m_prop
private

◆ m_stencil_size

template<std::size_t DiffOrder, typename Grid , typename PropValueType , bool PropHasNonConstReference, typename Impl >
std::size_t tatooine::detail::rectilinear_grid::differentiated_vertex_property_interface< DiffOrder, Grid, PropValueType, PropHasNonConstReference, Impl >::m_stencil_size
private

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