Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Classes | Namespaces | Typedefs | Functions
PatchDataView.hpp File Reference
#include "fub/Direction.hpp"
#include "fub/core/mdspan.hpp"
#include <array>
#include <functional>
#include <tuple>
#include <utility>

Go to the source code of this file.

Classes

struct  fub::IndexBox< Rank >
 
struct  fub::PatchDataViewBase< T, Rank, Layout >
 
struct  fub::PatchDataViewBase< const T, Rank, Layout >
 
struct  fub::PatchDataView< T, R, Layout >
 

Namespaces

 fub
 The fub namespace.
 

Typedefs

template<int Rank>
using fub::Index = std::array< std::ptrdiff_t, static_cast< std::size_t >(Rank)>
 
template<typename T , int Rank>
using fub::StridedDataView = PatchDataView< T, Rank, layout_stride >
 

Functions

template<std::size_t N>
std::array< std::ptrdiff_t, N > fub::Shift (const std::array< std::ptrdiff_t, N > &idx, Direction dir, std::ptrdiff_t shift)
 
template<std::size_t N>
std::array< std::ptrdiff_t, N > fub::LeftTo (const std::array< std::ptrdiff_t, N > &idx, Direction dir, std::ptrdiff_t shift=1)
 
template<std::size_t N>
std::array< std::ptrdiff_t, N > fub::RightTo (const std::array< std::ptrdiff_t, N > &idx, Direction dir, std::ptrdiff_t shift=1)
 
template<int Rank>
bool fub::operator== (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2)
 
template<int Rank>
bool fub::operator!= (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2)
 
template<int Rank>
bool fub::Contains (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2)
 
template<int Rank>
bool fub::Contains (const IndexBox< Rank > &box, const Index< Rank > &index)
 
template<int Rank>
IndexBox< Rank > fub::Intersect (const IndexBox< Rank > &b1, const IndexBox< Rank > &b2)
 
template<int Rank>
IndexBox< Rank > fub::Grow (const IndexBox< Rank > &box, Direction dir, const std::array< std::ptrdiff_t, 2 > &shifts)
 
template<int Rank>
IndexBox< Rank > fub::Shrink (const IndexBox< Rank > &box, Direction dir, const std::array< std::ptrdiff_t, 2 > &shifts)
 
template<int Rank>
IndexBox< Rank > fub::Embed (const IndexBox< Rank - 1 > &box, const std::array< std::ptrdiff_t, 2 > &limits)
 
template<int Rank, int OtherRank>
IndexBox< Rank > fub::Project (const IndexBox< OtherRank > &box)
 
template<typename Extents >
constexpr std::array< std::ptrdiff_t, Extents::rank()> fub::AsArray (Extents e) noexcept
 
template<typename T , int Rank, typename Layout >
PatchDataView< T, Rank - 1, Layout > fub::SliceLast (const PatchDataView< T, Rank, Layout > &pdv, int component=0)