diff --git a/src/amdis/common/Access.hpp b/src/amdis/common/Access.hpp index aab0e55cc3c61b7095a45f0bf59d655d3d45b16b..202deadacac16ec90c50dd4e34031004e66d2484 100644 --- a/src/amdis/common/Access.hpp +++ b/src/amdis/common/Access.hpp @@ -32,9 +32,11 @@ namespace AMDiS } // end namespace Definition + /// Vector component can be accessed either with [.] or (.) template <class V, class I> using VectorAccessible_t = bool_t<models<Definition::HasVectorAccess(V, I, Dune::PriorityTag<42>)>>; + /// Matrix component can be accessed either with [.][.] or (.,.) template <class M, class I, class J> using MatrixAccessible_t = bool_t<models<Definition::HasMatrixAccess(M, I, J, Dune::PriorityTag<42>)>>; @@ -42,7 +44,7 @@ namespace AMDiS #ifdef DOXYGEN - /// \brief Uniform vector access using [.] + /// \brief Uniform vector access using [.] or (.) template <class Vector, class I> decltype(auto) access(Vector&& vec, I const& i); @@ -77,6 +79,7 @@ namespace AMDiS } } + // access i'th component of a vector template <class Vector, class I> decltype(auto) access(Vector&& vec, I const& i) { diff --git a/src/amdis/common/CMakeLists.txt b/src/amdis/common/CMakeLists.txt index ebf8a782466ce7b9fa2fd0c71dc86059bc87272a..8988200e608707affde9dd38d09769b8b4139b63 100644 --- a/src/amdis/common/CMakeLists.txt +++ b/src/amdis/common/CMakeLists.txt @@ -4,6 +4,7 @@ dune_library_add_sources(amdis SOURCES ) install(FILES + Access.hpp Algorithm.hpp Apply.hpp Concepts.hpp @@ -13,6 +14,7 @@ install(FILES FieldMatVec.inc.hpp Filesystem.hpp ForEach.hpp + HybridSize.hpp Index.hpp Literals.hpp Logical.hpp diff --git a/src/amdis/common/HybridSize.hpp b/src/amdis/common/HybridSize.hpp index 720be03ea069453fdb3a0ea8a68e33dea671e88b..d26fdba2f4f82143500cc63ffde4b4bf3986540e 100644 --- a/src/amdis/common/HybridSize.hpp +++ b/src/amdis/common/HybridSize.hpp @@ -15,9 +15,11 @@ namespace AMDiS { namespace Concepts { + /// Vector can be accessed with dynamic indices. See \ref VectorAccessible_t template <class V> using DynamicVectorAccessible_t = VectorAccessible_t<V, std::size_t>; + /// Matrix can be accessed with dynamic indices. See \ref MatrixAccessible_t template <class M> using DynamicMatrixAccessible_t = MatrixAccessible_t<M, std::size_t, std::size_t>;