Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy > Class Template Reference

#include <mdarray.hpp>

Public Types

using value_type = ValueType
 
using extents_type = Extents
 
using layout_policy = LayoutPolicy
 
using mapping_type = typename layout_policy::template mapping< Extents >
 
using container_policy = ContainerPolicy
 
using conatiner_type = typename container_policy::template container< value_type >
 

Public Member Functions

 basic_mdarray (const value_type &default_value, const extents_type &extents, const allocator_type &allocator=allocator_type())
 
 basic_mdarray (const extents_type &extents, const allocator_type &allocator=allocator_type())
 
view_type view () noexcept
 
const_view_type view () const noexcept
 
reference operator() (std::array< std::ptrdiff_t, rank()> i)
 
const_reference operator() (std::array< std::ptrdiff_t, rank()> i) const
 
template<typename... Is>
std::enable_if_t< sizeof...(Is)==rank() &&(true &&... &&std::is_integral_v< Is >), reference > operator() (Is... is)
 
template<typename... Is>
std::enable_if_t< sizeof...(Is)==rank() &&(true &&... &&std::is_integral_v< Is >), const_reference > operator() (Is... is) const
 
std::ptrdiff_t extent (std::ptrdiff_t rank)
 
const container_type & container () const noexcept
 
container_type & container () noexcept
 
std::size_t size () const noexcept
 

Static Public Member Functions

static constexpr std::ptrdiff_t rank () noexcept
 

Private Attributes

container_type container_
 
mapping_type mapping_
 

Member Typedef Documentation

◆ conatiner_type

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
using fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::conatiner_type = typename container_policy::template container<value_type>

◆ container_policy

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
using fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::container_policy = ContainerPolicy

◆ extents_type

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
using fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::extents_type = Extents

◆ layout_policy

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
using fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::layout_policy = LayoutPolicy

◆ mapping_type

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
using fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::mapping_type = typename layout_policy::template mapping<Extents>

◆ value_type

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
using fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::value_type = ValueType

Constructor & Destructor Documentation

◆ basic_mdarray() [1/2]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::basic_mdarray ( const value_type default_value,
const extents_type extents,
const allocator_type &  allocator = allocator_type() 
)

◆ basic_mdarray() [2/2]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::basic_mdarray ( const extents_type extents,
const allocator_type &  allocator = allocator_type() 
)

Member Function Documentation

◆ container() [1/2]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
const container_type& fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::container ( ) const
noexcept

◆ container() [2/2]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
container_type& fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::container ( )
noexcept

◆ extent()

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
std::ptrdiff_t fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::extent ( std::ptrdiff_t  rank)

◆ operator()() [1/4]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
template<typename... Is>
std::enable_if_t<sizeof...(Is) == rank() && (true && ... && std::is_integral_v<Is>), reference> fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::operator() ( Is...  is)

◆ operator()() [2/4]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
template<typename... Is>
std::enable_if_t<sizeof...(Is) == rank() && (true && ... && std::is_integral_v<Is>), const_reference> fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::operator() ( Is...  is) const

◆ operator()() [3/4]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
reference fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::operator() ( std::array< std::ptrdiff_t, rank()>  i)

◆ operator()() [4/4]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
const_reference fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::operator() ( std::array< std::ptrdiff_t, rank()>  i) const

◆ rank()

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
static constexpr std::ptrdiff_t fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::rank ( )
staticconstexprnoexcept

◆ size()

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
std::size_t fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::size ( ) const
noexcept

◆ view() [1/2]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
const_view_type fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::view ( ) const
noexcept

◆ view() [2/2]

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
view_type fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::view ( )
noexcept

Member Data Documentation

◆ container_

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
container_type fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::container_
private

◆ mapping_

template<typename ValueType , typename Extents , typename LayoutPolicy , typename ContainerPolicy >
mapping_type fub::basic_mdarray< ValueType, Extents, LayoutPolicy, ContainerPolicy >::mapping_
private

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