Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
fub::PatchDataView< T, R, Layout > Struct Template Reference

#include <PatchDataView.hpp>

Public Member Functions

const mdspan< T, sRank, Layout > & MdSpan () const noexcept
 
const std::array< std::ptrdiff_t, sRank > & Origin () const noexcept
 
dynamic_extents< sRankExtents () const noexcept
 
Layout::template mapping< dynamic_extents< sRank > > Mapping () const noexcept
 
span< T > Span () const noexcept
 
std::ptrdiff_t Stride (std::size_t n) const
 
std::ptrdiff_t Extent (std::size_t n) const
 
IndexBox< R > Box () const noexcept
 
PatchDataView< T, R, layout_strideSubview (const IndexBox< R > &box) const
 
template<typename... IndexType, typename = std::enable_if_t<conjunction< std::is_convertible<IndexType, std::ptrdiff_t>...>::value>>
auto & operator() (IndexType... indices) const
 
template<typename IndexType , typename = std::enable_if_t< std::is_convertible_v<IndexType, std::ptrdiff_t>>>
auto & operator() (const std::array< IndexType, sRank > &indices) const
 

Static Public Member Functions

static constexpr int Rank () noexcept
 
static constexpr int rank () noexcept
 

Public Attributes

mdspan< T, sRank, Layout > mdspan_
 
std::array< std::ptrdiff_t, sRankorigin_
 

Static Public Attributes

static constexpr std::size_t sRank
 

Member Function Documentation

◆ Box()

template<typename T , int R, typename Layout >
IndexBox<R> fub::PatchDataView< T, R, Layout >::Box ( ) const
inlinenoexcept

◆ Extent()

template<typename T , int R, typename Layout >
std::ptrdiff_t fub::PatchDataView< T, R, Layout >::Extent ( std::size_t  n) const
inline

◆ Extents()

template<typename T , int R, typename Layout >
dynamic_extents<sRank> fub::PatchDataView< T, R, Layout >::Extents ( ) const
inlinenoexcept

◆ Mapping()

template<typename T , int R, typename Layout >
Layout::template mapping<dynamic_extents<sRank> > fub::PatchDataView< T, R, Layout >::Mapping ( ) const
inlinenoexcept

◆ MdSpan()

template<typename T , int R, typename Layout >
const mdspan<T, sRank, Layout>& fub::PatchDataView< T, R, Layout >::MdSpan ( ) const
inlinenoexcept

◆ operator()() [1/2]

template<typename T , int R, typename Layout >
template<typename IndexType , typename = std::enable_if_t< std::is_convertible_v<IndexType, std::ptrdiff_t>>>
auto& fub::PatchDataView< T, R, Layout >::operator() ( const std::array< IndexType, sRank > &  indices) const
inline

◆ operator()() [2/2]

template<typename T , int R, typename Layout >
template<typename... IndexType, typename = std::enable_if_t<conjunction< std::is_convertible<IndexType, std::ptrdiff_t>...>::value>>
auto& fub::PatchDataView< T, R, Layout >::operator() ( IndexType...  indices) const
inline

◆ Origin()

template<typename T , int R, typename Layout >
const std::array<std::ptrdiff_t, sRank>& fub::PatchDataView< T, R, Layout >::Origin ( ) const
inlinenoexcept

◆ Rank()

template<typename T , int R, typename Layout >
static constexpr int fub::PatchDataView< T, R, Layout >::Rank ( )
inlinestaticconstexprnoexcept

◆ rank()

template<typename T , int R, typename Layout >
static constexpr int fub::PatchDataView< T, R, Layout >::rank ( )
inlinestaticconstexprnoexcept

◆ Span()

template<typename T , int R, typename Layout >
span<T> fub::PatchDataView< T, R, Layout >::Span ( ) const
inlinenoexcept

◆ Stride()

template<typename T , int R, typename Layout >
std::ptrdiff_t fub::PatchDataView< T, R, Layout >::Stride ( std::size_t  n) const
inline

◆ Subview()

template<typename T , int R, typename Layout >
PatchDataView<T, R, layout_stride> fub::PatchDataView< T, R, Layout >::Subview ( const IndexBox< R > &  box) const
inline

Member Data Documentation

◆ mdspan_

mdspan<T, sRank, Layout> fub::PatchDataViewBase< T, Rank, Layout >::mdspan_
inherited

◆ origin_

std::array<std::ptrdiff_t, sRank> fub::PatchDataViewBase< T, Rank, Layout >::origin_
inherited

◆ sRank

template<typename T , int R, typename Layout >
constexpr std::size_t fub::PatchDataView< T, R, Layout >::sRank
staticconstexpr

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